A new set of IDE changes
[Posted April 2, 2003 by corbet]
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)