Bug 499577 - RHEL 5.4 vt-d: libvirt's qemu driver interprets the <hostdev> "managed" attribute incorrectly
RHEL 5.4 vt-d: libvirt's qemu driver interprets the <hostdev> "managed" attri...
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: libvirt (Show other bugs)
All Linux
medium Severity medium
: rc
: ---
Assigned To: Daniel Berrange
Virtualization Bugs
Depends On:
  Show dependency treegraph
Reported: 2009-05-07 05:45 EDT by Mark McLoughlin
Modified: 2009-12-14 16:09 EST (History)
7 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 499386
Last Closed: 2009-09-02 05:21:17 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Mark McLoughlin 2009-05-07 05:45:05 EDT
+++ This bug was initially created as a clone of Bug #499386 +++

When using virt-install --host-device, the device XML looks like this:

    <hostdev mode='subsystem' type='pci' managed='yes'>
        <address domain='0' bus='0' slot='25' function='0'/>

With managed='yes', libvirt doesn't detach or reset the device before starting the guest, nor does it it re-attach it when the guest is shut down.

AFAICS, this is just a typo and we actually want "managed='no'"

--- Additional comment from markmc@redhat.com on 2009-05-06 09:59:13 EDT ---

Okay, it turns out "managed='yes'" is supposed to detach/reset/reattach the device, not "managed='no'"

The fix should be as simple as:

@@ -1215,7 +1215,7 @@ static int qemuPrepareHostDevices(virConnectPtr conn,
         if (hostdev->source.subsys.type != VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI)
-        if (!hostdev->managed) {
+        if (hostdev->managed) {
             pciDevice *dev = pciGetDevice(conn,

--- Additional comment from markmc@redhat.com on 2009-05-06 11:41:12 EDT ---

Patch posted to libvir-list:


--- Additional comment from crobinso@redhat.com on 2009-05-06 12:37:38 EDT ---

Being built into libvirt-0.6.2-6.fc11 atm.

--- Additional comment from markmc@redhat.com on 2009-05-06 16:17:32 EDT ---

Tag request: https://fedorahosted.org/rel-eng/ticket/1748

* Wed May  6 2009 Mark McLoughlin <markmc@redhat.com> - 0.6.2-5.fc11
- Fix handling of <hostdev managed='yes'> (bug #499386)

--- Additional comment from markmc@redhat.com on 2009-05-06 17:37:37 EDT ---

Tagged now
Comment 1 Daniel Veillard 2009-06-04 10:14:03 EDT
This has been applied upstream long ago,

Comment 2 Daniel Veillard 2009-06-04 12:43:02 EDT
libvirt-0.6.3-5.el5 has been built in dist-5E-qu-candidate with the fix,

Comment 4 Nan Zhang 2009-06-08 05:40:09 EDT
[root@dhcp-66-70-85 ~]# virsh nodedev-list --tree

Add hostdev section to domain xml with managed='yes':

    <hostdev mode='subsystem' type='pci' managed='yes'>
        <address bus='0x02' slot='0x00' function='0x00'/>

[root@dhcp-66-70-85 ~]# virsh edit demo
Domain demo XML configuration edited.

[root@dhcp-66-70-85 ~]# virsh nodedev-dettach pci_14e4_167a
Device pci_14e4_167a dettached

[root@dhcp-66-70-85 ~]# virsh nodedev-reset pci_14e4_167a
Device pci_14e4_167a reset

[root@dhcp-66-70-85 ~]# virsh nodedev-reattach pci_14e4_167a
Device pci_14e4_167a re-attached

Verified with libvirt 0.6.3-6 on RHEL-5.4. Fixed.
Comment 6 errata-xmlrpc 2009-09-02 05:21:17 EDT
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.


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