Re: [PATCH] speed up SATA

Nick Piggin
2004-03-28T00:16:57Z

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.
>
>
>
> <tangent>
>
> 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.)