Re: [PATCH] speed up SATA

Denis Vlasenko
2004-03-29T07:36:18Z

On Monday 29 March 2004 06:29, Wim Coekaerts wrote:
> > In 2.4 reaching 512k DMA units that helped a lot, but going past 512k
> > didn't help in my measurements. 1M maybe these days is needed (as Jens
> > suggested) but >1M still sounds overkill and I completely agree with
> > Jens about that.
>
> at least 1Mb... more than 1mb (I doubt 32mb is really necessarily
> useful) is nice for flushing contiguous journal data to disk. between
> 1-8mb in one io.
>
> at least 1mb is good when you have to process massive amounts of data,
> just read huge chunks of files, we tend to do 1mb. anyway,
> as you said, at some point it's a bit overkill . I thinkg 1-8mb makes
> sense.

It makes sense *today*. Do you want to return to this discussion
ad infinitum?

Andrea is right, block layer can be coded to detect such a (per-device)
request size increasing which does not give you any more throughput,
or increasing which hurts your latency too much, and stick with it.

More detailed:

1. size = 1 sector
2 measure throughput and latency
3. size *= 2
4. measure new_throughput and new_latency
5. if(new_throughput<=throughput*1.01 || new_latency>50ms) break
6. throughput = new_throughput; latency = new_latency; goto 3

Real code will have admin overrides (start from N sectors,
never go higher than M sectors etc), but you got the idea.
--
vda