Enhancement to power modes of modern HDDs #263
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR include 2x changes:
The 1st change trys to resolve issue in #138 and #141.
One problem with modern HDDs is the more aggressive idle_a timer. Some (Seagate Exos 7E10, X18, X20, etc) may need only 10ms to enter idle_a. In
smartmontools/smartmontools/smartd.cpp
Line 3576 in 65707ca
The fix #138 and #141 do not address the issue at its root since it just increase the timeout. What's more, 10-disc HDDs now need 25s to spin up which is longer than we expect in
smartmontools/smartmontools/smartd.cpp
Line 267 in 65707ca
The main purpose of 1st commit is to change condition of re-check power mode from
0 <= powermode
(compare againstactive
) todontcheck == 0
(compare against -n condition). So even if a drive enters idle_a, it won't need re-check power mode and thus save 5s delay.The minor change in
scsiprint.cpp
in 1st change include some typo correction and correction forpowerlimit
.powerlimit
forLOW POWER
should be changed to lower power mode, becauseLOW POWER
stands for an undivided power mode and lower power mode could avoid unnecessary spin up.The 2nd change is a rework for #126. Almost all modern HDDs enable idle_a and idle_b. But current
-n
argument only acceptidle
orstandby
. The problem withidle_b
is that HDD will unload its head assembly out of disk. So frequent idle_b switch will result in large load - unload count. That's why there are a lot of concerns on smart 193Load_Cycle_Count
parameter. By divideidle
orstandby
into more detailed power modes, we could set-n idle_b
to drive to limit increment of smart 193Load_Cycle_Count
.Relative: WD whitepaper on power modes