How to turn on/off DMA

Doncho N. Gunchev gunchev at gmail.com
Wed May 2 13:27:46 UTC 2007


On Wednesday 2007-05-02 15:55:50 dragoran wrote:
> Doncho N. Gunchev wrote:
> > What was not clear in my question, I asked how do I do turn DMA on/off with 
> > the new kernels, not why I should not do this? Is there a reason to keep this 
> > secret?
> >   
> I don't know the exact reason; but its as simple as "there is no  need 
> to" (libata never allowed this; so it was always the case for sata drives)

Ok, so there's no way... Thanks. From http://freshmeat.net/projects/hdparm/ :
"""
> is hdparm useful with sata drives, does
> it work with sata drives?
SATA drives in the 2.6 kernel are handled by the new "libata" SCSI driver. If
you add the "ATA passthru" patch (from Jeff Garzik) to your kernel, then
hdparm can work with those drives.

Some flags, like "-d", are not supported by libata. Currently, ALL SATA hard
drives use DMA, so there is no need for -d. But eventually libata will have to
implement ATA PIO (for CF cards..), and at that time it may (or not) begin to
support the "-d" flag.
"""

> > Here's the info for my DVD-Writer, it has DMA off in FC6 and I'm turning it on 
> > in rc.local to get it working faster.
> which is a bug, please fill one (kernel)...
> >  I also have to 'killall 
> > hald-addon-storage' (or more specificly, the one that monitors my DVD) or the 
> > machine (laptop) will die in a few hours (does not matter if I have DMA on, 
> > off or if I try to play with /usr/share/hal/fdi/policy/10osvendor/*.fdi. 
> >   
> also a bug fill it against hal
> > Haven't seen it locking for this reason with F7t4 yet.
> > --- Fedora Core 6 ---
> > # hdparm -i /dev/hdb
> >
> > /dev/hdb:
> >
> >  Model=TSSTcorpCD/DVDW TS-L632D, FwRev=AC01, SerialNo=
> >  Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
> >  RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
> >  BuffType=unknown, BuffSize=0kB, MaxMultSect=0
> >  (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
> >  IORDY=on/off, tPIO={min:227,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
> >  AdvancedPM=no
> >
> >  * signifies the current active mode
> >
> > # hdparm /dev/hdb
> >
> > /dev/hdb:
> >  IO_support   =  0 (default 16-bit)
> >  unmaskirq    =  0 (off)
> >  using_dma    =  0 (off)
> >  keepsettings =  0 (off)
> >  readonly     =  0 (off)
> >  readahead    = 256 (on)
> >  HDIO_GETGEO failed: Inappropriate ioctl for device
> >
> > *** There is a difference when hdparm /dev/hdb shows DMA on - when I watch DVD 
> > movie it works (and the time taken by the kernel while reading the DVD drops 
> > down), when off - it skips frames and looses a/v sync.
> >   
> I know that there is a difference between dma on and off ;)
> > --- Fedora 7 test 4 ---
> > # ll /dev/dvdrw
> > lrwxrwxrwx 1 root root 4  2 май  0,56 /dev/dvdrw -> scd0
> > # hdparm -i /dev/scd0
> >
> > /dev/scd0:
> >
> >  Model=TSSTcorpCD/DVDW TS-L632D                , FwRev=AC01    , SerialNo=
> >  Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
> >  RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
> >  BuffType=unknown, BuffSize=0kB, MaxMultSect=0
> >  (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
> >  IORDY=on/off, tPIO={min:227,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
> >  AdvancedPM=no
> >
> >  * signifies the current active mode
> >
> >   
> this seems correct (udma33)
> > # hdparm /dev/scd0
> >
> > /dev/scd0:
> >  IO_support   =  0 (default 16-bit)
> >  readonly     =  0 (off)
> >  readahead    = 256 (on)
> >  HDIO_GETGEO failed: Inappropriate ioctl for device
> >
> >   
> ok hdparm seems not to report the dma flag here.... tested on my box and 
> it seems that it does not do it for harddisks either (SATA)
> but again if the kernel does not enable the dmamode for you _its a bug_ 
> so please file one against kernel (one for fc6 and one for f7)
> 

Yep, it reports that DMA is used even when it is not. I will fill the bug reports
tonight, after work. I didn't fill a bug report for FC6's kernel because there were
enough of this type at that time and there was something about changing the
way hal pulls data from the CD...
Thanks.

-- 
Regards,
  Doncho




More information about the fedora-test-list mailing list