RB_NOSYNC -> no device_shutdown ?
John Baldwin
jhb at freebsd.org
Tue Jan 10 15:14:07 UTC 2012
On Tuesday, January 10, 2012 5:23:45 am Andriy Gapon wrote:
> on 20/12/2011 16:11 John Baldwin said the following:
> > On Saturday, December 17, 2011 6:07:51 pm Andriy Gapon wrote:
> [snip]
> >> and wonder why RB_NOSYNC is overloaded to mean that no
> >> MOD_SHUTDOWN/device_shutdown cleanup should be done?
> >
> > Presumably most device_shutdown handlers were used for syncing storage when
> > the module stuff was first added. I'm not sure how you would fix this now
> > since you can't easily pass the 'arg2' flags down to each handler so that the
> > appropriate ones could skip their shutdown actions.
>
> I see what you are saying.
> Couple of thoughts:
> - maybe MOD_EVENT interface could/should be extended to pass another argument
> along with the event type
> - maybe various sync-ing stuff should be done in shutdown_post_sync event
> handlers, or even via a new dedicated event
>
> Hmm, it looks like the latter might actually already be the case.
I almost think the best way (ugh) is to have a global variable similar to boothowto
that device_shutdown methods can use to skip behavior if needed. It may only be a
fairly small number of devices that need to skip their shutdown routine (or portions
thereof) during a nosync shutdown.
> And another tangentially related idea: maybe we should inhibit device/module
> shutdown for the RB_HALT case given that it is a quite special case where the
> system actually stays up and at least the keyboard is expected to be still
> operational.
I think we still want to do device_shutdown in that case. The mfi(4) driver sends a
specific command to note a clean shutdown that then affects how the event log behaves
on the next boot, for example.
--
John Baldwin
More information about the freebsd-hackers
mailing list