home *** CD-ROM | disk | FTP | other *** search
- Newsgroups: comp.os.linux
- Path: sparky!uunet!elroy.jpl.nasa.gov!usc!cs.utexas.edu!qt.cs.utexas.edu!yale.edu!ira.uka.de!chx400!bernina!almesber
- From: almesber@nessie.cs.id.ethz.ch (Werner Almesberger)
- Subject: Re: loadable device drivers
- Message-ID: <1992Aug13.151040.284@bernina.ethz.ch>
- Sender: news@bernina.ethz.ch (USENET News System)
- Organization: Swiss Federal Institute of Technology (ETH), Zurich, CH
- References: <2659@nlsun1.oracle.nl>
- Date: Thu, 13 Aug 1992 15:10:40 GMT
- Lines: 50
-
- In article <2659@nlsun1.oracle.nl> jhelberg@nl.oracle.com (Joost Helberg) writes:
- > Far too long, and you have to reboot too! i.e. all users have to
- > get coffee or tea!
-
- You're developping new drivers while users are working on your machine ?
- Poor users ... ;-)
-
- > The kernel must be mapped when implementing loadable device drivers (to
- > get page-faults) so the kernel doesn't need contiguous memory --> less
- > problems allocating memory.
-
- Page-faults are deadly for most parts of the kernel. Unless the interrupt
- handling is changed in radical ways (see below), you don't want interrupt
- handlers and code that's called by them to reside in paged memory. (Besides
- the obvious case of device drivers that may be possibly invoked when
- handling a page fault.)
-
- Using the paging hardware to map kernel pages is a good idea, though.
-
- > - The kernel will never use more core than necessary. Only text/data really
- > used will be in core (that is using LRU algorithms).
-
- Yes, but you need interrupt queues and an interrupt scheduler to be able
- to accept interrupts from devices that can send more than one interrupt
- per interaction (i.e. SIOs) even if you have to fault in the driver first.
- Might be hairy to implement, although it looks like a very elegant
- solution for most interrupt problems.
-
- You also need a way to lock certain kernel areas in physical memory.
- (MM, at least one FS, scheduler, hd driver, some other kernel data
- structures, drivers for devices that expect a low interrupt latency, etc.)
-
- > - Updating a driver can be done at runtime shortening the development time
- > of driver enhancements.
-
- Certainly a big win, especially on slow systems where a compile-reboot-
- test-fail-edit-...-cycle is significantly longer than 45 seconds. Even
- a mechanism where you'd have to compile stubs into the kernel but could
- load the actual code at run time would be useful.
-
- An even more important use would be dynamic system configuration, e.g. one
- could use local drivers without patching them into each kernel release.
- (Needs probably some changes to the way existing driver are called.)
-
- - Werner
- --
- _________________________________________________________________________
- / Werner Almesberger, ETH Zuerich, CH almesber@nessie.cs.id.ethz.ch /
- / IFW A44 Tel. +41 1 254 7213 almesberger@rzvax.ethz.ch /
- /_BITNET:_ALMESBER@CZHETH5A__HEPNET/CHADNET:_[20579::]57414::ALMESBERGER_/
-