kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #70587
[Bug 1328973] Re: GSO segmentation in zero-copy mode is broken
The linux-lts-saucy kernel 3.11.0-26.44~precise1 is now available in
-proposed. It contains the following upstream commit, that fixes this
bug:
commit 1fd819ecb90cc9b822cd84d3056ddba315d3340f
Author: Michael S. Tsirkin <mst@xxxxxxxxxx>
Date: Mon Mar 10 19:28:08 2014 +0200
skbuff: skb_segment: orphan frags before copying
--
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1328973
Title:
GSO segmentation in zero-copy mode is broken
Status in “linux” package in Ubuntu:
Fix Released
Bug description:
[SRU Justification]
[Setup]
- 2 or more QEMU Guest VMs sharing the the same host
- the Guests are communicating using virtio-net-pci devices
- vhost-net is enabled
[Explanation]
If one Guest VM sends GSO packets to another while GRO is disabled for receiver, so these packets are segmented by net/core.
In this case, if zero-copy is enabled in vhost-net, the GSO packets TX completion is reported to userspace as before the TX is actually done.
The vhost-net's zero-copy mechanism is enabled by default since v3.8-rc1 (f9611c43).
[Impact]
Incorrect/junk data sent in case the transmitting Guest OS re-uses/frees the TX buffer immediately upon TX completion.
[Test Case]
Windows 2008R2 Guest VMs running MS HCK Offload LSO test.
NOTE1: GRO is always disabled in this case because it's not supported by Windows Guest virtio-net-pci drivers.
NOTE2: MS HCK re-uses the GSO (LSO) buffers, so it reproduces the issue every time.
[Note]
This bug has been fixed in v3.14-rc7 by 1fd819ec (https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/commit/?id=1fd819ecb90cc9b822cd84d3056ddba315d3340f).
The fix actually disables zero copy for this case since it forces unconditional fragments copying, but it resolves the issue mentioned.
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1328973/+subscriptions
References