lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090108080520.GG30749@1wt.eu>
Date:	Thu, 8 Jan 2009 09:05:20 +0100
From:	Willy Tarreau <w@....eu>
To:	Jarek Poplawski <jarkao2@...il.com>
Cc:	Ben Mansell <ben@...s.com>, Jens Axboe <jens.axboe@...cle.com>,
	linux-kernel@...r.kernel.org, netdev@...r.kernel.org
Subject: Re: Data corruption issue with splice() on 2.6.27.10

On Thu, Jan 08, 2009 at 07:16:51AM +0000, Jarek Poplawski wrote:
> On 06-01-2009 19:15, Willy Tarreau wrote:
> ...
> > Ah, so you might also have discovered a few annoyances with the API, eg
> > the fact that splice() returns after the first read in non-blocking mode,
> > as well as the fact that it never returns zero on close, but -EAGAIN,
> > which requires an additional recv(MSG_PEEK) to distinguish between a
> > close and a lack of data. But I leave that for a later discussion, let's
> > address the corruption issue first.
> 
> FYI, this should be just fixed:
> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=4f7d54f59bc470f0aaa932f747a95232d7ebf8b1
> 

Ah cool, thanks Jarek for notifying us. Indeed, it's the exact same patch
I had pending here ;-)

I'll ping Greg for a backport into -stable, as applications relying on this
will clearly not work without that fix.

The other one I had consists in removing "|| !timeo" at the end of the loop,
because otherwise splice() returns very small chunks (typically 1448 or
1460 bytes), leading to disastrous performance on high bandwidth links.
At 10 Gbps, this means about 800000 calls to splice() per second!

Regards,
Willy

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