Public bug reported:

[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.

** Affects: linux (Ubuntu)
     Importance: Undecided
         Status: Incomplete

-- 
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:
  Incomplete

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

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to