HDPARM(8)

HDPARM(8)

halt Home Page System Administration Index hfaxd


NAME
       hdparm - get/set hard disk parameters

SYNOPSIS
       hdparm [ -a [sectcount] ] [ -A [0|1] ] [ -c [chipset_mode]
       ] [ -C ] [ -d [0|1] ] [ -f ] [ -g ] [ -i ] [ -k [0|1] ]  [
       -K  [0|1]  ]  [ -m [sectcount] ] [ -p [0|1|2|3|4|5] ] [ -P
       [sectcount] ] [ -q ] [ -r [0|1] ] [ -S [timeout] ] [ -T  ]
       [  -t ] [ -u [0|1] ] [ -v ] [ -W [0|1] ] [ -X [xfermode] ]
       [ -y ] [ -Y ] [ -Z ] [device] ..

DESCRIPTION
       hdparm provides a command line interface to  various  hard
       disk ioctls supported by the stock Linux IDE/ST-506 device
       driver.  This utility requires Linux kernel version 1.2.13
       or  later.   Some options may not work correctly with ear-
       lier kernels.  In addition, several options are  supported
       only  for  kernels  which  include  the  new (E)IDE device
       driver, such as version 2.0.10 or  later.   These  options
       are  unavailable  when  hdparm is compiled on systems with
       older kernel files in /usr/include/linux.

