You are not logged in.

#1 2008-11-21 23:29:48

MeathooK
Member
Registered: 2008-11-07
Posts: 17

DMA issues w/ DVD/CD

I've been experiencing choppy playback of my DVDs, and I looked around, and noticed that I do not have DMA enabled for my combo drive. I've looked around in all the places I could, and tried all the fixes I could, and none of them work, hoping I'll find another suggestion here. Here's some output.

dmesg log:

ata1.00: ATA-6: TOSHIBA MK8025GAS, KA023A, max UDMA/100
ata1.00: 156301488 sectors, multi 16: LBA
ata1.00: configured for UDMA/100
ata2.00: ATAPI: TOSHIBA DVD-ROM SD-R2212, 1913, max MWDMA2
ata2.00: WARNING: ATAPI DMA disabled for reliablity issues.  It can be enabled
ata2.00: WARNING: via pata_ali.atapi_dma modparam or corresponding sysfs node.
ata2.00: simplex DMA is claimed by other device, disabling DMA
ata2.00: configured for PIO4

dmesg | grep DMA

  DMA      0x00000000 -> 0x00001000
  DMA zone: 3967 pages, LIFO batch:0
pci 0000:00:07.0: Activating ISA DMA hang workarounds
ata1: PATA max UDMA/100 cmd 0x1f0 ctl 0x3f6 bmdma 0x2040 irq 14
ata2: PATA max UDMA/100 cmd 0x170 ctl 0x376 bmdma 0x2048 irq 15
ata1.00: ATA-6: TOSHIBA MK8025GAS, KA023A, max UDMA/100
ata1.00: configured for UDMA/100
ata2.00: ATAPI: TOSHIBA DVD-ROM SD-R2212, 1913, max MWDMA2
ata2.00: WARNING: ATAPI DMA disabled for reliablity issues.  It can be enabled
ata2.00: simplex DMA is claimed by other device, disabling DMA
parport0: PC-style at 0x378 (0x778), irq 7, dma 0 [PCSPP,TRISTATE,COMPAT,ECP,DMA]

hdparm -i /dev/sr0

/dev/sr0:

 Model=TOSHIBA DVD-ROM SD-R2212                , FwRev=1913    , SerialNo=928A710011          
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=2048kB, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio1 pio2 pio3 pio4 
 DMA modes:  sdma0 sdma1 sdma2 mdma0 mdma1 *mdma2 
 AdvancedPM=no
 Drive conforms to: ATA/ATAPI-5 T13 1321D revision 3:  ATA/ATAPI-2,3,4,5

 * signifies the current active mode

Running the 2.6.27-ARCH kernel

Here's my lsmod as well:

