This is just a short hint because I had some problems about finding out how to do it when I tried to use hdparm and sdparm for it. I wanted to find it out because I had some problems with it on the laptop and just wanted to check at the workstation to be sure it’s activated and that I am not loosing performance for nothing…

As hdparm is meant for IDE drives only, although it can read some data from Sata drives it lacks support for setting or reading the DMA mode (which is of course quite logical as the DMA mode is set or activated by the bios).

Thinking about it I remembered that if it is set by the bios itself it should give some output in dmesg while sata_nv or your equivalent chipset’s sata module is loaded.

So the solution is quite simple and straight forward. We grep the output of dmesg for DMA

dmesg |grep DMA

This should show something like that:

  DMA             0 ->     4096
  DMA32        4096 ->  1048576
  DMA zone: 56 pages used for memmap
  DMA zone: 1399 pages reserved
  DMA zone: 2544 pages, LIFO batch:0
  DMA32 zone: 7108 pages used for memmap
  DMA32 zone: 512796 pages, LIFO batch:31
forcedeth: using HIGHDMA
NFORCE-CK804: 0000:00:06.0 (rev f2) UDMA133 controller
    ide0: BM-DMA at 0xd000-0xd007, BIOS settings: hda:DMA, hdb:DMA
    ide1: BM-DMA at 0xd008-0xd00f, BIOS settings: hdc:DMA, hdd:DMA
hda: 160836480 sectors (82348 MB) w/1794KiB Cache, CHS=16383/255/63, UDMA(100)
hdc: ATAPI 40X DVD-ROM CD-R/RW drive, 2048kB Cache<4>hdc: drive side 80-wire cable detection failed, limiting max speed to UDMA33
sata_nv 0000:00:07.0: Using ADMA mode
ata1: SATA max UDMA/133 cmd 0xffffc2000031c480 ctl 0xffffc2000031c4a0 bmdma 0x000000000001d400 irq 22
ata2: SATA max UDMA/133 cmd 0xffffc2000031c580 ctl 0xffffc2000031c5a0 bmdma 0x000000000001d408 irq 22
ata1.00: ATAPI: TSSTcorp CDDVDW SH-S203B, SB00, max UDMA/100
ata1.00: configured for UDMA/100
sata_nv 0000:00:08.0: Using ADMA mode
ata3: SATA max UDMA/133 cmd 0xffffc2000031e480 ctl 0xffffc2000031e4a0 bmdma 0x000000000001e800 irq 21
ata4: SATA max UDMA/133 cmd 0xffffc2000031e580 ctl 0xffffc2000031e5a0 bmdma 0x000000000001e808 irq 21
ata3.00: ATA-7: SAMSUNG SP2504C, VT100-41, max UDMA7
ata3.00: configured for UDMA/133
ata4.00: ATA-7: SAMSUNG SP1614C, SW100-27, max UDMA7
ata4.00: configured for UDMA/133

As one can see, the DMA mode is activated by all SATA devices.