Re: [PATCH] speed up SATA

From: Nick Piggin
Date: Sat Mar 27 2004 - 19:18:44 EST

Jeff Garzik wrote:
Jeff Garzik wrote:

It's up to the sysadmin to choose a disk scheduling policy they like, which implies that a _scheduler_, not each individual driver, should place policy limitations on max_sectors.


The block layer / scheduler guys should also think about a general (not SCSI specific) way to tune TCQ tag depth. That's IMO another policy decision.

I'm about to add a raft of SATA-2 hardware, all of which are queued. The standard depth is 32, but one board supports a whopping depth of 256.

Given past discussion on the topic, you probably don't want to queue 256 requests at a time to hardware :) But the sysadmin should be allowed to, if they wish...

I think you could limit the number of in-flight requests quite
easily, even for drivers that do not use the block layer's
queueing functions.

Aside, you should make 2 or 4 tags the default though: that
still gives you the pipelining without sacrificing latency
and usibility.

The only area (I think) where large queues outperform the IO
scheduler are lots of parallel, scattered reads. I think this
is because the drive can immediately return cached data even
though it looks like a large seek to the IO scheduler.
(This is from testing on my single, old SCSI disk though.)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at