From owner-cvs-all Tue Apr 25 20:19: 5 2000 Delivered-To: cvs-all@freebsd.org Received: from freebie.lemis.com (freebie.lemis.com [192.109.197.137]) by hub.freebsd.org (Postfix) with ESMTP id DE52A37B890; Tue, 25 Apr 2000 20:18:35 -0700 (PDT) (envelope-from grog@freebie.lemis.com) Received: (from grog@localhost) by freebie.lemis.com (8.9.3/8.9.0) id MAA40890; Wed, 26 Apr 2000 12:47:29 +0930 (CST) Date: Wed, 26 Apr 2000 12:47:29 +0930 From: Greg Lehey To: Chuck Robey Cc: Robert Watson , "David O'Brien" , Boris Popov , 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> References: <20000426102521.C38026@freebie.lemis.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 1.0pre2i In-Reply-To: Organization: LEMIS, PO Box 460, Echunga SA 5153, Australia Phone: +61-8-8388-8286 Fax: +61-8-8388-8725 Mobile: +61-418-838-708 WWW-Home-Page: http://www.lemis.com/~grog X-PGP-Fingerprint: 6B 7B C3 8C 61 CD 54 AF 13 24 52 F8 6D A4 95 EF Sender: owner-cvs-all@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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