Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 988206 - [virtio-win][netkvm]Error message popped up in monitor after the guest with one hot-plug nic resumed from S4
Summary: [virtio-win][netkvm]Error message popped up in monitor after the guest with o...
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: virtio-win
Version: 7.0
Hardware: Unspecified
OS: Unspecified
medium
medium
Target Milestone: rc
: 7.0
Assignee: Yan Vugenfirer
QA Contact: Virtualization Bugs
URL:
Whiteboard:
Depends On:
Blocks: Virt-S3/S4-7.0
TreeView+ depends on / blocked
 
Reported: 2013-07-25 06:05 UTC by Min Deng
Modified: 2014-02-23 14:23 UTC (History)
7 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2014-02-23 14:23:21 UTC
Target Upstream Version:


Attachments (Terms of Use)

Description Min Deng 2013-07-25 06:05:35 UTC
Description of problem:
Hibernate&resume a guest that hot-plug a nic,though the guest resumed successfully,but some unexpected messages pop up in monitor. 

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

build 65
qemu-kvm-1.5.1-2.el7.x86_64
seabios-1.7.2.2-2.el7.x86_64
seavgabios-bin-1.7.2.2-2.el7.noarch
vgabios-0.6c-9.el7.noarch
on rhel7 host.

How reproducible:
3 times

Steps to Reproduce:
1.boot up guest with the following 

  /usr/libexec/qemu-kvm -smp 4 -m 2G -device virtio-balloon-pci,id=balloon0 -k en-us -usb -device usb-tablet,id=tablet0 -device intel-hda,id=sound0 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -drive file=/home/win732.qcow3,format=qcow2,cache=none,if=none,werror=stop,rerror=stop,id=drive-disk0,media=disk,cache=writethrough,serial=systemdisk -device ide-drive,drive=drive-disk0,id=disk0,bootindex=2 -spice port=5931,disable-ticketing -vga qxl -uuid `uuidgen` -monitor stdio -drive file=NFS.qcow3,if=none,format=qcow2,id=drive-virtio-data1,werror=stop,rerror=stop,cache=writeback -device virtio-blk-pci,id=virtio-data1,drive=drive-virtio-data1 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -vnc :1 -cdrom en_windows_7_ultimate_with_sp1_x86_dvd_u_677460.iso -qmp tcp:0:4444,server,nowait

2.hot-plug a virtio nic to the guest.

{"execute": "qmp_capabilities"}
{"return": {}}
{ "execute": "netdev_add", "arguments": { "type":"tap","id":"hostnet0","vhost":"on","script":"/etc/qemu-ifup"}}
{"return": {}}
{"execute": "device_add", "arguments": { "driver":"virtio-net-pci","netdev":"hostnet0","mac":"00:1a:4a:42:0b:01","id": "net0"}}
{"return": {}}

3.resume it with the following CLI -

  /usr/libexec/qemu-kvm -smp 4 -m 2G -device virtio-balloon-pci,id=balloon0 -k en-us -usb -device usb-tablet,id=tablet0 -device intel-hda,id=sound0 -device hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0 -drive file=/home/win732.qcow3,format=qcow2,cache=none,if=none,werror=stop,rerror=stop,id=drive-disk0,media=disk,cache=writethrough,serial=systemdisk -device ide-drive,drive=drive-disk0,id=disk0,bootindex=2 -netdev tap,id=hostnet0,vhost=on,script=/etc/qemu-ifup -device virtio-net-pci,netdev=hostnet0,id=net0,mac=00:11:41:54:33:8a -spice port=5931,disable-ticketing -vga qxl -uuid `uuidgen` -monitor stdio -drive file=NFS.qcow3,if=none,format=qcow2,id=drive-virtio-data1,werror=stop,rerror=stop,cache=writeback -device virtio-blk-pci,id=virtio-data1,drive=drive-virtio-data1 -global PIIX4_PM.disable_s3=0 -global PIIX4_PM.disable_s4=0 -vnc :1 -cdrom en_windows_7_ultimate_with_sp1_x86_dvd_u_677460.iso -qmp tcp:0:4444,server,nowait

Actual results:

The guest was resumed successfully but some unexpected message popped up in monitor
qemu-kvm: virtio_ioport_write: unexpected address 0x0 value 0x0
qemu-kvm: virtio_ioport_write: unexpected address 0x0 value 0x2

Expected results:
No such error messages there.

Additional info:

Comment 2 Mike Cao 2013-07-25 06:55:05 UTC
Which version netkvm are you using ,this should fixed in netkvm build 59

Comment 3 Min Deng 2013-07-25 07:05:34 UTC
(In reply to Mike Cao from comment #2)
> Which version netkvm are you using ,this should fixed in netkvm build 59

Hi Mike,

   Double check the version I used,it's build 65.Any issues please let me know.

Thanks
Min

Comment 4 Yan Vugenfirer 2013-07-29 12:23:16 UTC
Hi Mike, 

It looks like a different issue - the bug that was fixe was writing to ISR register: #define VIRTIO_PCI_ISR          19

Best regards,
Yan.

Comment 5 Yan Vugenfirer 2014-02-23 14:23:21 UTC
This is something that should be documented, but cannot be handled by the driver. Windows cannot handle change of HW during S4.

There are two issues with command lines used for the test:

1. QEMU creates default network device in first command line (e1000).

2. There is no address on PCI bus for the devices.

Will following changes to command line and QMP the VM will function correctly after hot add/S4/resume sequence:

1. Start VM with:
-netdev tap,id=hostnet1,vhost=on,script=/home/yanv/dev/scripts/whql-ifup \
-device e1000,netdev=hostnet1,addr=0x5,id=net1,mac=00:11:41:54:33:82 \

(Pay attention to addr=5. You can observe it later in device manager or "info pci" in qemu monitor).

2. Add device with following command:

{"execute": "device_add", "arguments": { "driver":"virtio-net-pci","netdev":"hostnet0","addr":"6","mac":"00:1a:4a:42:0b:01","id": "net0"}}

(Once again - pay attention to explicit address parameter. Same as before you should see it in device manager or with "info lci")

3. After S4 start VM with following addition to command line:
-netdev tap,id=hostnet1,vhost=on,script=/home/yanv/dev/scripts/whql-ifup \
-device e1000,netdev=hostnet1,addr=0x5,id=net1,mac=00:11:41:54:33:82 \
-netdev tap,id=hostnet0,vhost=on,script=/home/yanv/dev/scripts/whql-ifup \
-device virtio-net-pci,netdev=hostnet0,addr=0x6,id=net0,mac=00:11:41:54:33:8a \

(Provide exactly the same address to added device).



* Please change test procedure and documentation accordingly. In libvirt is adding  devices to Windows VMs without explicit address indication, please open bug for libvirt.


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