OPTIONS
       When no flags are given,  -acdgkmnru  is  assumed  (except
       when  a  given  device  is  SCSI, in which case -gr is the
       default).

       -a     Get/set sector  count  for  filesystem  read-ahead.
              This  is  used to improve performance in sequential
              reads of large  files,  by  prefetching  additional
              blocks  in anticipation of them being needed by the
              running  task.   In  the  current  kernel   version
              (2.0.10)  this  has  a default setting of 8 sectors
              (4KB).  This value seems good  for  most  purposes,
              but in a system where most file accesses are random
              seeks, a smaller setting might provide better  per-
              formance.   Also, many IDE drives also have a sepa-
              rate built-in read-ahead function, which alleviates
              the need for a filesystem read-ahead in many situa-
              tions.

       -A     Disable/enable the IDE drive's read-lookahead  fea-
              ture (usually ON by default).

       -c     Query/enable  (E)IDE 32-bit I/O support.  A numeric
              parameter can be used to enable/disable 32-bit  I/O
              support:  Currently  supported  values include 0 to
              disable 32-bit I/O support, 1 to enable 32-bit data
              transfers,  and  3  to enable 32-bit data transfers
              with a  special  sync  sequence  required  by  many
              chipsets.  The value 3 works with nearly all 32-bit
              IDE chipsets, but incurs  slightly  more  overhead.
              Note  that "32-bit" refers to data transfers across
              a PCI or VLB bus to the interface  card  only;  all
              (E)IDE  drives  still have only a 16-bit connection
              over the ribbon cable from the interface card.

       -C     Check the current IDE power mode status, which will
              always  be  one  of unknown (drive does not support
              this  command),  active/idle  (normal   operation),
              standby  (low  power mode, drive has spun down), or
              sleeping (lowest power mode,  drive  is  completely
              shut  down).   The  -S, -y, -Y, and -Z flags can be
              used to manipulate the IDE power modes.

       -d     Disable/enable the "using_dma" flag for this drive.
              This  option  only works with a few combinations of
              drives and interfaces which support DMA  and  which
              are  known  to  the IDE driver.  In particular, the
              Intel Triton chipset is supported for  bus-mastered
              DMA  operation with many drives (experimental).  It
              is also a good idea to use the -X34 option in  com-
              bination  with  -d1 to ensure that the drive itself
              is programmed for multiword DMA mode2.   Using  DMA
              does  not  necessarily  provide  any improvement in
              throughput or system performance,  but  many  folks
              swear by it.  Your mileage may vary.

       -f     Sync  and  flush the buffer cache for the device on
              exit.  This operation is also performed as part  of
              the -t and -T timings.

       -g     Display  the drive geometry (cylinders, heads, sec-
              tors), the size (in sectors) of the device, and the
              starting offset (in sectors) of the device from the
              beginning of the drive.

       -h     Display terse usage information (help).

       -i     Display the identification info that  was  obtained
              from the drive at boot time, if available.  This is
              a feature of modern IDE drives, and may not be sup-
              ported  by older devices.  The data returned may or
              may not be current,  depending  on  activity  since
              booting  the system.  However, the current multiple
              sector mode count is  always  shown.   For  a  more
              detailed interpretation of the identification info,
              refer to AT Attachment Interface  for  Disk  Drives
              (ANSI  ASC X3T9.2 working draft, revision 4a, April
              19/93).

       -I     Request  identification  info  directly  from   the
              drive,  which  is displayed in its raw form with no
              endian changes or corrections.   Otherwise  similar
              to the -i option.

       -k     Get/set  the  keep_settings_over_reset flag for the
              drive.  When this flag  is  set,  the  driver  will
              preserve  the  -dmu  options over a soft reset, (as
              done during the  error  recovery  sequence).   This
              flag  defaults to off, to prevent drive reset loops
              which could be caused by combinations of -dmu  set-
              tings.   The  -k  flag should therefore only be set
              after one has achieved confidence in correct system
              operation  with  a chosen set of configuration set-
              tings.  In practice, all that is  typically  neces-
              sary to test a configuration (prior to using -k) is
              to verify that the drive can be  read/written,  and
              that  no error logs (kernel messages) are generated
              in the process (look in /var/adm/messages  on  most
              systems).

       -K     Set   the  drive's  keep_features_over_reset  flag.
              Setting this enables the drive to retain  the  set-
              tings for -APSWXZ over a soft reset (as done during
              the error recovery sequence).  Not all drives  sup-
              port this feature.

       -m     Get/set sector count for multiple sector I/O on the
              drive.  A setting of 0 disables this feature.  Mul-
              tiple  sector  mode (aka IDE Block Mode), is a fea-
              ture of most modern IDE hard drives, permitting the
              transfer  of  multiple  sectors  per I/O interrupt,
              rather than the usual  one  sector  per  interrupt.
              When  this feature is enabled, it typically reduces
              operating system overhead for disk I/O  by  30-50%.
              On  many  systems,  it also provides increased data
              throughput  of  anywhere  from  5%  to  50%.   Some
              drives,   however   (most  notably  the  WD  Caviar
              series), seem to  run  slower  with  multiple  mode
              enabled.   Your mileage may vary.  Most drives sup-
              port the minimum settings of 2, 4, 8, or  16  (sec-
              tors).   Larger  settings  may  also  be  possible,
              depending on the drive.  A  setting  of  16  or  32
              seems  optimal  on  many  systems.  Western Digital
              recommends lower settings of 4  to  8  on  many  of
              their  drives,  due  tiny  (32kB) drive buffers and
              non-optimized buffering algorithms.   The  -i  flag
              can  be  used to find the maximum setting supported
              by an installed drive (look for MaxMultSect in  the
              output).   Some  drives  claim  to support multiple
              mode, but lose data at some settings.   Under  rare
              circumstances,  such failures can result in massive
              filesystem corruption.

       -p     Attempt to reprogram the IDE interface chipset  for
              the specified PIO mode, or attempt to auto-tune for
              the "best" PIO mode supported by the  drive.   This
              feature  is  supported in the kernel for only a few
              "known" chipsets, and even then the support is iffy
              at best.  Some IDE chipsets are unable to alter the
              PIO mode for a single drive,  in  which  case  this
              flag  may  cause the PIO mode for both drives to be
              set.  Many IDE chipsets  support  either  fewer  or
              more  than  the standard six (0 to 5) PIO modes, so
              the exact speed setting  that  is  actually  imple-
              mented  will vary by chipset/driver sophistication.
              Use with extreme caution!   This  feature  includes
              zero protection for the unwary, and an unsuccessful
              outcome may result in severe filesystem corruption!

       -P     Set the maximum sector count for the drive's inter-
              nal prefetch mechanism.   Not  all  drives  support
              this feature.

       -q     Handle  the  next  flag  quietly, supressing normal
              output.  This is useful for reducing screen clutter
              when running from /etc/rc.c/rc.local.  Not applica-
              ble to the -i or -v or -t or -T flags.

       -r     Get/set read-only flag for device.  When set, write
              operations are not permitted on the device.

       -S     Set  the  standby (spindown) timeout for the drive.
              This value is used by the drive  to  determine  how
              long to wait (with no disk activity) before turning
              off the spindle motor to save  power.   Under  such
              circumstances,  the  drive  may  take as long as 30
              seconds to respond to  a  subsequent  disk  access,
              though  most drives are much quicker.  The encoding
              of the timeout value is somewhat peculiar.  A value
              of  zero means "off".  Values from 1 to 240 specify
              multiples of 5 seconds, for timeouts from 5 seconds
              to 20 minutes.  Values from 241 to 251 specify from
              1 to 11 units of 30 minutes, for timeouts  from  30
              minutes  to  5.5 hours.  A value of 252 signifies a
              timeout of 21 minutes, 253  sets  a  vendor-defined
              timeout,  and 255 is interpreted as 21 minutes plus
              15 seconds.

       -T     Perform timings of cache reads  for  benchmark  and
              comparison  purposes.  For meaningful results, this
              operation should be repeated 2-3 times on an other-
              wise  inactive  system  (no other active processes)
              with at least a couple of megabytes of free memory.
              This  displays  the  speed of reading directly from
              the Linux buffer cache without disk  access.   This
              measurement  is  essentially  an  indication of the
              throughput of the processor, cache, and  memory  of
              the  system  under  test.   If  the -t flag is also
              specified, then a correction factor  based  on  the
              outcome  of -T will be incorporated into the result
              reported for the -t operation.

       -t     Perform timings of device reads for  benchmark  and
              comparison  purposes.  For meaningful results, this
              operation should be repeated 2-3 times on an other-
              wise  inactive  system  (no other active processes)
              with at least a couple of megabytes of free memory.
              This  displays  the  speed  of  reading through the
              buffer cache to the disk without any prior  caching
              of  data.  This measurement is an indication of how
              fast the drive can sustain  sequential  data  reads
              under  Linux,  without any filesystem overhead.  To
              ensure accurate measurments, the  buffer  cache  is
              flushed  during the processing of -t using the BLK-
              FLSBUF ioctl.  If the -T flag  is  also  specified,
              then a correction factor based on the outcome of -T
              will be incorporated into the result  reported  for
              the -t operation.

       -u     Get/set  interrupt-unmask  flag  for  the drive.  A
              setting of 1 permits the  driver  to  unmask  other
              interrupts  during  processing of a disk interrupt,
              which greatly improves Linux's  responsiveness  and
              eliminates  "serial port overrun" errors.  Use this
              feature with caution: some drive/controller  combi-
              nations do not tolerate the increased I/O latencies
              possible when this feature is enabled, resulting in
              massive   filesystem  corruption.   In  particular,
              CMD-640B and RZ1000 (E)IDE interfaces can be  unre-
              liable (due to a hardware flaw) when this option is
              used with  kernel  versions  earlier  than  2.0.13.
              Disabling  the IDE prefetch feature of these inter-
              faces (usually a BIOS/CMOS setting) provides a safe
              fix for the problem for use with earlier kernels.

       -v     Display all settings, except -i (same as -acdgkmnru
              for IDE, or -gr for SCSI.  This is also the default
              behaviour when no flags are specified.

       -W     Disable/enable  the  IDE drive's write-caching fea-
              ture (usually OFF by default).

       -X     Set the IDE transfer  mode  for  newer  (E)IDE/ATA2
              drives.  This is typically used in combination with
              -d1 when enabling DMA to/from a  drive  on  a  sup-
              ported  interface  chipset (such as the Intel 430FX
              Triton), where -X34 is used to select multiword DMA
              mode2 transfers.  Apart from that, use of this flag
              is  seldom  necessary  since  most/all  modern  IDE
              drives  default  to their fastest PIO transfer mode
              at power-on.  Fiddling with this can be both  need-
              less  and risky.  On drives which support alternate
              transfer modes, -X can be used to switch  the  mode
              of  the drive only.  Prior to changing the transfer
              mode, the IDE interface should be jumpered or  pro-
              grammed  (see  -p flag) for the new mode setting to
              prevent loss and/or corruption of data.   Use  this
              with  extreme  caution!   For  the  PIO (Programmed
              Input/Output) transfer modes used  by  Linux,  this
              value is simply the desired PIO mode number plus 8.
              Thus, a value of 09 sets PIO mode1, 10 enables  PIO
              mode2,  and  11  selects  PIO  mode3.   Setting  00
              restores the drive's "default"  PIO  mode,  and  01
              disables IORDY.

       -y     Force  an  IDE  drive  to immediately enter the low
              power consumption standby mode, usually causing  it
              to spin down.  The current power mode status can be
              checked using the -C flag.

       -Y     Force an IDE drive to immediately enter the  lowest
              power  consumption  sleep  mode, causing it to shut
              down completely.  A hard or soft reset is  required
              before  the  drive can be accessed again (the Linux
              IDE driver  will  automatically  handle  issuing  a
              reset if/when needed).  The current power mode sta-
              tus can be checked using the -C flag.

       -Z     Disable the automatic power-saving function of cer-
              tain  Seagate  drives  (ST3xxx models?), to prevent
              them  from  idling/spinning-down  at   inconvenient
              times.

BUGS
       As  noted  above, the -m sectcount and -u 1 options should
       be used with caution at first, preferably on  a  read-only
       filesystem.   Most  drives  work well with these features,
       but a few drive/controller combinations are not 100%  com-
       patible.  Filesystem corruption may result.  Backup every-
       thing before experimenting!

       Although this utility is intended primarily for  use  with
       regular hard disk devices, several of the options are also
       valid (and permitted) for use with scsi hard disk devices.

AUTHOR
       hdparm  has  been  written by Mark Lord lt;mlord@pobox.com,
       the primary developer and maintainer of the (E)IDE  driver
       for Linux, with suggestions from many netfolk.

       The  disable  Seagate auto-powersaving code is courtesy of
       Tomi Leppikangastomilepp@paju.oulu.fi.

SEE ALSO
       AT Attachment Interface for Disk Drives, ANSI  ASC  X3T9.2
       working draft, revision 4a, April 19, 1993.

       AT  Attachment Interface with Extensions (ATA-2), ANSI ASC
       X3T9.2 working draft, revision 2f, July 26, 1994.

       Western Digital  Enhanced  IDE  Implementation  Guide,  by
       Western  Digital  Corporation,  revision 5.0, November 10,

       1993.

       Enhanced Disk Drive Specification, by Phoenix Technologies
       Ltd., version 1.0, January 25, 1994.

halt Home Page System Administration Index hfaxd