lkml.org 
[lkml]   [2007]   [Aug]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Disk spin down issue on shut down/suspend to disk
Tejun Heo wrote:
> Mark Lord wrote:
>> > Tejun Heo wrote:
>>> >> Michael Sedkowski wrote:
>>>> >>> Dnia 07-08-2007, Wt o godzinie 03:43 +0900, Tejun Heo napisał(a):
>>>>> >>>> Does emergency unload count increase
>>>>> >>>> after each power down?
>>>> >>> I think I got it.
>>>> >>> Using smartctl I've done a test and shut down, then repeted the test.
>>>> >>> The only values that where diffrent are temperatures and
>>>> >>> Hardware_ECC_Recovered which rised by 6 points.
>>>> >>> However I have no idea which of those is the "emergency count"...
>>>> >>> Full results in attachment.
>>>> >>>
>>>> >>> 192 Power-Off_Retract_Count 0x0032 100 100 000 Old_age
>>>> >>> Always - 388
>>> >>
>>> >> I think this is the one. You can test it by forcefully powering off the
>>> >> machine (press power button for several secs or disconnect AC and
>>> >> battery) and see whether the count increases.
>> >
>> > FWIW, Tejun, with 2.6.22, my new Seagate 160GB SATA drive (notebook)
>> > increments the "Power-Off_Retract_Count" on each suspend-to-RAM operation.
>> > It does not do any double spin-up/spin-down things though.
>> >
>> > What a mess.
>
> Hmmm.. It shouldn't. libata now issues STANDBYNOW prior to entering
> STR. Can you instrument code a bit and see whether it actually gets issued?

Heh.. I haven't instrumented it yet, but I did discover a bit more about it:

The Power-Off_Retract_Count incrmenents *only* when there's data in the
on-drive write-cache. So if I haven't written anything significantly large
before suspending, then it often does NOT increment the retract counter.

But if I copy a couple of multi-MB files around and then suspend (to RAM),
the retract count gets incremented.

So I've now just stuck "hdparm -F /dev/sda" into my suspend script,
and that cures the problem completely for me. "-F" does a FLUSH_CACHE,
and requires a recent copy of hdparm.

Perhaps libata should also do a FLUSH_CACHE before any STANDBYNOW command,
prior to entering STR, which is what my script is currently now doing..

I'll instrument libata and see what the current sequence is.
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2007-08-08 16:27    [W:0.067 / U:0.492 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site