2002-06-07 21:05:10

by Mukesh Rajan

[permalink] [raw]
Subject: HDD power states + kernel

hi,

i need to implement powering down of the Hard Disk in the linux kernel. i
understand that using "hdparm" i could set a timeout and power down the
HDD after a certain idle time.

but then HDD has 4 power states and instead of powering down to the lowest
power state, i would like to power down one state at a time based on
certain timeout values.

i'm not sure where to start with this. would i have to play around with
"llrwblk.c"? and what would i have to do here in order to monitor disk
inactivity (idleness)? or should i look into APM stuff?

any help or pointers in this direction would be of great help.

thanks in advance,
mukesh


2002-06-08 18:29:57

by Daniel Kobras

[permalink] [raw]
Subject: Re: HDD power states + kernel

On Fri, Jun 07, 2002 at 02:05:05PM -0700, Mukesh Rajan wrote:
> i need to implement powering down of the Hard Disk in the linux kernel. i
> understand that using "hdparm" i could set a timeout and power down the
> HDD after a certain idle time.
>
> but then HDD has 4 power states and instead of powering down to the lowest
> power state, i would like to power down one state at a time based on
> certain timeout values.
>
> i'm not sure where to start with this. would i have to play around with
> "llrwblk.c"? and what would i have to do here in order to monitor disk
> inactivity (idleness)? or should i look into APM stuff?

The various standby modes of IDE disks are exported to userland via
ioctl()s (WIN_STANDBYNOW* and friends). For a userland solution see
http://noflushd.sourceforge.net. A first stab at a kernel
implementation was recently posted by Andrew Morton to linux-kernel
(June 4th, look out for "laptop mode"). Neither code makes use of
multiple power states, but you could start hacking from there.

Regards,

Daniel.