Re: Linux 2.6.25-rc4

From: Mark Lord
Date: Fri Mar 21 2008 - 11:03:44 EST


Alan Cox wrote:
On Sun, 16 Mar 2008 12:39:43 -0700 (PDT)
Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:


On Sun, 16 Mar 2008, Alan Cox wrote:
No it doesn't. DRQ simply means "drive has more data for the controller
if you want it". Interrupts are controlled via IEN and the interrupt line.
A _lot_ of chips require you to clear the DRQ by taking the data they have.

Almost none and mostly very old ones. I'm not saying we shouldn't do it
(except where it hangs the hardware - hence the FIFO flag) but for the
traces presented and hardware reported it appears to be a bit of a red
herring.

If the drive wants to give us data and we end the transaction that is
fine. In practice a tiny few devices crap themselves if we don't.
More than a few tiny devices from what I remember. It tends to be the other way around - most devices do *not* want to get new commands until you've finished the previous one by draining the queues.

Not in my experience having maintained a lot of ATA drivers for a very
long time. In fact the changes for draining the DRQ went into libata only
very recently because it was only when we had a distro sized userbase
with PATA devices that it became apparent that a few corner case problems
remained.
..

Err.. I have a fairly modern PATA drive (160GB seagate 2.5")
that gets pissed if we leave DRQ hanging. So it's not just
something for old/obsolete drives.

Or maybe it's the also-modern-ish ICH chipset that gets stuck. Whatever.

-ml
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/