device can't be hot-removed from the guest

Bug #913774 reported by Yongjie Ren
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
QEMU
Fix Released
Undecided
Unassigned

Bug Description

Environment:
------------
Host OS (ia32/ia32e/IA64): ia32e
Guest OS (ia32/ia32e/IA64): ia32e
Guest OS Type (Linux/Windows): Linux(RHEL6u1)
kvm.git Commit: ff92e9b5571b34f53cbfde0899cf6e6a579cb3fa
qemu-kvm Commit: aad3b517a1b83561f2755dc4451596a421399c19
Host Kernel Version: 3.2.0-rc7
Hardware: Romley-EP, WSM-EP

Bug detailed description:
--------------------------
Using the latest qemu-kvm and kvm upstream, PCI device can't be hot-removed from the guest.
I try to remove a VF, but the device can't be removed. The VF in guest still has IP, and its network is fine.
A normal NIC will have the same issue.
From my test, this should be a qemu-kvm bug.
kvm + qemu-kvm = result
ff92e9b5 + aad3b517 = bad
ff92e9b5 + fcfeed4a = good

some logs are attached.

Reproduce steps:
----------------
1. start up a host with kvm(commit: ff92e9b5) and use qmeu-kvm(commit:aad3b517 )
2. qemu-system-x86_64 -m 512 -smp 1 –hda /root/rhel6u1.img
3. ctrl+Alt+2 (switch to monitor)
4. device_add pci-assign,host=09:10.0,id=nic (hot-add a VF)
5. ctrl+Alt+1
6. check the device can get IP
7. ctrl+Alt+2
8. device_del nic (try to detach the VF)

Current result:
----------------
Cannot hot-remove the device.

Expected result:
----------------
The device can be hot-removed.

Revision history for this message
Yongjie Ren (yongjie-ren) wrote :
Revision history for this message
Yongjie Ren (yongjie-ren) wrote :
Revision history for this message
Yongjie Ren (yongjie-ren) wrote :
Revision history for this message
Yongjie Ren (yongjie-ren) wrote :
Revision history for this message
Yongjie Ren (yongjie-ren) wrote :

fixed by the following commit.

commit 024a6fbdb9d8cbc4d7f833b23db51c9d1004bc47
Author: Anthony Liguori <email address hidden>
Date: Fri Jan 13 07:45:55 2012 -0600

    qdev: fix device_del by refactoring reference counting

    Commit 8eb0283 broken device_del by having too overzealous reference counting
    checks. Move the reference count checks to qdev_free(), make sure to remove
    the parent link on free, and decrement the reference count on property removal.

Changed in qemu:
status: New → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.