Date: Wed, 26 Apr 2000 12:47:29 +0930 From: Greg Lehey <grog@lemis.com> To: Chuck Robey <chuckr@picnic.mat.net> Cc: Robert Watson <rwatson@FreeBSD.org>, "David O'Brien" <obrien@FreeBSD.org>, Boris Popov <bp@FreeBSD.org>, cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: Re: How about building modules along with the kernel? (was: cvs commit: src/sys/modules/syscons/fire fire_saver.c src/sys/modules/syscons/rain rain_saver.c src/sys/modules/syscons/warp warp_saver.c) Message-ID: <20000426124729.D40207@freebie.lemis.com> In-Reply-To: <Pine.BSF.4.21.0004252235470.331-100000@picnic.mat.net> References: <20000426102521.C38026@freebie.lemis.com> <Pine.BSF.4.21.0004252235470.331-100000@picnic.mat.net>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday, 25 April 2000 at 22:40:23 -0400, Chuck Robey wrote: > On Wed, 26 Apr 2000, Greg Lehey wrote: > >>> I could also see the suggestion of building modules with a >>> particular kernel, although I'm not clear on the details and side >>> effects. I suppose to a large extent, this depends on how we see >>> kernels and modules being used. >> >> I see them as being used together. >> >>> We have thus far utterly failed to provide any kind of consistent >>> ABI for many of the common modules (nfs is a prime example) meaning >>> that in many cases, the modules are closely tied to the version of >>> the kernel selected. This makes debugging kernels with a changing >>> sys tree very difficult for a number of reasons. >> >> I look on modules as kernel extensions which share an intimate >> understanding of the kernel internal data structures. If we change >> the data structures, we will need to recompile the modules. If we >> leave the data structures alone and rebuild the kernel, we don't need >> to recompile the data structures. >> >> Maybe we should do something like this: >> >> 1. Decide which data structures modules are allowed to access (and be >> generous). >> 2. Maintain a data structure generation number. Every time one of >> the designated data structures changes, bump the number. Store >> the number both in the kernel and in each module. >> 3. When loading modules, compare the numbers. Refuse to load if >> they're different. This would also solve the "inexplicable" >> crashes people sometimes see. >> 4. Have two kernel build targets: "kernel" to build only the kernel, >> "all" to build the kernel and the modules. >> >> Comments? > > Just one, Greg. I fully applaud the aim of this (heck, I thought I > was being original when I came up with the idea 2 years ago ... I > know better now) but it seems like there's 2 jobs, even though one > is easier than the other. What about changing the build, first, so > that the modules are built and installed with the kernel, then AFTER > that, worry about the versioning problem? Sure, the build is the easier part. In fact, looking back, I see I've forgotten a point: X. Install the kernel and its modules in a subdirectory. I'd suggest we call the subdirectory /kernel/, so we can rename the subdirectories on install the way we currently rename the kernel itself. What do we call the kernel? How about /kernel/FreeBSD? > That way, if we end up arguing about the versioning scheme for 2 > more years, at least *something* comes of this, something I think we > all agree is needed? Well, let's see if we all agree :-) > If you want, I'd do this myself this weekend. I don't think the > makefile part is all that difficult. Agreed. I'd certainly welcome this. Greg -- Finger grog@lemis.com for PGP public key See complete headers for address and phone numbers To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000426124729.D40207>