On Mon, Mar 22, 2021 at 02:07:54PM +0100, Jessica Yu wrote: > +++ Steven Rostedt [19/03/21 14:00 -0400]: > > On Fri, 19 Mar 2021 13:57:38 +0100 > > Peter Zijlstra <[email protected]> wrote: > > > > > Jessica, can you explain how !MODULE_UNLOAD is supposed to work? > > > Alternatives, jump_labels and static_call all can have relocations into > > > __exit code. Not loading it at all would be BAD. > > > > According to the description: > > > > " Without this option you will not be able to unload any > > modules (note that some modules may not be unloadable anyway), which > > makes your kernel smaller, faster and simpler. > > If unsure, say Y." > > > > Seems there's no reason to load the "exit" portion, as that's what makes it > > "smaller". > > Exactly. If you disable MODULE_UNLOAD, then you don't intend to ever > unload any modules, and so you'll never end up calling the module's > cleanup/exit function. That code would basically be never used, so > that's why it's not loaded in the first place.
As explained, that's broken. Has always been for as long as we've had alternatives.

