Re: [PATCH] speed up SATA

Jeff Garzik
2004-03-30T15:32:11Z

Marc Bevand wrote:
> Jeff Garzik wrote:
>
>>
>> [...]
>> With this simple patch, the max request size goes from 128K to 32MB...
>> so you can imagine this will definitely help performance. Throughput
>> goes up. Interrupts go down. Fun for the whole family.
>> [...]
>
>
> I have experienced a noticeable improvement concerning the CPU usage
> and disk throughput with this patch.
>
> Benchmark specs:
>
> o read from only 1 disk (sda), or from 2 disks (sda+sdb), with
> 1 or 2 instances of "dd if=/dev/sd? of=/dev/null bs=100M".
> o hardware: two Seagate 160GB SATA, on a Silicon Image 3114, on a
> 32-bit/33MHz PCI bus, 1GB RAM.
> o software: kernel 2.6.5-rc2-bk6-libata2.

[...]

Very cool, thanks for benching!

> As other people were complaining that the 32MB max request size might be
> too
> high, I did give a try to 1MB (by replacing "65534" by "2046" in the
> patch).
> There is no visible differences between 32MB and 1MB.

This is not surprising, since:
* the scatter-gather table imposes a limit of 8MB
* the VM further imposes limits on readahead and writeback

So 32MB is the hardware max, but not really achieveable due to other
factors.

> PS: Jeff: "pci_dma_mapping_error()", in libata-core.c from your latest
> 2.6-libata patch, is an unresolved symbol. I have had to comment it out
> to be able to compile the kernel.

Yeah, this is only found in the bleeding-edge-latest 2.6.x kernels. You
did the right thing...

Regards,

Jeff