Bug 648328
Summary: | TCP checksum overflows in qemu's e1000 emulation code when TSO is enabled in guest OS | ||||||
---|---|---|---|---|---|---|---|
Product: | Red Hat Enterprise Linux 5 | Reporter: | Mark Wu <dwu> | ||||
Component: | kvm | Assignee: | Alex Williamson <alex.williamson> | ||||
Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> | ||||
Severity: | medium | Docs Contact: | |||||
Priority: | low | ||||||
Version: | 5.5 | CC: | juzhang, lagarcia, mjenner, mkenneth, virt-maint, ykaul | ||||
Target Milestone: | rc | ||||||
Target Release: | --- | ||||||
Hardware: | Unspecified | ||||||
OS: | Linux | ||||||
Whiteboard: | |||||||
Fixed In Version: | kvm-83-208.el5 | Doc Type: | Bug Fix | ||||
Doc Text: | Story Points: | --- | |||||
Clone Of: | |||||||
: | 648333 (view as bug list) | Environment: | |||||
Last Closed: | 2011-01-13 23:38:05 UTC | Type: | --- | ||||
Regression: | --- | Mount Type: | --- | ||||
Documentation: | --- | CRM: | |||||
Verified Versions: | Category: | --- | |||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
Cloudforms Team: | --- | Target Upstream Version: | |||||
Embargoed: | |||||||
Bug Depends On: | |||||||
Bug Blocks: | 580948, 648333 | ||||||
Attachments: |
|
Description
Mark Wu
2010-11-01 02:43:04 UTC
Created attachment 456783 [details]
Fix the checksum overflow
I have verified that this patch can fix the overflow when adding tcp length to the pseudo-header checksum. (In reply to comment #2) > I have verified that this patch can fix the overflow when adding tcp length to > the pseudo-header checksum. Mark, the patch looks correct to me. I'll submit it upstream unless you have any interest in doing so. Alex, please submit the patch. Thanks! Reproduced this issue kvm-83-163.el5 Steps: 1. boot guest with e1000 nic #/usr/libexec/qemu-kvm -no-hpet -usbdevice tablet -rtc-td-hack -m 4G -smp 2 -monitor stdio -drive file=/root/zhangjunyi/rhel5.6ide.raw,if=ide,boot=on,werror=stop,format=raw -drive file=/root/boot.iso,media=cdrom -fda /usr/share/virtio-win/virtio-drivers-1.0.0-45801-1.0.0.vfd -net nic,vlan=0,macaddr=22:11:22:45:66:83,model=e1000 -net tap,vlan=0,script=/etc/qemu-ifup -uuid `uuidgen` -cpu qemu64,+sse2 -balloon none -boot c -vnc :10 -notify all -boot c 2. enable TSO and setup ftp server in guest #ethtool -K eth0 tso on 1. ethtool -k eth0 Offload parameters for eth0: Cannot get device udp large send offload settings: Operation not supported rx-checksumming: on tx-checksumming: on scatter-gather: on tcp segmentation offload: on udp fragmentation offload: off generic segmentation offload: off generic-receive-offload: off #netstat -a | grep ftp tcp 0 0 tp *: LISTEN #ifconfig eth0 Link encap:Ethernet HWaddr 22:11:22:45:66:83 inet addr:10.66.91.133 Bcast:10.66.91.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:556437 errors:0 dropped:0 overruns:0 frame:0 TX packets:270811 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:672309087 (641.1 MiB) TX bytes:339799714 (324.0 MiB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:1424 errors:0 dropped:0 overruns:0 frame:0 TX packets:1424 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:4216793 (4.0 MiB) TX bytes:4216793 (4.0 MiB) 3.Download a 2 G file via ftp from the kvm guest. The speed is about 9 k/s Verified this issue on kvm-83-208.el5 using the same steps. The speed is 9.7 M/s. An advisory has been issued which should help the problem described in this bug report. This report is therefore being closed with a resolution of ERRATA. For more information on therefore solution and/or where to find the updated files, please follow the link below. You may reopen this bug report if the solution does not work for you. http://rhn.redhat.com/errata/RHSA-2011-0028.html |