Bug 979330
| Summary: | The driver in output of virsh command nodedev-dumpxml should be updated timely | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | Xuesong Zhang <xuzhang> |
| Component: | libvirt | Assignee: | Laine Stump <laine> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.4 | CC: | acathrow, bili, cwei, dyuan, honzhang, laine |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-0.10.2-19.el6 | Doc Type: | Bug Fix |
| Doc Text: |
Cause: libvirt was depending on a "change" notification from the kernel to indicate that it should change the name of the device driver bound to a device. That change notification is not actually being sent.
Consequence: the output of "virsh nodedev-dumpxml" for a device would always show the device driver that was bound to the device at the time libvirt was started, NOT the currently-bound driver.
Fix: libvirt now manually updates the driver name every time a nodedev-dumpxml is done, rather than depending on a change notification.
Result: The driver name in the output of nodedev-dumpxml is now always correct.
|
Story Points: | --- |
| Clone Of: | 979290 | Environment: | |
| Last Closed: | 2013-11-21 09:04:46 UTC | Type: | Bug |
| 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: | 979290 | ||
| Bug Blocks: | |||
|
Comment 2
Laine Stump
2013-07-01 05:09:14 UTC
Verifying this bug with libvirt-0.10.2-19.el6:
---------------------------------------------
Reproduced with libvirt-0.10.2-18.el64_9:
1. check the pci driver with virsh command nodedev-dumpxml.
# virsh nodedev-dumpxml pci_0000_04_00_0
<device>
<name>pci_0000_04_00_0</name>
<parent>pci_0000_00_1e_0</parent>
<driver>
<name>e1000</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>4</bus>
<slot>0</slot>
<function>0</function>
<product id='0x107c'>82541PI Gigabit Ethernet Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
2. check it's driver with kernel command
# readlink -f /sys/bus/pci/devices/0000\:04\:00.0/driver/
/sys/bus/pci/drivers/e1000
3. change the pci's driver to others, such as change from driver e1000 to driver pci-stub
# virsh nodedev-detach pci_0000_04_00_0
Device pci_0000_04_00_0 detached
4. check the driver with kernel command again, it is changed to pci-stub
# readlink -f /sys/bus/pci/devices/0000\:04\:00.0/driver/
/sys/bus/pci/drivers/pci-stub
5. check the driver with virsh command nodedev-dumpxml, it didn't be updated.
# virsh nodedev-dumpxml pci_0000_04_00_0
<device>
<name>pci_0000_04_00_0</name>
<parent>pci_0000_00_1e_0</parent>
<driver>
<name>e1000</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>4</bus>
<slot>0</slot>
<function>0</function>
<product id='0x107c'>82541PI Gigabit Ethernet Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
---------------------------------------------
Verfied with libvirt-0.10.2-19.el6:
1. check the pci driver with virsh command nodedev-dumpxml.
# virsh nodedev-dumpxml pci_0000_04_00_0
<device>
<name>pci_0000_04_00_0</name>
<parent>pci_0000_00_1e_0</parent>
<driver>
<name>e1000</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>4</bus>
<slot>0</slot>
<function>0</function>
<product id='0x107c'>82541PI Gigabit Ethernet Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
2. check it's driver with kernel command
# readlink -f /sys/bus/pci/devices/0000\:04\:00.0/driver/
/sys/bus/pci/drivers/e1000
3. change the pci's driver to others, such as change from driver e1000 to driver pci-stub
# virsh nodedev-detach pci_0000_04_00_0
Device pci_0000_04_00_0 detached
4. check the driver with kernel command again, it is changed to pci-stub
# readlink -f /sys/bus/pci/devices/0000\:04\:00.0/driver/
/sys/bus/pci/drivers/pci-stub
5. check the driver with virsh command nodedev-dumpxml:
# virsh nodedev-dumpxml pci_0000_04_00_0
<device>
<name>pci_0000_04_00_0</name>
<parent>pci_0000_00_1e_0</parent>
<driver>
<name>pci-stub</name>
</driver>
<capability type='pci'>
<domain>0</domain>
<bus>4</bus>
<slot>0</slot>
<function>0</function>
<product id='0x107c'>82541PI Gigabit Ethernet Controller</product>
<vendor id='0x8086'>Intel Corporation</vendor>
</capability>
</device>
Driver was updated exactly.
So setting VERIFIED.
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-1581.html |