Re: High CPU usage with sata_nv

From: Robert Hancock
Date: Wed Feb 21 2007 - 21:35:25 EST


Matthew Fredrickson wrote:

On Feb 20, 2007, at 9:43 PM, Robert Hancock wrote:

Matthew Fredrickson wrote:
I have noticed something that might be related as well. I am working on a device driver that would have periodic data errors due to exceptionally long interrupt handling latency. I have come to the point that I suspect that it's the sata_nv driver, and now that we can't do the hdparm -u1 option for sata, it seems to be a bigger problem.

What kernel are you using? There were some complaints about latency problems (the ATA status register read taking a ridiculous amount of time to complete) on sata_nv previously, but 2.6.20 should eliminate that problem at least on nForce4 chipsets..


It's a 2.6.18 kernel. What we're seeing (by means of the interrupt pin on another card) is extremely large interrupt latency (measured from the time the interrupt pin goes low to the first couple lines of code in the IRQ handler to clear it) occasionally, in the order of 500-700 microseconds. I figured it was some other driver on the system disabling irqs for a long period of time, but it's difficult to trace what might be doing that.

There were reports that an read of the interrupt status register on the sata_nv controller could take a huge amount of time (something like 14 milliseconds as I recall). I don't think it was ever really established what was causing that big delay (there was speculation it was trapping into SMM mode, but Nvidia denied that one).

In 2.6.20 kernels we use a different operating mode, ADMA, on the nForce4 chipsets which usually avoids using that register.

--
Robert Hancock Saskatoon, SK, Canada
To email, remove "nospam" from hancockr@xxxxxxxxxxxxx
Home Page: http://www.roberthancock.com/

-
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/