Re: Gigabit Linux Server Bottlenecks

From: Bjorn Wesen (bjorn@sparta.lu.se)
Date: Fri Feb 11 2000 - 11:06:34 EST


On Thu, 10 Feb 2000, Zachary Amsden wrote:
> > > Well in order to use it and really gain on it for transmit, you want
> > > scatter/gather skbuffs, something which I really want to look at
> > > (provided I can find the time). If you are doing the data copy anyway,
> > > there checksum is almost free.

Is the idea that the skb data pointer instead will be a kiovec ? So that
the kiovec can point to the locked down COW-marked pages in memory where
the data came from, released when TCP finally acks it ?

But the tail and head of the skb, that will still be in skb-local memory
right ?

A scatter gather ethernet driver can then setup a DMA chain to send skb
head, the kiovec's, and the skb tail, for each skb.

I'd love to see that work - we run linux on embedded HW and every less
copying of data can be a pretty performance win. And our ethernet HW is
already scatter-gather.

> > The curious might see http://dancer.ca.sandia.gov/~pw, but I'd much
> > rather see the card DMA the unchecksummed payload directly from
> > userspace.
>
> Yes, this works fine for UDP, but you can't do TCP this way without COW VM
> support for scatter skbufs, because TCP needs to buffer data until it has been
> acknowledged. Even then, you need the application to behave properly and not
> touch anything in the same page as the output data until an ACK is received.
> This is easy enough to hack into high bandwidth servers, like ftp or rcp, and
> that is mostly the only place you will need it.

Yeah, it'd be pretty stupid if an application forces the COW to trigger
all the time, then you'd still be copying data :)

But like others said, sendfile is probably the most excellent first
subject to try this stuff on!

-Bjorn

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/



This archive was generated by hypermail 2b29 : Tue Feb 15 2000 - 21:00:20 EST