Re: Disk spin down issue on shut down/suspend to disk

From: Thomas Renninger
Date: Tue Aug 07 2007 - 09:45:47 EST


On Tue, 2007-08-07 at 22:32 +0900, Tejun Heo wrote:
> Henrique de Moraes Holschuh wrote:
> > On Tue, 07 Aug 2007, Tejun Heo wrote:
> >> Henrique de Moraes Holschuh wrote:
> >>>> approximately translates into "if you have too many boatmen on a ship,
> >>>> it goes to mountain". We also have a bunch of Toshiba laptops which
> >>> Yeah, that's a problem. But we can avoid it if we start snooping what ACPI
> >>> is asking us to deliver to the disks, which IMO is an extremely good idea
> >>> anyway.
> >> If it were done that way (by asking OS driver to deliver commands TFs),
> >> I wouldn't have any problem at all. The spin down command is issued
> >> from deep down in the acpi power off method - entering S5 directly
> >> issues ATA commands bypassing the whole OS except for the ACPI
> >> interpreter. It's just like the toshiba suspend crap and there's no
> >> standard way to tell whether the acpi power off method is gonna do it or
> >> not. We'll just have to blacklist it.
> >
> > Urk. I see.
> >
> > I'd also suggest adding a FAIL to the Linux firmware toolkit to any DSDT
> > doing this. Who should we prod to add that check?
>
> Dunno how the firmware toolkit works but this one can be pretty
> difficult to test (if it were easy, we could test it in libata) as it
> involves entering S5. If it's possible, I'm all for it. Also, it would
> be nice if we can test the same thing for S3 and S4.
>
> Thomas, who should we ask things about the Linux firmware toolkit? Thanks.

firmwarekit-discuss <firmwarekit-discuss@xxxxxxxxxxx> (added to CC list)
see: http://linuxfirmwarekit.org/

But if I understand this problem right, this won't be easy.
The ACPI tables are just parsed with system ("iasl ...") and syntactical
errors/warnings are printed out.
I also thought about a test, interpreting the DSDT and read out values
of cpufreq tables and sanity check them. AFAIK the linuxfirmwarekit is
not designed for that atm. You need to compile in most parts of the
acpica code and parse and interpret DSDT/SSDT code yourself in the
firmwarekit core or inside a plugin, then do a walk_namespace call or
whatever to find the functions/parts you like to examine. This is a lot
work and needs a proper design (providing an interface to plugins to let
them easily check specific AML/ASL code).

Thomas


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/