> On 10-May-00 Mike Smith wrote:
> >> Sorry to bother y'll, but;
> >> Has anyone ever used that? I see no trace of any kernel
> >> code calling it, and the at_shutdown code appears to be
> >> gone.
> > It's still used in the shutdown code; it was meant to be available for
> > general use elsewhere, but I haven't seen anyone playing with it, so
> > maybe the design tradeoffs were bad choices.
> I dunno. It seems to do anything I need; Call me with an argument.
> I do not even need the priority.
It won't notify you that your code is about to be removed from the kernel.
> >> BTW, for all it is worth, any caching controller not using
> >> this is guaranteed to lose data.
> > Wrong layer. You should be using the bus shutdown method; look at eg.
> > the Mylex driver to see how this is done. You should probably call your
> > flush routine from the suspend method as well.
> This is dangerous for the OSM. When the i2o OSM shuts an IOP
> down, it is history. It will stop doing any work at all; network,
> disk, console, mouse, whatever. I reserve that for really, really
I'm not sure I understand what you mean by "dangerous". When your
shutdown method is called, you're being told that you're about to stop
being able to control your hardware, either because your code is about to
be removed from the kernel (module unload) or because the system is being
Before you return success from your shutdown method, you must have
brought your hardware to a quiescent state, ready for immediate loss of
power. It must not generate any more interrupts or access any more data
once you have returned.
You can veto your shutdown (by returning nonzero), which will fail a
module unload, but _will_not_ fail a kernel shutdown.
> This needs to happen after all other shutdown work was done,
> but before a physical reset is sent to the hardware.
> There is no telling how long the IOP will take to return
> from flush request.
That's fine. Again, the Mylex driver is doing exactly what you're
talking about; I've been down this path just a few times now. 8)
> > (Note that the Mylex stuff doesn't correctly handle suspend/resume since
> > we don't have a decent ACPI implementation yet)
> I can emulate suspend/resume in the OSM easily.
> Actually, it does that just before shutting down.
> A single line of code.
I'm assuming that you depend on the platform firmware to bring it out of
any of the deep sleep modes, re-enumerate the PCI bus and restore all of
its volatile state?
\\ Give a man a fish, and you feed him for a day. \\ Mike Smith
\\ Tell him he should learn how to fish himself, \\ [EMAIL PROTECTED]
\\ and he'll hate you for a lifetime. \\ [EMAIL PROTECTED]
To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-current" in the body of the message