Re: DMA not working on SATA?

From: Roger Heflin
Date: Thu Mar 27 2008 - 13:45:54 EST


Alex Bennee wrote:
On Wed, 2008-03-26 at 23:20 -0600, Robert Hancock wrote:
Alex Bennee wrote:
Hi,

Since I got my new machine I noticed it seemed to be running slower than
I expected for a duel core machine including a lot of stuttering. After
tweaking the BIOS settings from "Legacy" to "AHCI" I measured a doubling
of read performance with hdparm but heavy IO still makes the machine
sluggish, with top showing ~80% of the time in the wait state (and
loadavg shooting up). This seems like a DMA problem because I was under
the impression a task demanding IO should be able to sleep on a DMA
completion rather than blocking everything else.
That's not what IOwait means. It basically means "nothing better to do than wait for IO to complete". If you have only one running task which is blocked waiting for IO you will always have high IOwait.

So if my loadavg shoots up at the same time (indicating more than one
task wanting to run) does that infer that most of my tasks are IO
starved and waiting for the disk to catch up with them?

The main problem is I'm not sure if my disk subsystem is running as fast
as it should be. What sort of data rates should I be seeing from a
modern SATA type setup?

50-70MB/second per disk, if you are doing single sequential reads/writes (alone, not together-if you are doing both at the same time or more than one at the sime time it will be worse), if you are doing a lot of seeks it can be pretty much any number below that. The smaller the pieces of data that are being sent to disk, the worse things will be. The speed is dependent mostly on the type of disk, each disk has a underlying inside/outside platter bits per second, and that is the limit that you won't ever exceed.


As Alan pointed out (and I missed) the dmesg shows DMA is enabled, it's
just hdparam doesn't seem to be able to infer the fact (new IOTCLS for
newer disk systems?).

I could be I've already peaked in my performance and I'm just making
unrealistic demands on memory usage (I have been running cvsps after
all ;-).


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