← Back to team overview

asus-ul30 team mailing list archive

Enabling laptop-mode to avoid continuous HD head parking

 

A lot has been written about the, so-called, "HD killer" problem, so I won't go into the background here.

I'll simply describe what I did to monitor it, and how I resolved it by installing and configuring laptop-mode.

Firstly, install the following packages with synaptic/aptitude/apt:
laptop-mode-tools
powertop
smartmontools

To check the number of times that the HD's heads have been parked:
> sudo smartctl -a /dev/sda | grep Load_Cycle_Count

To check your current power usage when on batteries (make sure you have  unplugged the power).  It will ask you to change various system settings.  Don't bother, since it is only temporary. Laptop-mode will make them permanent:
> sudo powertop

Make a record of these numbers for future reference (not needed, but informative).

Configure laptop-mode in /etc/laptop-mode.conf. Following are the settings I used. Your configuration may vary due to your intended notebook use.  Most of my settings are unchanged from the released version. The most significant settings related to the continuous HD parking problem are CONTROL_HD_POWERMGMT and BATT_HD_POWERMGMT.  I tried different values for  BATT_HD_POWERMGMT: 192 was the lowest that stopped the parking/unparking.

VERBOSE_OUTPUT=0
ENABLE_LAPTOP_MODE_ON_BATTERY=1
ENABLE_LAPTOP_MODE_ON_AC=0
ENABLE_LAPTOP_MODE_WHEN_LID_CLOSED=0
MINIMUM_BATTERY_CHARGE_PERCENT=3
DISABLE_LAPTOP_MODE_ON_CRITICAL_BATTERY_LEVEL=1
HD="/dev/[hs]d[abcdefgh]"
PARTITIONS="auto /dev/mapper/*"
ASSUME_SCSI_IS_SATA=1
LM_BATT_MAX_LOST_WORK_SECONDS=900
LM_AC_MAX_LOST_WORK_SECONDS=360
CONTROL_READAHEAD=1
LM_READAHEAD=3072
NOLM_READAHEAD=128
CONTROL_NOATIME=1
USE_RELATIME=0
CONTROL_HD_IDLE_TIMEOUT=1
LM_AC_HD_IDLE_TIMEOUT_SECONDS=7200
LM_BATT_HD_IDLE_TIMEOUT_SECONDS=300
NOLM_HD_IDLE_TIMEOUT_SECONDS=7200
CONTROL_HD_POWERMGMT=1
BATT_HD_POWERMGMT=192
LM_AC_HD_POWERMGMT=254
NOLM_AC_HD_POWERMGMT=254
CONTROL_HD_WRITECACHE=0
NOLM_AC_HD_WRITECACHE=1
NOLM_BATT_HD_WRITECACHE=0
LM_HD_WRITECACHE=0

Before or after the enabling of laptop-mode, I have never actually heard the HD spin-down, i.e. be silent, so the IDLE_TIMEOUT settings may be useless.  If anyone has had a different experience, please let me know.

Further laptop-mode configuration in /etc/laptop-mode/conf.d:
cpufreq.conf: 
    CONTROL_CPU_FREQUENCY=1

ethernet.conf: 
    CONTROL_ETHERNET=1

intel-hda-powersave.conf: 
    CONTROL_INTEL_HDA_POWER=1

intel-sata-powermgmt.conf: 
    CONTROL_INTEL_SATA_POWER=1

sched-mc-power-savings.conf
    CONTROL_SCHED_MC_POWER_SAVINGS=1

usb-autosuspend.conf
    CONTROL_USB_AUTOSUSPEND=1

video-out.conf
    CONTROL_VIDEO_OUTPUTS=1
    BATT_DISABLE_VIDEO_OUTPUTS="VGA HDMI DP"
    LM_AC_DISABLE_VIDEO_OUTPUTS=""
    NOLM_AC_DISABLE_VIDEO_OUTPUTS=""

Finally, enable laptop-mode in /etc/default/acpi-support
ENABLE_LAPTOP_MODE=true

Reboot.

Run sudo lm-profiler.  This runs for a few minutes, collecting data. Finally, it will ask you to disable programs/daemons that accesses the HD.  I disabled all the suggested programs/daemons when on battery, including cron and atd.

That's it.

Run smartctl to check the HD park/unparking.  It should now only increase once every time you suspend/hibernate/power-off the system.

Run powertop again to see how much power laptop-mode has saved when on batteries. On my system, it is down from 10.4W to 7.6W. A saving of more than 25%.

Mike

------------------------------------------------------------
Diet Help
Cheap Diet Help Tips. Click here.
http://216.21.215.31/c?cp=yGO6kxiwk4uiq6C2nGMmTQAAKZWTaqLVESL4JwBOVor4NdHGAAYAAAAAAAAAAAAAAAAAAADNAAAAAAAAAAAAAAAAAAAYQExx_-E=