[linux-pm] what handles disk drive(s) shutdown?

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

 



On Pá 10-02-06 15:08:26, Randy.Dunlap wrote:
> On Sat, 11 Feb 2006, Pavel Machek wrote:
> 
> > On Pá 10-02-06 14:59:58, Randy.Dunlap wrote:
> > > On Fri, 10 Feb 2006, Pavel Machek wrote:
> > >
> > > > Hi!
> > > >
> > > > > in Documentation/power/devices.txt, I read:
> > > > >
> > > > > <quote>
> > > > > System shutdown -- at least disks need to be spun down, or data may be
> > > > > lost. Quiesce devices, just to make life easier for BIOS. event =
> > > > > FREEZE, flags = SYSTEM_SHUTDOWN
> > > > > </quote>
> > > > >
> > > > > Is this actually done somewhere?  I can't find /SYSTEM_SHUTDOWN/
> > > > > in any kernel .h or .c files.
> > > >
> > > > I think we do FREEZE during shutdown, but flags never got
> > > > implemented. It seems nobody really needs them, so...
> > >
> > > I'm not particular about the flags, but I do have a case of
> > > needing to do what the comment describes:  spin down disks
> > > during shutdown.  Can anyone suggest how that should be done?
> > >
> > > [I'm currently adding code to use register_reboot_notifier()
> > > and keeping a table of SATA/PATA controllers/channels for use
> > > at shutdown...]
> >
> > No, that is not the right way.
> >
> > void kernel_shutdown_prepare(enum system_states state)
> > {
> >         notifier_call_chain(&reboot_notifier_list,
> >                 (state == SYSTEM_HALT)?SYS_HALT:SYS_POWER_OFF, NULL);
> >         system_state = state;
> >         device_shutdown();
> > }
> >
> > device_shutdown() should do it, AFAICT.
> >
> > If you want to listen to such event, you should just register your
> > driver with sysfs and implement .suspend() method. But I believe PATA
> > does that already...
> 
> I walked thru that code path and didn't see it happening.
> And for PATA, please expect libata, not legacy drivers/ide/.

I think drivers/ide does it right. Feel free to copy it :-).
								Pavel
-- 
Web maintainer for suspend.sf.net (www.sf.net/projects/suspend) wanted...

[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux