Re: libata / scsi separation

Grant Grundler
2008-12-10T17:11:34Z

On Wed, Dec 10, 2008 at 7:33 AM, Tejun Heo <htejun@gmail.com> wrote:
...
> And yeap we definitely should try to do that too but I don't think
> RW_SG would be as useless as jumbo frames (much less compatibility
> problem and no loss of functionality),

Jumbo frames aren't useless. They just don't apply to the "small message
passing overhead" problem. Users doing bulk data transfer (NAS, FTP, etc)
are pretty happy with TCP Segmentation Offloading (cousin of Jumbo Frames).

> and the actual hardware
> overhead of issuing separate commands for each 4k segment is way
> higher than anything we do along the block and low level driver layers
> in terms of IO access, host bus and ATA (or SAS) bus overhead.

That's true and it was also true gigabit NICs in the 90's. NIC HW vendors
have figured out host to avoid doing MMIO reads/writes during normal IO.
Infiniband has an even more efficient interface that's mostly Host RAM based
(a few MMIO writes). Last time I measured (~2006), TCP stack was 4x the
CPU cost of the HW interface. I don't know what the current ratio is for
any given SATA controller vs libata/SCSI stack, but I'm certain it will
change as new controllers are introduced.

hth,
grant