From: Willy Tarreau <w@1wt.eu>
To: Evgeniy Polyakov <zbr@ioremap.net>
Cc: Herbert Xu <herbert@gondor.apana.org.au>,
Jens Axboe <jens.axboe@oracle.com>,
Jarek Poplawski <jarkao2@gmail.com>,
Changli Gao <xiaosuo@gmail.com>,
linux-kernel@vger.kernel.org, netdev@vger.kernel.org
Subject: Re: Data corruption issue with splice() on 2.6.27.10
Date: Wed, 7 Jan 2009 14:08:29 +0100 [thread overview]
Message-ID: <20090107130829.GE6307@1wt.eu> (raw)
In-Reply-To: <20090107125756.GA32336@ioremap.net>
On Wed, Jan 07, 2009 at 03:57:56PM +0300, Evgeniy Polyakov wrote:
> On Wed, Jan 07, 2009 at 11:53:56PM +1100, Herbert Xu (herbert@gondor.apana.org.au) wrote:
> > On Wed, Jan 07, 2009 at 01:52:01PM +0100, Willy Tarreau wrote:
> > >
> > > Evgeniy, I'd like to understand something related to our apparent lack of
> > > knowledge of when the data is effectively transmitted. If we're focusing
> > > on the send part, I can't understand why I never reproduce the corruption
> > > when the data source is a file or loopback, but I only see it when the source
> > > is an ethernet interface. How is it possible that a problem affecting only
> >
> > It doesn't happen with a file because in that case you don't
> > start with an skb so there is no skb->head. It probably doesn't
> > happen with loopback because loopback does GSO so again skb->head
> > does not exist (so to speak).
>
> Yup, basically splice's transmit pipe buffer contains page references,
> where the first one is actually not a real page but skb, while in the
> case of sendfile() and/or splice() from the file first page is a real
> page of the appropriate file.
OK thanks guys for the clarifications.
Evgeniy, my printk() in tcp_sendpage() fired several times indicating we were
going through do_tcp_sendpage. During the same test, I observed a lot of
corruption.
Also, I have a good news. As you suggested, disabling both SG and GSO indeed
fixes the issue. do_tcp_sendpage() is not called anymore from tcp_sendpage()
in this case (according to dmesg).
Cheers,
Willy
next prev parent reply other threads:[~2009-01-07 13:08 UTC|newest]
Thread overview: 70+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-12-24 15:28 Data corruption issue with splice() on 2.6.27.10 Willy Tarreau
2009-01-06 8:54 ` Jarek Poplawski
2009-01-06 9:41 ` Willy Tarreau
2009-01-06 10:01 ` Jarek Poplawski
2009-01-06 10:04 ` Willy Tarreau
2009-01-06 15:57 ` Willy Tarreau
2009-01-07 9:39 ` Jarek Poplawski
2009-01-07 12:22 ` Willy Tarreau
2009-01-07 12:24 ` Herbert Xu
2009-01-07 12:38 ` Jarek Poplawski
2009-01-07 12:31 ` Jarek Poplawski
2009-01-07 12:35 ` Jens Axboe
2009-01-07 12:40 ` Evgeniy Polyakov
2009-01-07 12:52 ` Willy Tarreau
2009-01-07 12:53 ` Herbert Xu
2009-01-07 12:57 ` Evgeniy Polyakov
2009-01-07 13:08 ` Willy Tarreau [this message]
2009-01-07 12:49 ` Jarek Poplawski
2009-01-07 12:52 ` Herbert Xu
2009-01-07 13:00 ` Willy Tarreau
2009-01-07 13:01 ` Herbert Xu
2009-01-07 13:02 ` Jarek Poplawski
2009-01-12 12:02 ` Herbert Xu
2009-01-12 12:45 ` Evgeniy Polyakov
2009-01-12 12:56 ` Herbert Xu
2009-01-12 12:59 ` Evgeniy Polyakov
2009-01-12 21:11 ` Herbert Xu
2009-01-12 13:15 ` Jarek Poplawski
2009-01-12 21:12 ` Herbert Xu
2009-01-19 7:32 ` Jarek Poplawski
2009-01-07 12:39 ` Willy Tarreau
2009-01-07 12:56 ` Jarek Poplawski
2009-01-07 12:44 ` Herbert Xu
2009-01-06 17:42 ` Ben Mansell
2009-01-06 18:15 ` Willy Tarreau
2009-01-08 7:16 ` Jarek Poplawski
2009-01-08 8:05 ` Willy Tarreau
2009-01-08 14:53 ` Ingo Molnar
2009-01-08 15:16 ` Ben Mansell
2009-01-08 17:14 ` Willy Tarreau
2009-01-06 18:32 ` Evgeniy Polyakov
2009-01-06 18:37 ` Jens Axboe
2009-01-06 18:55 ` Willy Tarreau
2009-01-07 4:42 ` Herbert Xu
2009-01-07 6:38 ` Willy Tarreau
2009-01-07 9:52 ` Herbert Xu
2009-01-07 9:54 ` Willy Tarreau
2009-01-07 11:52 ` Herbert Xu
2009-01-07 8:17 ` Jens Axboe
2009-01-07 11:29 ` Evgeniy Polyakov
2009-01-07 11:50 ` Herbert Xu
2009-01-07 11:56 ` Evgeniy Polyakov
2009-01-07 11:59 ` Herbert Xu
2009-01-07 12:15 ` Evgeniy Polyakov
2009-01-07 12:22 ` Herbert Xu
2009-01-07 12:27 ` Herbert Xu
2009-01-07 12:30 ` Herbert Xu
2009-01-07 12:37 ` Evgeniy Polyakov
2009-01-07 12:42 ` Herbert Xu
2009-01-07 12:46 ` Evgeniy Polyakov
2009-01-07 12:55 ` Willy Tarreau
2009-01-07 12:57 ` Herbert Xu
2009-01-07 13:02 ` Evgeniy Polyakov
2009-01-07 13:10 ` Jarek Poplawski
2009-01-07 13:15 ` Willy Tarreau
2009-01-07 13:22 ` Jarek Poplawski
2009-01-07 14:01 ` Jarek Poplawski
2009-01-06 18:50 ` Willy Tarreau
2009-01-19 8:39 ` Lennert Buytenhek
2009-01-19 9:53 ` Willy Tarreau
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090107130829.GE6307@1wt.eu \
--to=w@1wt.eu \
--cc=herbert@gondor.apana.org.au \
--cc=jarkao2@gmail.com \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=xiaosuo@gmail.com \
--cc=zbr@ioremap.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.