Module                  Size  Used by
ipv6                  260260  12 
radeon                144544  2 
drm                    74280  3 radeon
joydev                 11584  0 
irtty_sir               7040  0 
sir_dev                13316  1 irtty_sir
irda                  112568  1 sir_dev
crc_ccitt               3840  1 irda
ppdev                   9348  0 
lp                     11108  0 
pcmcia                 35116  0 
snd_pcsp               11040  0 
psmouse                38288  0 
parport_pc             36804  1 
parport                33004  3 ppdev,lp,parport_pc
serio_raw               7172  0 
i2c_ali15x3             8452  0 
i2c_ali1535             7940  0 
container               5248  0 
i2c_core               22420  2 i2c_ali15x3,i2c_ali1535
video                  18064  0 
output                  4608  1 video
ohci1394               30256  0 
sg                     28852  0 
ieee1394               80452  1 ohci1394
ehci_hcd               35852  0 
uhci_hcd               24080  0 
yenta_socket           25228  1 
rsrc_nonstatic         12672  1 yenta_socket
pcmcia_core            33812  3 pcmcia,yenta_socket,rsrc_nonstatic
alim1535_wdt            6552  0 
shpchp                 31252  0 
pci_hotplug            28324  1 shpchp
ati_agp                 8716  1 
agpgart                30804  2 drm,ati_agp
processor              34732  1 
evdev                  11296  5 
ndiswrapper           188828  0 
usbcore               134128  4 ehci_hcd,uhci_hcd,ndiswrapper
fan                     6148  0 
button                  7824  0 
ac                      6020  0 
battery                12036  0 
snd_seq_oss            31872  0 
snd_seq_midi_event      8192  1 snd_seq_oss
snd_seq                49968  4 snd_seq_oss,snd_seq_midi_event
snd_seq_device          8332  2 snd_seq_oss,snd_seq
snd_ali5451            20108  1 
snd_ac97_codec        100516  1 snd_ali5451
snd_pcm_oss            40192  0 
snd_pcm                69636  4 snd_pcsp,snd_ali5451,snd_ac97_codec,snd_pcm_oss
snd_timer              21384  2 snd_seq,snd_pcm
snd_page_alloc          9224  1 snd_pcm
snd_mixer_oss          16512  1 snd_pcm_oss
snd                    50724  12 snd_pcsp,snd_seq_oss,snd_seq,snd_seq_device,snd_ali5451,snd_ac97_codec,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss
soundcore               8160  1 snd
ac97_bus                3584  1 snd_ac97_codec
natsemi                28256  0 
rtc_cmos               11424  0 
rtc_core               17564  1 rtc_cmos
rtc_lib                 4480  1 rtc_core
ext3                  126472  1 
jbd                    46100  1 ext3
mbcache                 8708  1 ext3
sr_mod                 16708  0 
cdrom                  35360  1 sr_mod
sd_mod                 27160  3 
ata_generic             6788  0 
pata_ali               10244  2 
pata_acpi               6016  0 
libata                152992  3 ata_generic,pata_ali,pata_acpi
scsi_mod               96460  4 sg,sr_mod,sd_mod,libata
dock                    9488  1 libata

Any help would be appreciated, thanks!

Offline

#2 2008-11-22 00:24:21

MoonSwan
Member
From: Great White North
Registered: 2008-01-23
Posts: 815

Re: DMA issues w/ DVD/CD

I put a line for hdparm settings in my rc.local file so that runs on boot up.  Try that yet?


I'm torn apart between worlds. Basically, using vim in a highly visual environment with a lot of mouse features feels like soldering a lose wire to a motherboard with a Zippo and a needle, while working with ANY TEXT AT ALL with a "modern GUI" text editor feels like joining the London Philharmonic Orchestra with a Fisher-Price Laugh and Learn Magical Musical Mirror.  --Awebb

Offline

#3 2008-11-22 00:29:05

MeathooK
Member
Registered: 2008-11-07
Posts: 17

Re: DMA issues w/ DVD/CD

Do you mean like: hdparm -d 1 /dev/sr0 ?

Offline

#4 2008-11-22 01:46:45

MoonSwan
Member
From: Great White North
Registered: 2008-01-23
Posts: 815

Re: DMA issues w/ DVD/CD

Yes thats precisely what I meant.  That should work properly for you and if not then you have other issues perhaps.


I'm torn apart between worlds. Basically, using vim in a highly visual environment with a lot of mouse features feels like soldering a lose wire to a motherboard with a Zippo and a needle, while working with ANY TEXT AT ALL with a "modern GUI" text editor feels like joining the London Philharmonic Orchestra with a Fisher-Price Laugh and Learn Magical Musical Mirror.  --Awebb

Offline

#5 2008-11-23 13:14:56

cliffbreaker
Member
From: Tiraspol, Transnistria
Registered: 2008-11-23
Posts: 52

Re: DMA issues w/ DVD/CD

I may be mistaken, but you have to add options ide0=noprobe ide1=noprobe to your kernel in /boot/grub/menu.lst


Windows works in 80 % cases, Linux in 20%, but you can make linux work in other 80% cases whilst you can never make windows work in last 20%

Offline

#6 2008-11-23 13:47:51

