Blog Post

Improved DMA Support Coming Soon

  • Posted by Ryan Finnie on March 22, 2006, 11:40 pm

Article posted on Mar 22

One of the problems with today’s Finnix is that when the initrd scans for IDE drives, it is using the IDE system compiled into the kernel, which is “generic”. This is the most stable solution (I have yet to find an IDE CDROM drive that is not recognized), but unfortunately, there is almost no DMA support in the generic driver, so even when the system is booted with “finnix dma”, there is a good chance DMA support will not be enabled for either the CDROM or any disks. On top of that, even if you were to load the appropriate specialized IDE module for your chipset, the channels are already registered to the generic driver, and there appears to be no way to reverse that.

With the upcoming 87.0, I decided to modularize the IDE system, with the idea that the base IDE module would be loaded, then each specialized chipset module would be loaded, with the generic module loaded last. This would give the more specialized drivers a chance to load first, at which point DMA could be turned on by the user if desired. An unintended consequence was that it appears many chipset drivers automatically enable DMA if the channel supports it.

There lies the problem. It didn’t take me long to find a CDROM drive that, when DMA mode was enabled and data read from it, would freeze the system. Booting from another CDROM drive on the same channel did not have this problem, so it was a problem with the driver interacting with the drive itself, not the channel or chipset. It was then that I decided to combine this new funcionality with the “dma” boot parameter. With Finnix 87.0, the plan is now to load specialized drivers, and enable DMA mode, but only if the “dma” boot parameter is given. Without that parameter, Finnix will load just as it did in previous versions.

It’s sad that I’m choosing not to make this new functionality default, as the speed increase from DMA mode is considerable, but in this case I would prefer stability on a wider range of hardware to be preferable over speed. Of course, it’ll be available… Just do “finnix dma”, or you could boot into debug mode and manually modprobe your chipset’s drivers, which will be available on the initrd.

Edit: I’ve found the “Use PCI DMA by default when available” option in the kernel config, but I believe I’ll be keeping it as default (”on” as per Debian’s config), and still going with the method described above.

  • Posted in Development, Finnix

One Response to “Improved DMA Support Coming Soon”

  1. Finnix Blog » Finnix Development Update, on May 2nd, 2006 at 2:36 pm Said:

    [...] This also means that many boot-time options have been removed, because there are now automate. Of the top of my head, I removed nobootide, bootusb, nobootusb, bootfirewire, nobootusb2, bootscsi, nousb, nousb2, nofirewire, noscsi, nopcmcia, and dma. Automatically loading DMA-capable modules makes me worry (see this blog post), but out of the 30 or so different setups I’ve tested, only one drive has a problem with DMA, and it’s a DVD burner that is frankly broken in other respects as well. [...]

Leave a Reply

« No 2.6.16 for Finnix 87.0
I Lied. »

Finnix

  • Wiki
  • Blog
  • Snapshots

Categories

  • Announcements (22)
  • Development (27)
  • Finnix (67)
  • Miscellany (16)
  • Trademark (2)

Archives

  • December 2008
  • November 2008
  • June 2008
  • March 2008
  • January 2008
  • October 2007
  • July 2007
  • April 2007
  • January 2007
  • October 2006
  • August 2006
  • July 2006
  • May 2006
  • April 2006
  • March 2006
  • February 2006
  • January 2006
  • November 2005
  • October 2005

Search


Meta

  • Log in
  • Valid XHTML

Keep 'em coming!

263,412 spam comments
blocked by
Akismet
Powered by WordPress.