Messages in this thread | | | Date | Wed, 7 Jan 2009 13:55:35 +0100 | From | Willy Tarreau <> | Subject | Re: Data corruption issue with splice() on 2.6.27.10 |
| |
On Wed, Jan 07, 2009 at 03:46:29PM +0300, Evgeniy Polyakov wrote: > On Wed, Jan 07, 2009 at 11:42:46PM +1100, Herbert Xu (herbert@gondor.apana.org.au) wrote: > > > Doesn't your tcp fallbacks to kernel_sendmsg() without sg in > > > tcp_sendpage()? And then just feeds data into the stack the same way it > > > happens with send() i.e. by copying it. > > > > Good point. Did he check GSO though? GSO will always enable SG > > on the socket regardless of the netdev's setting. And if the device > > started out with SG enabled then recent kernels will enable GSO > > by default. > > Willy, what was the kernel you are tested no-accel behaviour and what > were the gso settings?
kernel is 2.6.27.10 + a few patches (squashfs, etc..., nothing related to this area). My ethtool is a bit old and does not report GSO. I'll download and rebuild a more recent one and retest.
> Can you add a simple single print into tcp_sendpage() to determine if > content was copied or fed into do_tcp_sendpages() otherwise?
Yes, will do that too.
Willy
| |