From: Shmulik Ladkani <shmulik.ladkani@gmail.com>
To: Florian Westphal <fw@strlen.de>
Cc: "David S. Miller" <davem@davemloft.net>,
netdev@vger.kernel.org,
Hannes Frederic Sowa <hannes@stressinduktion.org>,
Eric Dumazet <edumazet@google.com>
Subject: Re: [RFC PATCH] net: ip_finish_output_gso: Attempt gso_size clamping if segments exceed mtu
Date: Wed, 24 Aug 2016 17:53:50 +0300 [thread overview]
Message-ID: <20160824175350.34df9f3b@pixies> (raw)
In-Reply-To: <20160822125842.GF6199@breakpoint.cc>
Hi,
On Mon, 22 Aug 2016 14:58:42 +0200, fw@strlen.de wrote:
> > Florian, in fe6cc55f you described a BUG due to gso_size decrease.
> > I've tested both bridged and routed cases, but in my setups failed to
> > hit the issue; Appreciate if you can provide some hints.
>
> Still get the BUG, I applied this patch on top of net-next.
>
> On hypervisor:
> 10.0.0.2 via 192.168.7.10 dev tap0 mtu lock 1500
> ssh root@10.0.0.2 'cat > /dev/null' < /dev/zero
>
> On vm1 (which dies instantly, see below):
> eth0 mtu 1500 (192.168.7.10)
> eth1 mtu 1280 (10.0.0.1)
>
> On vm2
> eth0 mtu 1280 (10.0.0.2)
>
> Normal ipv4 routing via vm1, no iptables etc. present, so
>
> we have hypervisor 1500 -> 1500 VM1 1280 -> 1280 VM2
>
> Turning off gro avoids this problem.
I hit the BUG only when VM2's mtu is not set to 1280 (kept to the 1500
default).
Otherwise, Hypervisor's TCP stack (sender) uses TCP MSS advertised by
VM2 (which is 1240 if VM2 mtu properly configured), thus GRO taking
place in VM1's eth0 is based on arriving segments (sized 1240).
Meaning, "ingress" gso_size is actually 1240, and no "gso clamping"
occurs.
Only if VM2 has mtu of 1500, the MSS seen by Hypervisor during handshake
is 1460, thus GRO acting on VM1's eth0 is based on 1460 byte segments.
This leads to "gso clamping" taking place, with the BUG in skb_segment
(which btw, seems sensitive to change in gso_size only if GRO was
merging into frag_list).
Can you please acknowledge our setup and reproduction are aligned?
Thanks,
Shmulik
next prev parent reply other threads:[~2016-08-24 14:53 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-22 12:06 [RFC PATCH] net: ip_finish_output_gso: Attempt gso_size clamping if segments exceed mtu Shmulik Ladkani
2016-08-22 12:58 ` Florian Westphal
2016-08-22 13:05 ` Shmulik Ladkani
2016-08-24 14:53 ` Shmulik Ladkani [this message]
2016-08-24 14:59 ` Florian Westphal
2016-08-25 9:05 ` Shmulik Ladkani
2016-08-26 11:19 ` Herbert Xu
2016-09-09 5:48 ` Shmulik Ladkani
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=20160824175350.34df9f3b@pixies \
--to=shmulik.ladkani@gmail.com \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=fw@strlen.de \
--cc=hannes@stressinduktion.org \
--cc=netdev@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox