HDD in Linux
Jump to navigation
Jump to search
Command-line tools
- Use hdparm to manage IDE hdd in Linux
% hdparm /dev/hda # print summary information on device % hdparm -l /dev/hda # print information on device % hdparm -tT /dev/hda # benchmark device performance % hdparm -d 1 /dev/hda # set DMA for devices
- Use sdparm to manage SATA hdd in Linux. But hdparm can still be used for benchmarking.
% sdparm /dev/sda # print summary information on device % hdparm -tT /dev/sda # benchmark device performance
OpenSUSE
- In OpenSUSE, DMA can also be set through YaST → /etc/sysconfig Editor → parameter DEVICES_FORCE_IDE_DMA.
Troubleshooting DMA issues
Switched to OpenSUSE 11 on Gryphon, not sure that DMA is enabled. hdparm /dev/sda gives the following error:
/dev/sda: ... HDIO_GET_DMA failed: Inappropriate ioctl for device ...
Googling for HDIO_GET_DMA failed gives:
- Might need to add module piix' (PCI IDE/ISA Xcelerator (Intel IC)) (see here).
- Looking into /var/log/boot.msg, it seems however that DMA is correctly set. May be hdparm is not up-to-date anymore. One day I shall investigate this...
% cat /var/log/boot.msg | egrep "dma|DMA" ... <6> ata1.00: Configured for UMDA/100 <6> ata1.01: Configured for UMDA/100 ... <6> ata2.00: Configured for UMDA/66 <6> ata2.01: Configured for UMDA/100
- Actually hdd are now treated as SCSI-device, including IDE PATA drives like mine. Some reporting from hdparm is not correct anymore.
% sudo hdparm -v -i /dev/sda /dev/sda: IO_support = 0 (default) 16-bit) HDIO_GET_UNMASKINTR failed: Inappropriate ioctl for device HDIO_GET_DMA failed: Inappropriate ioctl for device ... Model=IC35L040AVER07-0 , FwRev=ER4OA44A, SerialNo= SXPTXF49264 Config={ HardSect NotMFM HdSw>15uSec Fixed DTR>10Mbs } RawCHS=16383/16/63, TrkSize=0, SectSize=0, ECCbytes=40 BuffType=DualPortCache, BuffSize=1916kB, MaxMultSect=16, MultSect=?16? CurCHS=4047/16/255, CurSects=16511760, LBA=yes, LBAsects=80418240 IORDY=on/off, tPIO={min:240,w/IORDY:120}, tDMA={min:120,rec:120} PIO modes: pio0 pio1 pio2 pio3 pio4 DMA modes: mdma0 mdma1 mdma2 UDMA modes: udma0 udma1 udma2 udma3 udma4 *udma5 AdvancedPM=yes: disabled (255) WriteCache=enabled Drive conforms to: ATA/ATAPI-5 T13 1321D revision 1: ATA/ATAPI-2,3,4,5 * signifies the current active mode
Report on IO_support (16-bit) and on HDIO_GET_DMA is wrong. However the DMA mode is indeed correctly reported as being udma5 in this case. This is because SATA device (like sda...) uses a different protocol from IDE devices. DMA is always enabled by default for SATA devices. One must use sdparm to configure these devices (available as a separate package).
% sudo sdparm /dev/sda /dev/sda: ATA IC35L040AVER07-0 ER4O Read write error recovery mode page: AWRE 1 ARRE 0 PER 0 Caching (SBC) mode page: WCE 1 RCD 0 Control mode page: SWP 0