While working on an old hardware where Ubuntu is installed I noticed using top that a huge amount of CPU time was spent waiting for IO operations (network data transfer was in progress). I therefore checked for DMA state using this command:
sudo hdparm -d /dev/sdb2 /dev/sdb2: HDIO_GET_DMA failed: Inappropriate ioctl for device
Does this mean the device is not using DMA? I also tried to retrieve information about the hardware and got this:
sudo hdparm -I /dev/sdb2 /dev/sdb2: ATA device, with non-removable media Model Number: WDC WD1600JB-00GVA0 Serial Number: WD-WCAL91665091 Firmware Revision: 08.02D08 Standards: Supported: 6 5 4 Likely used: 8 Configuration: Logical max current cylinders 4092 65535 heads 16 1 sectors/track 63 63 -- CHS current addressable sectors: 4128705 LBA user addressable sectors: 66055248 LBA48 user addressable sectors: 312581808 Logical/Physical Sector size: 512 bytes device size with M = 1024*1024: 152627 MBytes device size with M = 1000*1000: 160041 MBytes (160 GB) cache/buffer size = 8192 KBytes (type=DualPortCache) Capabilities: LBA, IORDY(can be disabled) Standby timer values: spec'd by Standard, with device specific minimum R/W multiple sector transfer: Max = 16 Current = 16 Recommended acoustic management value: 128, current value: 254 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 *udma5 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: * SMART feature set Security Mode feature set * Power Management feature set * Write cache * Look-ahead * Host Protected Area feature set * WRITE_BUFFER command * READ_BUFFER command * DOWNLOAD_MICROCODE SET_MAX security extension Automatic Acoustic Management feature set * 48-bit Address feature set * Device Configuration Overlay feature set * Mandatory FLUSH_CACHE * FLUSH_CACHE_EXT * SMART error logging * SMART self-test * SMART Command Transport (SCT) feature set * SCT Long Sector Access (AC1) * SCT LBA Segment Access (AC2) * SCT Error Recovery Control (AC3) * SCT Features Control (AC4) * SCT Data Tables (AC5) Security: supported not enabled not locked not frozen not expired: security count not supported: enhanced erase HW reset results: CBLID- above Vih Device num = 1 determined by the jumper Checksum: correct
It is my understanding from this that DMA should be supported. Why am I getting that error and is it unusual that top shows values higher than 90% for "iowait" operations when two network transfers are running?