LWN.net Logo

A new set of IDE changes

Bartlomiej Zolnierkiewicz did a fair amount of IDE work during the Martin Dalecki period last year. He has been more quiet in recent times, however, leaving the current IDE cleanup effort to others. This week marked an end to that silence, however, as Bartlomiej surfaced with a significant set of IDE patches.

The first part, based on work originally by Suparna Bhattacharya, changes the way the block layer BIO structure and request structure work together. The BIO structure contains the pointers needed to keep track of which I/O transfers have been completed, and which have not. What is lacking, however, is any way of tracking which operations have been commenced. That tracking has traditionally been the driver's job.

The new "BIO traversal" patches change things by adding a new set of pointers which mark where the next I/O operation should begin. A new support function (with the unwieldy name process_that_request_first()) gives drivers a way to indicate that processing has begun on part of the request. Overall, it could be a useful infrastructure for drivers with relatively complicated request processing.

The real change, however, is a new set of IDE programmed I/O (PIO) handlers. One wouldn't think that PIO matters much, given that DMA operations are available. But, in fact, quite a few IDE drives still don't handle DMA well, and the Linux kernel tends to be very conservative about enabling DMA. Unless you've taken steps to change things, chances are that your IDE-based Linux system is running with programmed I/O. So the quality of the PIO handlers matters.

Bartlomiej's new PIO code simplifies (and clarifies) things considerably. It also uses the ATA taskfile mode of operation. The taskfile code has been broken for some time, with the result that it is disabled in 2.5 and was going to stay that way through the 2.6 release. After seeing the new PIO handlers, however, Alan Cox has changed his strategy: "Looks like the revised plan is 'pure taskfile for 2.6 care of Bartlomiej'."

IDE patches (after last year's IDE regime change) are treated with great care; they don't even make it into development kernels until the confidence level is quite high. So Bartlomiej's changes probably won't appear in the 2.5 mainstream for a little while yet. They should eventually get there, however, and the result will be an improved IDE subsystem for 2.6. (The full set of patches can be found in the "Patches and Updates" section, below.)


(Log in to post comments)

A new set of IDE changes

Posted Apr 3, 2003 17:41 UTC (Thu) by cpeterso (guest, #305) [Link]

Wasn't there a code freeze a while back??

A new set of IDE changes

Posted Apr 3, 2003 17:51 UTC (Thu) by corbet (editor, #1) [Link]

Finishing out the IDE work has been on the list since the beginning, there's nothing all that surprising there. They are indeed in a feature freeze (not a code freeze), but "grandfathered" features (32-bit dev_t, initramfs, IDE, AIO) are expected to be finished out.

A new set of IDE changes

Posted Apr 3, 2003 19:34 UTC (Thu) by brouhaha (subscriber, #1698) [Link]

What's the alternative to "ATA taskfile mode of operation"? I've written ATA drivers for other operating systems, and I'm not aware of any way to talk to ATA drives other than the taskfile.

Andre Hedrick

Posted Apr 4, 2003 20:52 UTC (Fri) by pflugstad (subscriber, #224) [Link]

And the next question is: what about Andre Hedrick? Is he going to work with Bartlomiej or not? Andre seems quite talented, but he also seems exceedingly opinionated and difficult to work with, and seems to often treat any IDE stuff he hasn't written as garbage. At least that's the impression I get from news of the efforts. Linus himself can't work with him, requiring all code to go through an intermediary (Alan Cox at this point in time IIRC).

Copyright © 2003, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds