Messages in this thread |  | | From | Olaf Titz <> | Subject | Re: super.c - kerneld race condition in 2.0.27 | Date | 03 Jan 1997 12:24:00 +0100 |
| |
<tyson@rwii.com> wrote: > When trying to mount the disk with '-t iso9660', kerneld is caused > to immediately load 'isofs.o'. During the time that the IDE-CD > block driver is retrying and refailing to read the non-existent > disk, kerneld times out on isofs.o (it is not marked as in use at > this point) and unloads it. When the IDE-CD driver returns with
I have seen a similar error with the PPP module. Other symptoms (pppd just fails), same cause: kerneld loads module, waiting for something else to happen is longer than the kerneld timeout, it unloads the module which is in fact not free.
Perhaps this could be avoided by introducing a "preloaded" state for a module. A module that is requested (loaded by kerneld) but not opened (MOD_INC_USE_COUNT) remains in this state either until it is opened or manually unloaded (no timeout - rationale: a module gets only preloaded if it is going to be used sometime).
This could perhaps be implemented in kerneld without kernel assistance: just after a module "times out", it is checked whether it has the "preloaded" flag, and if yes, it doesn't get unloaded. If it is in use now, the preloaded flag gets cleared.
Comments?
olaf -- ___ Olaf.Titz@inka.de or @{stud,informatik}.uni-karlsruhe.de ____ __ o <URL:http://www.inka.de/~bigred/> <IRC:praetorius> __/<_ >> Just as long as the wheels keep on turning round _)>(_)______________ I will live for the groove 'til the sun goes down << ____
|  |