tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Module auto-unloading (was Re: CVS commit: src/sys/arch/x86/x86)



We could use the reference counter in struct cfdriver to keep driver modules "busy", but I'm not sure if the system can figure out what's unneeded if a "needed" driver might be one for a hotpluggable device. Would you treat those drivers differently? What about drivers (if_ath_pci comes to mind) that can be used both for fixed or hotplug devices?

I played around with driver module autoloading a while back, and it worked pretty well but the implementation I came up with required duplicating match data in <module>.plist.

On Tue, 18 Oct 2011, Warner Losh wrote:


On Oct 18, 2011, at 4:39 AM, Jared McNeill wrote:
I would argue that any manually loaded module shouldn't be autounloaded. What 
do you think about flagging modules as autoloaded and only autounloading the 
autoloaded ones?

If I "manually" load a dozen drivers at boot because I have a dozen different boards with 
different devices.  I'd kinda like the system to "automatically" figure out what isn't 
needed and unload those drivers.

Warner

On Tue, 18 Oct 2011, Jukka Ruohonen wrote:

On Tue, Oct 18, 2011 at 08:43:46AM +0200, Marc Balmer wrote:
Am 18.10.11 06:27, schrieb Jukka Ruohonen:
On Tue, Oct 18, 2011 at 12:07:45AM +0000, Jared D. McNeill wrote:
Module Name:    src
Committed By:   jmcneill
Date:           Tue Oct 18 00:07:45 UTC 2011

Modified Files:
        src/sys/arch/x86/x86: vmt.c

Log Message:
don't allow module autounload

I wonder should autounloading be prohibited for all driver-class modules?

Why?  When the parent goes away, why not autounload a driver?

I am not sure. But have we thought about all the consequences and corner-
cases? Unloading happens while modifying hardware state? Deferred calls
in the drivers? And so on? To me it also seems that if I manually load
a driver-module, I expect it to stay loaded until I unload it.

- Jukka.









Home | Main Index | Thread Index | Old Index