Messages in this thread | | | From | Rusty Russell <> | Subject | Re: [PATCH 2/2] module: fix bne2 "gave up waiting for init of module libcrc32c" | Date | Tue, 1 Jun 2010 14:49:50 +0930 |
| |
On Tue, 1 Jun 2010 01:10:36 pm Linus Torvalds wrote: > > On Tue, 1 Jun 2010, Rusty Russell wrote: > > > On Tue, 1 Jun 2010 05:45:37 am Linus Torvalds wrote: > > > > > > basically, we should do the whole module dependency list regardless > > > of whether we can unload modules or not > > > > Why? > > Because the current non-CONFIG_MODULE_UNLOAD code is currently broken, and > it was broken exactly because the code had two totally different paths and > totally different logic. And one part simply missed the case. > > We'd be much better off having as much of the logic shared as possible. > No? > > Your 2/2 actually fixed that, because it moved the broken > wait_event_interruptible_timeout() out of the (non-shared) use_module() > into the (shared) resolve_symbol_wait(). But even that seemed to be almost > accidental, and seemed to be more about the fact that now the locking > rules required it (if you wanted to wait without holding the lock), rather > than anything else.
!CONFIG_MODULE_UNLOAD still does the old "fail don't wait" behavior.
So yes, moving the waiting into common code was a win for consistency, either with your patch or mine.
> So I'd suggest we should just track those module dependencies, and share > more of the code and the logic. Because it looks to me like not sharing it > continually results in bugs. > > No?
I wonder if we should just get rid of !CONFIG_UNLOAD then? I have a soft spot for it because it keeps us honest and shows how much shit is there simply for our poor man's pagable kernel.
Let me compile up a kernel with and without and see what it's really doing to us...
Thanks, Rusty.
| |