Bug 807138 - [virtio-win] RFE TSO is invalid
[virtio-win] RFE TSO is invalid
Status: CLOSED DUPLICATE of bug 904808
Product: Red Hat Enterprise Linux 6
Classification: Red Hat
Component: virtio-win (Show other bugs)
6.3
Unspecified Unspecified
medium Severity medium
: rc
: ---
Assigned To: Yan Vugenfirer
Virtualization Bugs
: FutureFeature, Reopened
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-03-27 03:10 EDT by Quan Wenli
Modified: 2013-04-10 03:17 EDT (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-04-10 03:17:45 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
test results with virtio-win-build-57 on 2012 guest under default setting (22.97 KB, text/html)
2013-03-28 03:21 EDT, Quan Wenli
no flags Details
test results with virtio-win-build-57 on 2012 guest under best registry setting (22.97 KB, text/html)
2013-03-28 03:22 EDT, Quan Wenli
no flags Details

  None (edit)
Description Quan Wenli 2012-03-27 03:10:37 EDT
Description of problem:

Boot up windows2k8 R2 guest ,check offload parameter about tap device on host --- TSO is offload. 

Version-Release number of selected component (if applicable):

qemu-kvm-0.12.1.2-2.246.el6.x86_64
kernel-2.6.32-251.el6.x86_64
virtio-win-prewhql-24

How reproducible:
always

Steps to Reproduce:
1.Boot up windows2k8 R2 windows guest.

/usr/libexec/qemu-kvm -name vm1 -drive file=/usr/local/autotest/tests/kvm/images/win2008r2-64-virtio.raw,index=0,if=none,id=drive-ide0-0-0,media=disk,cache=none,format=raw,aio=native -device ide-drive,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0 -device virtio-net-pci,netdev=idsVdEtL,mac=9a:d9:46:25:27:51,id=ndev00idsVdEtL,bus=pci.0,addr=0x5 -netdev tap,id=idsVdEtL,vhost=on -m 4096 -smp 2,cores=1,threads=1,sockets=2 -cpu Westmere -spice port=8000,disable-ticketing -vga qxl -rtc base=localtime,clock=host,driftfix=slew -boot order=cdn,once=c,menu=off -M rhel6.3.0 -usb -device usb-tablet -enable-kvm -monitor stdio

2.check offload parameter status about nic and tap on host.

ethtool -k eth2   ---- 82599EB hardware 
Offload parameters for eth2:
rx-checksumming: on
tx-checksumming: on
scatter-gather: on
tcp-segmentation-offload: on
udp-fragmentation-offload: off
generic-segmentation-offload: on
generic-receive-offload: on
large-receive-offload: off

ethtool -k tap0   ----windows2k8R2 virtio-win-prewhql-24
Offload parameters for tap0:
rx-checksumming: on
tx-checksumming: off
scatter-gather: off
tcp-segmentation-offload: off
udp-fragmentation-offload: off
generic-segmentation-offload: off
generic-receive-offload: off
large-receive-offload: off

3.
  
Actual results:


Expected results:

virtio-win driver could support tso offload.

Additional info:
It's not regression one.
Comment 2 Yan Vugenfirer 2012-04-03 09:17:38 EDT
Offload settings on TAP device are not mapped one to one on HW device. And in most cases has complementary meaning. 
For example TSO means that TAP device can transmit large packet - but where it transmit the packet? Into QEMU - so from guest point of view this is a receive side.

In case of Windows guest there is no support for receive TCP offload. So current setting make sense.
Comment 3 Quan Wenli 2012-04-10 04:36:11 EDT
(In reply to comment #2)
> Offload settings on TAP device are not mapped one to one on HW device. And in
> most cases has complementary meaning. 
> For example TSO means that TAP device can transmit large packet - but where it
> transmit the packet? Into QEMU - so from guest point of view this is a receive
> side.
> 
> In case of Windows guest there is no support for receive TCP offload. So
> current setting make sense.


Is it possible to supported tso as RFE since it can improve rx performance in windows guests.
Comment 4 Yan Vugenfirer 2012-04-10 05:05:10 EDT
(In reply to comment #3)
> (In reply to comment #2)
> > Offload settings on TAP device are not mapped one to one on HW device. And in
> > most cases has complementary meaning. 
> > For example TSO means that TAP device can transmit large packet - but where it
> > transmit the packet? Into QEMU - so from guest point of view this is a receive
> > side.
> > 
> > In case of Windows guest there is no support for receive TCP offload. So
> > current setting make sense.
> 
> 
> Is it possible to supported tso as RFE since it can improve rx performance in
> windows guests.

The luck of support is from Windows OS. If it was possible, we would definitely implement it.
Comment 5 Quan Wenli 2012-04-10 05:14:08 EDT
> > Is it possible to supported tso as RFE since it can improve rx performance in
> > windows guests.
> 
> The luck of support is from Windows OS. If it was possible, we would definitely
> implement it.

If so, may I open a separate bug for tracking it ?
Comment 6 Yan Vugenfirer 2012-04-10 05:22:09 EDT
(In reply to comment #5)
> > > Is it possible to supported tso as RFE since it can improve rx performance in
> > > windows guests.
> > 
> > The luck of support is from Windows OS. If it was possible, we would definitely
> > implement it.
> 
> If so, may I open a separate bug for tracking it ?

It won't make us any good to track Microsoft feature.
Comment 7 Quan Wenli 2013-03-28 03:19:48 EDT
RSC (GRO in Linux terms) supported in virtio-win build-57 means tso supported on tap device, from RSC testing results on 2012. We can see
significant improvement on RX (guest) throughout as expect.
  - For 1 RX session, about ~70% improvement.
  - For 2 RX sessions, about ~170% improvement.
  - For 4/8 RX sessions, about ~200% improvement.
Detail results can be found in attachment.
1. Win2012.64.netperf_win.netperf_exe.best_registry_setting.html. 
2. Win2012.64.netperf_win.netperf_exe.default_setting.html
Comment 8 Quan Wenli 2013-03-28 03:21:44 EDT
Created attachment 717467 [details]
test results with virtio-win-build-57 on 2012 guest under default setting
Comment 9 Quan Wenli 2013-03-28 03:22:31 EDT
Created attachment 717468 [details]
test results with virtio-win-build-57 on 2012 guest under best registry setting
Comment 10 Dmitry Fleytman 2013-04-04 04:09:53 EDT
(In reply to comment #7)
> RSC (GRO in Linux terms) supported in virtio-win build-57 means tso
> supported on tap device, from RSC testing results on 2012. We can see
> significant improvement on RX (guest) throughout as expect.
>   - For 1 RX session, about ~70% improvement.
>   - For 2 RX sessions, about ~170% improvement.
>   - For 4/8 RX sessions, about ~200% improvement.
> Detail results can be found in attachment.
> 1. Win2012.64.netperf_win.netperf_exe.best_registry_setting.html. 
> 2. Win2012.64.netperf_win.netperf_exe.default_setting.html

RSC on Windows is supported starting from Windows 8/2012 only.
Windows Server 2008 R2 kernel doesn't have RSC feature so driver cannot use it.
On Windows Server 2012 guest with the latest driver (virtio-win build-57) TSO state on TAP should be on.
Comment 11 Quan Wenli 2013-04-10 03:17:45 EDT

*** This bug has been marked as a duplicate of bug 904808 ***

Note You need to log in before you can comment on or make changes to this bug.