Viewing IDE device DMA capabilities on Linux hosts

Most modern drives support DMA, and the Linux IDE driver will use DMA if a device supports it. To check if a device is using DMA on a Linux host, you can cat /proc/ide/piix:

$ cat /proc/ide/piix

Controller: 0

                                Intel PIIX4 Ultra 100 Chipset.
--------------- Primary Channel ---------------- Secondary Channel -------------
                 enabled                          enabled
--------------- drive0 --------- drive1 -------- drive0 ---------- drive1 ------
DMA enabled:    yes              yes             yes               yes
UDMA enabled:   yes              yes             yes               yes
UDMA enabled:   5                5               5                 5
UDMA
DMA
PIO

The output contains a “yes” or “no” to indicate if DMA is enabled, and a line to indicate which DMA mode is in use. If for some reason DMA isn’t being used with a device, you can use hdparm to enable it.

One Comment

Jonathan  on February 7th, 2007

Would you have some time to explain how DMA is handled with USB HDDs?
I’m using kernel 2.6.17-10-generic. I have been reading, and still can’t figure out how to check DMA for my USB hard-drive guys.
cat /proc/dma does not seem to indicate any DMA goings on when I’m using the drive.

-J

Leave a Comment