From owner-freebsd-current Mon Jun 19 17:34:55 2000 Delivered-To: freebsd-current@freebsd.org Received: from apollo.backplane.com (apollo.backplane.com [216.240.41.2]) by hub.freebsd.org (Postfix) with ESMTP id 9D3C337B708 for ; Mon, 19 Jun 2000 17:34:47 -0700 (PDT) (envelope-from dillon@apollo.backplane.com) Received: (from dillon@localhost) by apollo.backplane.com (8.9.3/8.9.1) id RAA81825; Mon, 19 Jun 2000 17:34:47 -0700 (PDT) (envelope-from dillon) Date: Mon, 19 Jun 2000 17:34:47 -0700 (PDT) From: Matthew Dillon Message-Id: <200006200034.RAA81825@apollo.backplane.com> To: current@FreeBSD.ORG Cc: Jason Evans Subject: Re: HEADS UP: Destabilization due to SMP development References: <20000619115330.D79318@blitz.canonware.com> Sender: owner-freebsd-current@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG :Summary: -current will be destabilized for an extended period (on the order :of months). A tag (not a branch) will be laid down before the initial :checkin, and non-developers should either stick closely to that tag until :the kernel stabilizes, or expect large doses of pain. This tag will be :laid down as soon as June 26, 00:00 PST, with a minimum 24 hour warning :beforehand. : :--- : :Last week, approximately 20 BSD developers got together and discussed how :to move FreeBSD's SMP support to the next level. Our effort will be :largely based on the work that has been done in BSD/OS, which should make :things go much more smoothly than they otherwise might, but we still expect :-current to be destabilized for an extended period of time. : :Matthew Dillon is currently working on the locking primitives, as well as :some changes to the way our top-level kernel locking works. His initial :code will not remove spl()s. This code will probably be committed as the :... Thank you Jason! Ok, I have put up a web page that will track my efforts. http://apollo.backplane.com/FreeBSDSmp/ I got a slow start on the weekend, but I expect to have my piece commitable this week sometime. When I say committable I mean: won't crash the system outright but will still probably panic due to legacy spl*() issues, which we will fix as we see them. I am making good progress. In many respects it is actually easier to get the stuff working on a single-cpu system first since all the MP mechanisms must now work on a single-cpu system due to the preemptive kernel scheduling, but I expect I will have both single and multi-cpu systems working more or less (non-inclusive of interrupt threads, which is going to be Greg's baby, but hopefully with all the support Greg needs to implement them) in the next few days. When I get a little further along I will start making patch sets available on the same page. Probably in the next day or two. :Device driver maintainers will be able to convert device drivers over a :period of several months. We expect to have a compatibility shim in place :initially, but there will be a hard cutoff date sometime before the release :of FreeBSD 5.0 where the compatibility shim is removed. Before getting too :excited about this part of the conversion to a threaded kernel, please keep :in mind that 1) there will be plenty of time to do this conversion, 2) the :conversion is pretty trivial for most drivers, and 3) as we get to the :stage where the conversion becomes possible, there will be much more detail :about how to do the conversion, as well as the working examples of the :first drivers to be converted. I believe I found a way to isolate the legacy spl*() stuff without too much interference with the overall design plan (see my document), but I will be the second to say that the legacy stuff is ALL going to be ripped out for the 5.0 release. I would ask that people not commit major changes to the -current sys tree until after we lay down the tags and get the new MP core in place. -Matt Matthew Dillon To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message