GerBra
Forum Fellow
From: Bingen/Germany
Registered: 2007-05-10
Posts: 201

Re: DMA issues w/ DVD/CD

We have had a similar problem with pata_ali yesterday on archlinux.de forum.
Devices connected to the 2nd IDE-Channel could not use DMA and HDs have terrible slow IO transfer rates.

Blacklist pata_acpi (either in rc.conf MODULES with !pata_acpi and/or /etc/modprobe conf. Also boot with disablemodules=pata_acpi as a kernel bootparameter to avoid loading pata_acpi during initrd boot).

pata_acpi is a low-level, generic modul for ata/pata access and shouldn't be loaded before the regular modul for your ide controller (pata_ali). These conflicts could be a special issue with ali chipsets.
<code>
ata_generic             6788  0
pata_ali               10244  2
pata_acpi               6016  0
libata                152992  3 ata_generic,pata_ali,pata_acpi
scsi_mod               96460  4 sg,sr_mod,sd_mod,libata
dock                    9488  1 libata
</code>
Here you see: pata_acpi is loaded before pata_ali.

Other hand you could try what dmesg says: load the pata_ali module with atapi_dma=1 if above is not the solution for your cd device.

Offline

#7 2010-01-18 14:20:49

kokoko3k
Member
Registered: 2008-11-14
Posts: 1,221

Re: DMA issues w/ DVD/CD

Unfortunately the solution by GerBra doesn't work for me.
With 2.6.32 kernel, blacklisting pata_acpi from kernel boot options in grub and from rc.conf produced this messages at boot:

22:ata1.01: ATAPI: HL-DT-ST DVDRAM GSA-4167B, DL10, max UDMA/33
423:ata1.01: WARNING: ATAPI DMA disabled for reliability issues.  It can be enabled
424:ata1.01: WARNING: via pata_ali.atapi_dma modparam or corresponding sysfs node.
425:ata1.01: configured for UDMA/33

Even hdparm reported:

/dev/sr0:

 Model=HL-DT-ST DVDRAM GSA-4167B, FwRev=DL10, SerialNo=19A2B5AFE5D8
 Config={ Fixed Removeable DTR<=5Mbs DTR>10Mbs nonMagnetic }
 RawCHS=0/0/0, TrkSize=0, SectSize=0, ECCbytes=0
 BuffType=unknown, BuffSize=unknown, MaxMultSect=0
 (maybe): CurCHS=0/0/0, CurSects=0, LBA=yes, LBAsects=0
 IORDY=on/off, tPIO={min:120,w/IORDY:120}, tDMA={min:120,rec:120}
 PIO modes:  pio0 pio3 pio4
 DMA modes:  mdma0 mdma1 mdma2
 UDMA modes: udma0 udma1 *udma2
 AdvancedPM=no
 Drive conforms to: Unspecified:  ATA/ATAPI-2,3,4,5

 * signifies the current active mode

It seems that dma is active, but a simple:

dd if=/dev/sr0 of=/dev/null

...produce a 100% cpu usage reported by htop.

Instead, issuing:

echo 1 > /sys/module/pata_ali/parameters/atapi_dma

Seems to correct all the issues, except that the system sometimes hangs at boot if i put that command in rc.local(!)

putting:

options pata_ali atapi_dma=1

in /etc/modprobe.d/modprobe.conf (as kernel messages suggest) has no effect on arch linux because that module is loaded in initrd.

So, (at least for me) it is necessary to edit /etc/mkinitcpio.conf and change/add to the FILES array:/etc/modprobe.d/modprobe.conf
Eg:

FILES= ' to  ' FILES="/etc/modprobe.d/modprobe.conf"

Next, something like 

echo "options pata_ali atapi_dma=1" >> /etc/modprobe.d/modprobe.conf

and finally:

mkinitcpio -p kernel26
reboot

Last edited by kokoko3k (2010-01-18 14:33:36)

Offline

Board footer

Powered by FluxBB