← Back to team overview

kernel-packages team mailing list archive

[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