newbus integration of MOD_QUIESCE
M. Warner Losh
imp at bsdimp.com
Tue Jul 13 17:15:49 PDT 2004
In message: <Pine.NEB.3.96L.1040713195126.63836A-100000 at fledge.watson.org>
Robert Watson <rwatson at freebsd.org> writes:
: MOD_WEAKUNLOAD - Unload if you're not in use. I.e., unattached driver,
: unmounted file system, netgraph nodes that aren't instantiated, network
: protocol without any sockets, etc. Be harmlessly gone, but vetoed
: at a low cost.
This is desirable.
: MOD_STRONGUNLOAD - Unload even though you're in use. Detach the driver,
: deadfs the file system, wither the geom, sever the sockets, etc. May
: cause disruption, but may also veto, depending on the subsystem,
: especially if the subsytem has no way to notify its consumers of
: impending doom. Can be vetoed, but try harder before vetoing. Some
: subsystems might always return EBUSY for this if there's really no way
: to express "undesirable departure" upwards.
This is tue current MOD_UNLOAD
: MOD_QUIESCE - Attempt MOD_WEAKUNLOAD, and if that fails, ask the module to
: start draining in some form. I'm a bit unclear on quite what's
: intended, but this seems to be less atomic notion than "unload, or
: don't" at various points on the spectrum. I.e., it kicks off a state
: transition in what is likely a slightly poorly defined state machine.
: Right now, the state machine is "Not loaded", "Loaded", and we use a
: lock to prevent intermediate states from colliding.
This is the heart of my questions about MOD_QUIESCE.
Warner
More information about the freebsd-arch
mailing list