From owner-freebsd-fs Wed Jan 22 15:32:22 2003 Delivered-To: freebsd-fs@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 0F8B537B401 for ; Wed, 22 Jan 2003 15:32:20 -0800 (PST) Received: from stork.mail.pas.earthlink.net (stork.mail.pas.earthlink.net [207.217.120.188]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0B64643E4A for ; Wed, 22 Jan 2003 15:32:19 -0800 (PST) (envelope-from tlambert2@mindspring.com) Received: from pool0182.cvx40-bradley.dialup.earthlink.net ([216.244.42.182] helo=mindspring.com) by stork.mail.pas.earthlink.net with asmtp (SSLv3:RC4-MD5:128) (Exim 3.33 #1) id 18bULg-00042T-00; Wed, 22 Jan 2003 15:32:01 -0800 Message-ID: <3E2F299B.A919A49F@mindspring.com> Date: Wed, 22 Jan 2003 15:30:35 -0800 From: Terry Lambert X-Mailer: Mozilla 4.79 [en] (Win98; U) X-Accept-Language: en MIME-Version: 1.0 To: Brooks Davis Cc: Cheen Liao , Dag-Erling Smorgrav , freebsd-fs@FreeBSD.ORG Subject: %.9 or 4.x for developement (was Re: Transaction File System - a replacement of JFS) References: <20030114192634.75751.qmail@web13505.mail.yahoo.com> <20030117075118.GA3493@HAL9000.homeunix.com> <3E27DA7F.D5DBEFB@mindspring.com> <20030117222410.GA5449@HAL9000.homeunix.com> <001401c2be93$c36c7490$681adf3d@homexp> <3E2DCE86.4C416E28@mindspring.com> <000e01c2c1c3$f7c0b3e0$bb01a8c0@cheennotebook> <20030122104718.A23298@Odin.AC.HMC.Edu> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-ELNK-Trace: b1a02af9316fbb217a47c185c03b154d40683398e744b8a4a9a86572c270ea46156f9f5f1ee90704a8438e0f32a48e08350badd9bab72f9c350badd9bab72f9c Sender: owner-freebsd-fs@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Brooks Davis wrote: > On Wed, Jan 22, 2003 at 11:11:31AM +0800, Cheen Liao wrote: > > Thanks for sharing your experience. This is exactly our concerns. We will > > not work on 5.0 kernel till its code are "stable". > > Frankly, if you use 5.0-RELEASE (not HEAD) its ABI/API as stable as > any other fixed point, but unlike using 4.x it's _much_ closer to what > 5-STABLE will be so this argument is a bit backwards. I personally expect "the right method to use for locking" to change significantly, over time, as people realize that some of the locking code in there now is bogus. That will have a significant impact on the kernel API's. I also think that a lot of the work to "make things work", without changing interface relationships is going to prove to be fultile in the long run, and *that* will have a significant impact on the kernel API's. As one example, ask yourself these questions about the recent (and ongoing) M_NOWAIT discussion: o Why can't all callers wait for the operation to be completed? o Why can't all callers handle an allocation failure gracefully, without blocking in the allocation routine? The answer to these questions is that some code has the ability to unwind state at the layer at which the allocation is attempted, while other code has state spread across several abstration layers, and so can't successfully unwind it (e.g. hold a lock, call a function, hold another lock...). Such code is legacy code. I expect that FreeBSD will eventually have to do what Solaris, SVR4, AIX, and, now, Linux, have done, and simply bite the bullet, and change the abstraction layering so that all resource references get held at the same stack level. Then the answer to the second question becomes "They can.", and the problem goes away because the idea of the flag to signal variant behaviour between code that can and code that can't unwind state, goes away. But what this boils down to is that interfaces are in serious flux in 5.x, and are likely to remain so for a very long time. It's a very bad idea, from the standpoint of ever getting done with something, to put yourself in a position of not knowing if it's your driver that's causing the problem, or if it's a problem that someone introduced into the host OS, and you're among the first people to notice it. It makes it damn hard to know where to go to look for a bug your are experiencing. This is why most people who are doing research in academic or industrial settings pick a stable platform, and do their research there. The sole exception is if the platform *is* your research, which happens only rarely with established platforms in academia, and almost never, in industry. -- Terry To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-fs" in the body of the message