Thread (186 messages) 186 messages, 11 authors, 2009-02-06

Re: [PATCH] tcp: splice as many packets as possible at once

From: David Miller <davem@davemloft.net>
Date: 2009-01-14 10:06:50
Also in: lkml

From: Jarek Poplawski <redacted>
Date: Wed, 14 Jan 2009 09:42:16 +0000
On Wed, Jan 14, 2009 at 01:29:19AM -0800, David Miller wrote:
quoted
From: Jarek Poplawski <redacted>
Date: Wed, 14 Jan 2009 08:53:08 +0000
quoted
Actually, I still think my second approach (the PageSlab) is probably
(if tested) the easiest for now, because it should fix the reported
(Willy's) problem, without any change or copy overhead for splice to
file (which could be still wrong, but not obviously wrong).
It's a simple fix, but as Herbert stated it leaves other ->sendpage()
implementations exposed to data corruption when the from side of the
pipe buffer is a socket.
I don't think Herbert meant other ->sendpage() implementations, but I
could miss something.
I think he did :-)

Or, more generally, he could have been referring to splice pipe
outputs.  All of these things grab references to pages and
expect that to keep the underlying data from being reallocated.

That doesn't work for this skb->data case.
quoted
That, to me, is almost worse than a bad fix.

It's definitely worse than a slower but full fix, which the copy
patch is.
Sorry, I can't see how this patch could make sendpage worse.
Because that patch only fixes TCP's ->sendpage() implementation.

There are others out there which could end up experiencing similar
data corruption.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help