By advanced users, we mean to imply people who have a working
knowledge of how to use and administrate a Unix-like operating system.
If you follow instructions in this section without understanding what
you are doing, you may cause problems in the operation of your system.
12.1 - Forcing DMA access for IDE disks
With the PCI IDE code, your chipset may not be known. If so, you will get a message like:
pciide0: DMA, (unused)If you get this message, you can try and force DMA mode by using 'flags 0x0001' on your pciide entry in your kernel config file. That would look something like this:
pciide* at pci ? dev ? function ? flags 0x0001After doing this, the pciide code will try to use DMA mode regardless of whether or not it actually knows how to do so with your chipset. If this works, and your system makes it through fsck and startup, it is likely that this will work for good. If this does not work, and the system hangs or panics after booting, then you can't use DMA mode (yet, until support is added for your chipset). Note that if you find the documentation for your PCI-IDE controller's chipset, this is a good start to fully supporting your chipset within the PCI-IDE code. You can look on the manufacturer's website or call them. If your PCI-IDE controller is part of your motherboard, figure out who manufactures the chipset and pursue their resources!
Note that you will know that DMA support has been enabled if you see this message:
cd0(pciide0:1:0): using PIO mode 3, DMA mode 1 (using DMA data transfers)This means that pciide0, channel 1, drive 0 (which appears to be an ATAPI CD-ROM) is using DMA data transfers.
Some notes:
DMA is not supported on wdc* unless a DMA channel (drq) is specified. I'm not sure what the "standard" drqs are for hard disk controllers. To enable
wdc0 at isa? port 0x1f0 irq 14 flags 0x00Non-ultra DMA does not necessarily lead to higher bandwidth vs PIO. However, it decreases the CPU load significantly.
[Back to Main Index] [To Section 11.0 - Performance Tuning] [To Section 13.0 - IPsec]