Monday, January 15, 2007

The DMA toggle

I had to burn a lot of anime for a friend who was visiting after a long time. The first few DVDs burned fine. Then my data transfer rate dropped from 8 to 10 MBps to a mere 2 MBps. I don't know why this happened.

My system started acting odd, there was a lot of CPU usage, and I could barely move my mouse. First thing I did was checked whether DMA was enabled. Yes, it was. Next, I did a google search, and found a forum post somewhere.

The post was about windows users encountering a similar problem, and all they did to solve it was to disable DMA, and then enable it again.

I remembered that there was a problem reading one of my old DVDs. So maybe there were a few CRC (cyclic redundancy check) errors, that caused my system to stop using DMA, just like windows.

Ergo, I decided to "toggle" DMA, turned it off, and turned it back on again. And tada!! All is back to normal. I'm burning as I type!

Edit: 21 March 2007:

Today, the same thing happened, and I now have definite evidence of the fact that DMA was disabled by the kernel:

Mar 21 15:54:36 ranjan404 kernel: [17197775.652000] hdd: DMA disabled

Sure enough, CD burning was slow and crappy, and the mouse went nuts:
Mar 21 16:13:34 ranjan404 kernel: [17198913.988000] psmouse.c: Wheel Mouse at isa0060/serio1/input0 lost synchronization, throwing 3 bytes away.