Red Hat Bugzilla – Bug 71671
DMA should be enabled for CD and DVD drives in /etc/sysconfig/harddisks
Last modified: 2007-03-26 23:55:47 EDT
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (compatible; Konqueror/3; Linux)
Description of problem:
DMA is necessary in Xine (which ships with Red Hat) and all other Linux DVD
players to play DVD films.
It would be useful if this were enabled by default (presumably by the same
application that creates /dev/cdrom - I'm not sure if this is anaconda or
something else, apologies for any confusion).
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1.Install Red Hat Linux
2.Run xine or any other DVD player
Actual Results: The player does not play the film smoothly because DMA is
diabled by default.
Expected Results: DMA should be enabled to allow DVD player applications to
IIRC, DMA disabled by default as a safety feature, though most drives indeed can
handle DMA fine.
Something (I don't know what) needs to be done to make DMA enable easier/more
obvious for newbies, though. I've seen enabled DMA and disabled DMA both cause
problems, but with modern hardware I think the latter is more likely.
Newer/faster CD burners usually have small buffers and often end up invoking
burnproof frequently with DMA disabled, for instance -- that's arguably less
safe than having DMA enabled, allowing what would most likely be a burn without
pauses and the resulting gaps. (IOW, "safety" goes in both directions.)
This is not something I am going to enable given the amount of trouble I see
with installing with DMA enabled. It will have to be done in the post-install
environment if at all.
Can this be a checkbox somewhere in redhat-config-*?
That's probably the place, but it's not going to happen for this release.
*** Bug 69878 has been marked as a duplicate of this bug. ***
please add a tool to enable/disable dma. when i copy a cd and
dms is disabled the mouse is extremely jerky. that not a big
problem, i can enable it on my linux box, however on any other
workstation i log on, i find dma disabled... annoying...
How does Windows deal with this? Is it not possible to detect if DMA would work
Win9x defaults to DMA off for all devices, but there is an override mechanism
for OEMs. I forget the exact details, but OEMs can modify the Windows setup
files to enable DMA at install time for certain devices.
Win2000/WinXP enable DMA for hard disks and disable it for CD/DVD devices, by
default (i.e., same behavior as current Red Hat). The same override mechanism as
Win9x may be available here too, but I'm not sure.
And it's not possible to really detect whether DMA will work properly (I don't
have time to get into this right now).
You may find DMA enabled by default on many CD/RW/DVD drives on retail Windows
XP computers and laptops, but I suspect this is only because the manufacturer
tested it to work fine and set it that way with the Windows that ships with your
I think we just need a more accessible "checkbox" in some GUI configurator, and
an easy method of overriding it during booting if it causes booting to fail.
That is the best we can do.
Thanks for explaining it to me!
Actually, now that I think about it, I think XP might sometimes enable DMA by
default on some optical devices, but I don't know how it decides when to do or
not do this. I've seen this on non-OEM copies of XP, so it's not just the OEM
override thing I described earlier. XP might have a whitelist and/or blacklist
that I'm not aware of.
Would enabling DMA for all devices which identify themselves as DVD
drives be appropriate?
That reminds me, I found this web page which describes (to some degree) how MS
does it for XP:
+ DMA is disabled by default on ATAPI devices (and enabled by default for ATA
+ except if it's a DVD, CD-R, or CD-RW drive, in which case it's enabled by default
+ except if the IDE host controller is blacklisted *and* the BIOS does not
override the blacklist via ACPI, in which case DMA is disabled by default on any
drive (ATAPI or otherwise)
+ except if it's a blacklisted (ATA or ATAPI) drive, in which case DMA is
disabled *unconditionally* (i.e., if the user tries to enable it, XP will ignore
In case it's not obvious, for a given device on a given controller, it's the
last applicable bullet item's consequences that take effect. At least, if I'm
understanding MS correctly. (My summary omits the stuff in the section "For
repeated DMA errors" because the kernel already implements that.)
I could be wrong, but it seems to me like this was fixed for all
intents and purposes around Red Hat 9 or so. Any problems of the
opposite nature (i.e. drives having DMA enabled when they shouldn't)
probably have bugs of their own filed by now, I would imagine. It may
be time to close this bug.