Bug 990061 - The 'virt_function' in the nodedev-dumpxml of VF should be removed
The 'virt_function' in the nodedev-dumpxml of VF should be removed
Status: CLOSED CURRENTRELEASE
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt (Show other bugs)
7.0
Unspecified Unspecified
medium Severity medium
: rc
: ---
Assigned To: Laine Stump
Virtualization Bugs
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2013-07-30 06:17 EDT by Xuesong Zhang
Modified: 2014-04-07 05:49 EDT (History)
4 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2014-04-07 05:49:15 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Xuesong Zhang 2013-07-30 06:17:05 EDT
Description of problem:
The 'virt_function' in the nodedev-dumpxml of VF should be removed.

Version-Release number of selected component (if applicable):
libvirt-0.10.2-21.el6.x86_64
qemu-kvm-rhev-0.12.1.2-2.381.el6.x86_64
2.6.32-401.el6.x86_64

How reproducible:
100%

Steps:
1. prepare one healthy SR-IOV machine, check the PF and VFS.
# lspci|grep 82576
0e:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
0e:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
0f:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.6 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:10.7 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:11.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:11.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:11.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:11.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:11.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
0f:11.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)

2. check the nodedev-dumpxml of the PF, the 'virt_functions' of this PF can been seen.
# virsh nodedev-dumpxml pci_0000_0e_00_1
<device>
  <name>pci_0000_0e_00_1</name>
  <parent>pci_0000_0d_02_0</parent>
  <driver>
    <name>igb</name>
  </driver>
  <capability type='pci'>
    <domain>0</domain>
    <bus>14</bus>
    <slot>0</slot>
    <function>1</function>
    <product id='0x10e8'>82576 Gigabit Network Connection</product>
    <vendor id='0x8086'>Intel Corporation</vendor>
    <capability type='virt_functions'>
      <address domain='0x0000' bus='0x0f' slot='0x10' function='0x1'/>
      <address domain='0x0000' bus='0x0f' slot='0x10' function='0x3'/>
      <address domain='0x0000' bus='0x0f' slot='0x10' function='0x5'/>
      <address domain='0x0000' bus='0x0f' slot='0x10' function='0x7'/>
      <address domain='0x0000' bus='0x0f' slot='0x11' function='0x1'/>
      <address domain='0x0000' bus='0x0f' slot='0x11' function='0x3'/>
      <address domain='0x0000' bus='0x0f' slot='0x11' function='0x5'/>
    </capability>
  </capability>
</device>

3. check the nodedev-dumpxml of the VF, the 'phys_function' and 'virt_functions' of this VF can been seen, shouldn't contains 'virt_functions' in the nodedev-dumpxml of one VF.
# virsh nodedev-dumpxml pci_0000_0f_11_5
<device>
  <name>pci_0000_0f_11_5</name>
  <parent>pci_0000_0d_02_0</parent>
  <driver>
    <name>igbvf</name>
  </driver>
  <capability type='pci'>
    <domain>0</domain>
    <bus>15</bus>
    <slot>17</slot>
    <function>5</function>
    <product id='0x10ca'>82576 Virtual Function</product>
    <vendor id='0x8086'>Intel Corporation</vendor>
    <capability type='phys_function'>
      <address domain='0x0000' bus='0x0e' slot='0x00' function='0x1'/>
    </capability>
    <capability type='virt_functions'>
    </capability>
  </capability>
</device>

Actual results:
In step3, should not contains 'virt_functions' in the nodedev-dumpxml of one VF.

Expected results:
In step3, the capability of 'virt_functions' in the nodedev-dumpxml of VF should be removed.
The step3 in addtional info is for reference, in rhel7, there isn't 'virt_function' in the nodedev-dumpxml of VF.

Addtional info:

Find one SR-IOV with latest rhel7.
libvirt version: libvirt-1.1.0-2.el7.x86_64

Steps:
1. check the PF and VF in this SR-IOV.
# lspci|grep 82576
03:00.0 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
03:00.1 Ethernet controller: Intel Corporation 82576 Gigabit Network Connection (rev 01)
03:10.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.6 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:10.7 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:11.0 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:11.1 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:11.2 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:11.3 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:11.4 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
03:11.5 Ethernet controller: Intel Corporation 82576 Virtual Function (rev 01)
2. check the nodedev-dumpxml of the PF, the 'virt_functions' can be seen.
# virsh nodedev-dumpxml pci_0000_03_00_1
<device>
  <name>pci_0000_03_00_1</name>
  <path>/sys/devices/pci0000:00/0000:00:01.0/0000:03:00.1</path>
  <parent>pci_0000_00_01_0</parent>
  <driver>
    <name>igb</name>
  </driver>
  <capability type='pci'>
    <domain>0</domain>
    <bus>3</bus>
    <slot>0</slot>
    <function>1</function>
    <product id='0x10c9'>82576 Gigabit Network Connection</product>
    <vendor id='0x8086'>Intel Corporation</vendor>
    <capability type='virt_functions'>
      <address domain='0x0000' bus='0x03' slot='0x10' function='0x1'/>
      <address domain='0x0000' bus='0x03' slot='0x10' function='0x3'/>
      <address domain='0x0000' bus='0x03' slot='0x10' function='0x5'/>
      <address domain='0x0000' bus='0x03' slot='0x10' function='0x7'/>
      <address domain='0x0000' bus='0x03' slot='0x11' function='0x1'/>
      <address domain='0x0000' bus='0x03' slot='0x11' function='0x3'/>
      <address domain='0x0000' bus='0x03' slot='0x11' function='0x5'/>
    </capability>
    <iommuGroup number='14'>
      <address domain='0x0000' bus='0x03' slot='0x00' function='0x0'/>
      <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
    </iommuGroup>
  </capability>
</device>

3. check the nodedev-dumpxml of the VF, the 'phys_function' can be seen, no 'virt_function'
# virsh nodedev-dumpxml pci_0000_03_11_5
<device>
  <name>pci_0000_03_11_5</name>
  <path>/sys/devices/pci0000:00/0000:00:01.0/0000:03:11.5</path>
  <parent>pci_0000_00_01_0</parent>
  <driver>
    <name>igbvf</name>
  </driver>
  <capability type='pci'>
    <domain>0</domain>
    <bus>3</bus>
    <slot>17</slot>
    <function>5</function>
    <product id='0x10ca'>82576 Virtual Function</product>
    <vendor id='0x8086'>Intel Corporation</vendor>
    <capability type='phys_function'>
      <address domain='0x0000' bus='0x03' slot='0x00' function='0x1'/>
    </capability>
    <iommuGroup number='35'>
      <address domain='0x0000' bus='0x03' slot='0x11' function='0x5'/>
    </iommuGroup>
  </capability>
</device>
Comment 4 Jiri Denemark 2014-04-04 17:38:05 EDT
This bug was not selected to be addressed in Red Hat Enterprise Linux 6. We will look at it again within the Red Hat Enterprise Linux 7 product.
Comment 5 Laine Stump 2014-04-07 05:49:15 EDT
AS noted in the bug description, RHEL7 libvirt doesn't have this problem.

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