Bug 908645

Summary: [RHEV] Patch "e1000: no need auto-negotiation if link was down" may break e1000 guest
Product: Red Hat Enterprise Linux 6 Reporter: Jiri Pallich <jpallich>
Component: qemu-kvmAssignee: jason wang <jasowang>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 6.4CC: acathrow, akong, areis, bsarathy, chetan, dyasny, jasowang, jpallich, juzhang, michen, minovotn, mkenneth, mst, pm-eus, qzhang, rhod, shuang, tlavigne, virt-maint, xfu
Target Milestone: rcKeywords: Regression, ZStream
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: qemu-kvm-rhev-0.12.1.2-2.355.el6_4.1 Doc Type: Bug Fix
Doc Text:
Previously, a guest using the e1000 network adapter could do auto-negotiation during a system reset when the link_down flag was set. Consequently, after the reset, the guest network was unavailable. A patch has been provided to address this bug and the guest can now connect to the network after a system reset in the described scenario.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-02-21 19:07:35 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: 907397    
Bug Blocks:    

Description Jiri Pallich 2013-02-07 09:02:13 UTC
This bug has been copied from bug #907397 and has been proposed
to be backported to 6.4 z-stream (EUS).

Comment 8 juzhang 2013-02-08 01:44:52 UTC
KVM QE tested win7sp1-64 and rhel6.4-64 guests by using qemu-kvm-rhev-0.12.1.2-2.355.el6_4.1, both guest work well, guest does not lose ip any longer. This issue is fixed.

Scenario1

1. Boot guest with e1000 driver
#/usr/libexec/qemu-kvm -M rhel6.4.0 -cpu SandyBridge,+sep -enable-kvm -m 2048 -smp 4,sockets=2,cores=2,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name test-sluo -uuid bef435d2-6d6d-4faf-9936-bc02ac89082a -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/root/new-image/rhel6.4-new.qcow2,if=none,id=system-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop,serial=QEMU-DISK1 -device virtio-blk-pci,bus=pci.0,addr=0x4,scsi=off,drive=system-virtio-disk,id=system-disk,bootindex=1 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x5 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,id=e100-1,mac=2C:41:38:B6:40:66,bus=pci.0,addr=0x6,bootindex=2 -k en-us -boot menu=on -vnc :1 -monitor unix:/tmp/monitor1,server,nowait -monitor stdio

2. Repeatedly resets by using system_rest guest with random timing by script
#cat reboot.sh 
i=1
while [ $i -lt 900000 ]
do
echo "system_reset"|nc -U /tmp/monitor1
i=$(($i+1))
number=$(($RANDOM%60+15))
echo $number
sleep $number
done


Result:
Guest does not lost ip any longer.

Scenario 2
1. Boot guest with e1000 driver
#/usr/libexec/qemu-kvm -M rhel6.4.0 -cpu SandyBridge,+sep -enable-kvm -m 2048 -smp 4,sockets=2,cores=2,threads=1 -no-kvm-pit-reinjection -usb -device usb-tablet,id=input0 -name test-sluo -uuid bef435d2-6d6d-4faf-9936-bc02ac89082a -rtc base=localtime,clock=host,driftfix=slew -device virtio-serial-pci,id=virtio-serial0,max_ports=16,vectors=0,bus=pci.0,addr=0x3 -chardev socket,id=channel1,path=/tmp/helloworld1,server,nowait -device virtserialport,chardev=channel1,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port1 -chardev socket,id=channel2,path=/tmp/helloworld2,server,nowait -device virtserialport,chardev=channel2,name=com.redhat.rhevm.vdsm,bus=virtio-serial0.0,id=port2 -drive file=/root/new-image/rhel6.4-new.qcow2,if=none,id=system-virtio-disk,format=qcow2,cache=none,aio=native,werror=stop,rerror=stop,serial=QEMU-DISK1 -device virtio-blk-pci,bus=pci.0,addr=0x4,scsi=off,drive=system-virtio-disk,id=system-disk,bootindex=1 -device virtio-balloon-pci,id=ballooning,bus=pci.0,addr=0x5 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device e1000,netdev=hostnet0,id=e100-1,mac=2C:41:38:B6:40:66,bus=pci.0,addr=0x6,bootindex=2 -k en-us -boot menu=on -vnc :1 -monitor unix:/tmp/monitor1,server,nowait -monitor stdio

2. reboot guest
#reboot

Result:
Guest does not lost ip any longer.

Comment 11 errata-xmlrpc 2013-02-21 19:07:35 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

http://rhn.redhat.com/errata/RHBA-2013-0546.html