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...
Status: CLOSED ERRATA
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: libvirt (Show other bugs)
5.4
All Linux
medium Severity medium
: rc
: ---
Assigned To: Daniel Berrange
Virtualization Bugs
:
Depends On:
Blocks:
  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
Environment:
Last Closed: 2009-09-02 05:21:17 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:


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'>
      <source>
        <address domain='0' bus='0' slot='25' function='0'/>
      </source>
    </hostdev>

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)
             continue;
 
-        if (!hostdev->managed) {
+        if (hostdev->managed) {
             pciDevice *dev = pciGetDevice(conn,
                                           hostdev->source.subsys.u.pci.domain,
                                           hostdev->source.subsys.u.pci.bus,

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

Patch posted to libvir-list:

  http://www.redhat.com/archives/libvir-list/2009-May/msg00111.html

--- 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,

Daniel
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,

Daniel
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'>
      <source>
        <address bus='0x02' slot='0x00' function='0x00'/>
      </source>
    </hostdev>

[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.

http://rhn.redhat.com/errata/RHEA-2009-1269.html

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