kernel-packages team mailing list archive
-
kernel-packages team
-
Mailing list archive
-
Message #65813
[Bug 1328973] [NEW] GSO segmentation in zero-copy mode is broken
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
Follow ups
References