Interrupts hogging CPU use caused by UDMA drives reverting to PIO mode.
Running the SysInternals utility Process Explorer I have noticed that it was indicating that "interrupts" were taking the majority of CPU load, and it seemed related to disk activity, when copying large files to and from USB drives for example. I did a quick google and discovered this post which identified the problem, which is related to way XP handles the DMA mode on ATA/ATAPI devices (article here and discussion here).
Sure enough checking my machine the drives were switched to PIO mode.For repeated DMA errors. Windows XP will turn off DMA mode for a device after encountering certain errors during data transfer operations. If more that six DMA transfer timeouts occur, Windows will turn off DMA and use only PIO mode on that device.
In this case, the user cannot turn on DMA for this device. The only option for the user who wants to enable DMA mode is to uninstall and reinstall the device.
Windows XP downgrades the Ultra DMA transfer mode after receiving more than six CRC errors. Whenever possible, the operating system will step down one UDMA mode at a time (from UDMA mode 4 to UDMA mode 3, and so on).
To access this information use Settings->Control Panel->System->Hardware->Device Manager and then expanding the IDE ATA/ATAPI controllers

Double click them and under advanced settings you will see the transfer mode selected

If the current transfer mode is set as PIO rather then UDMA then the best thing to do is uninstall the driver and let XP reboot, this reinstalls the driver and resets the transfer mode. This works for SATA drives as well as they are still IDE drives.
I can't recommend the SysInternals Process Explorer utility enough and is a worthwhile replacement for Task Manager. The Sysinternals web site was created in 1996 by Mark Russinovich and Bryce Cogswell to host their advanced system utilities and technical information. Microsoft acquired Sysinternals in July, 2006. The site is full of useful utilities to help manage, troubleshoot and diagnose Windows systems and applications.
Labels: interrupts, PIO, process explorer, sysinternals, UDMA, windows xp



