This page is to discuss the DMA problems seen from the ivtv driver.
There seems to be a few different errors seen.
- These errors may cause brief interruptions in the video/audio stream however the driver continues to record.
ivtv0 warning: ENC: (0) DMA Error 0x0000000b 00020001 ivtv0 warning: offset 0 -> 128 ivtv0 warning: offset 128 -> 120 ivtv0 warning: offset 120 -> 100 ivtv0 warning: ENC: (0) DMA Error 0x0000000b 00020001 ivtv0 warning: offset 100 -> 128 ivtv0 warning: offset 128 -> 0
- These errors stop all recording from the video/audio stream and a reboot is required to allow recording.
ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (0) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (1) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (2) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REG_DMAXFER 2 wait failed ivtv0 warning: ENC: (3) DMA Error 0x00000001 00000001 ivtv0 warning: ENC: REDO DMA took too many tries. ivtv0 warning: Error Encoder DMA
Affected Motherboards / OS / Kernel / Driver
This is the list of affected motherboards, OS, kernel and driver combos:
- ASUS A8N-VM CSM / Kubuntu 6.06 (Dapper) / kernel 2.6.15-26-686 / ivtv 0.4.6 + patch
- ASUS K8N-E Deluxe / / kernel 188.8.131.52 / ivtv 0.4.7
- ASUS A8V Deluxe / Gentoo / kernel 2.6.17-gentoo-r8 / ivtv 0.7.1
- MSI K8NGM2-FID/mandriva 2007.0/kernel 2.6.17-5/ivtv 0.7.0 and 0.7.1
- GigaByte GA-K8NSC-939 / Debian etch / vanilla kernel 184.108.40.206 / ivtv 0.4.3
- ASUS A7M-266D / Fedora Core 6 / kernel 2.6.18-1.2849.fc6 / ivtv 0.8.1-122.fc6.at / also various other distributions with ivtv 0.7.0 and above
- Tyan S2466-4M / Ubuntu 6.10 (Edgy Eft) / kernel 2.6.17-10-generic / ivtv 0.7.0 and above / Maxtrox G400 AGP minimal DMA errors / Nvidia FX5200 PCI many DMA errors
- nForce4 motherboards (MCP51 chipset)
Ways to Reproduce
Several people have reported different ways to reproduce the problem. This is a list of the ways to reproduce the errors above:
- OpenGL applications running
- dynamic CPU throttling plus CoolNQuiet
- Mythttv transcoding
- Heavy hard drive use
- I have 4 IDE HDs configured in Raid5 array all added to an LVM volume. With my 2 Haugpage 250 tuners I can reproduce this by recording to two files and also having a seperate computer reading a large file over nfs to /dev/null.
- overloading a power supply (particularly the 3.3v rail)
- PCI latency left at default values (64 for PVR-150, 32 for all other PCI devices, verify using lspci -v)
Shutting down for 30 seconds seems to have resolved this issue for me. It was apparently caused by a firmware update that I hadn't done a proper shutdown/wait 30 seconds.
Another thing to try is swapping around and/or removing unnecessary PCI cards you have installed. I had a Promise PCI IDE card that I used to attach a couple harddrives. I removed it and attached the drives to the IDE interface on the motherboard. It meant I had to lose a CD burner (which I didn't really need) but it made the DMA errors go away. I also removed a USB card I didn't really need. Who knows if it was causing problems, but now IVTV seems rock solid.
The definitive solution for me was increasing the PCI latency values exactly as described here:
This solution works for me even though my PVR-150 records directly to a pure software Raid5 (using md in evms). Even the (recoverable) DMA warnings are gone. Since this approach requires minimal effort, I wish I had tried it first.