Re: Data corruption issue with splice() on 2.6.27.10

From: Willy Tarreau
Date: Wed Jan 07 2009 - 07:56:01 EST


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@xxxxxxxxxxxxxxxxxxx) 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

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