Bug 980359

Summary: Difference in the amount of CPU/cores retrieved.
Product: Red Hat Enterprise Linux 6 Reporter: Daniele <dconsoli>
Component: ovirt-nodeAssignee: Fabian Deutsch <fdeutsch>
Status: CLOSED ERRATA QA Contact: Virtualization Bugs <virt-bugs>
Severity: low Docs Contact:
Priority: medium    
Version: 6.6CC: acathrow, bsarathy, cboyle, cshao, gouyang, hadong, huiwa, jboggs, leiwang, mburns, ovirt-maint, pkrempa, yaniwang, ycui
Target Milestone: rcKeywords: TestOnly
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: ovirt-node-3.0.0-6.el6 Doc Type: Bug Fix
Doc Text:
Libvirt was "reading" an incorrect number of sockets/cores.A version of the hypervisor was showing incorrect CPU information when checked using the "View CPU Details" button. The errors included showing the incorrect number of sockets or cores. It was found that hosts with multiple numa nodes could end up reporting incorrect information in the libvirt capabilities' <topology> tag. This has been fixed through a more in depth parsing, and the correct information is now displayed.
Story Points: ---
Clone Of: Environment:
Last Closed: 2014-01-21 19:42:33 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: 927128    
Bug Blocks:    

Description Daniele 2013-07-02 07:32:32 UTC
Description of problem:
Libvirt seems to be "reading" a wrong number of sockets/cores.
HP ProLiant DL380p Gen8 server with two sockets / 8 cores (16 cores total) the RHEV Hypervisor shows 1 socket and 8 cores.  

Version-Release number of selected component (if applicable):
RHEV 3.2

How reproducible:



Steps to Reproduce:
1. Check the number of sockets/cores from RHEV-H.
2. Check the output of vdsClient -s 0 getVdsCaps
3. Check the output of conn.getCapabilities()

Actual results:
1 socket and 8 cores

Expected results:
2 sockets and 8 cores

Additional info:
CAPABILITIES OUTPUT:
[root@dppurhvv01 tmp]# python CPUInfo.py
<capabilities>

  <host>
    <uuid>6a5ec57d-afb7-4295-a1a7-ce0f440113ef</uuid>
    <cpu>
      <arch>x86_64</arch>
      <model>SandyBridge</model>
      <vendor>Intel</vendor>
      <topology sockets='1' cores='8' threads='2'/>
      <feature name='pdpe1gb'/>
      <feature name='osxsave'/>
      <feature name='dca'/>
      <feature name='pcid'/>
      <feature name='pdcm'/>
      <feature name='xtpr'/>
      <feature name='tm2'/>
      <feature name='est'/>
      <feature name='smx'/>
      <feature name='vmx'/>
      <feature name='ds_cpl'/>
      <feature name='monitor'/>
      <feature name='dtes64'/>
      <feature name='pbe'/>
      <feature name='tm'/>
      <feature name='ht'/>
      <feature name='ss'/>
      <feature name='acpi'/>
      <feature name='ds'/>
      <feature name='vme'/>
    </cpu>
    <power_management/>
    <migration_features>
      <live/>
      <uri_transports>
        <uri_transport>tcp</uri_transport>
      </uri_transports>
    </migration_features>
    <topology>
      <cells num='2'>
        <cell id='0'>
          <cpus num='16'>
            <cpu id='0' socket_id='0' core_id='0' siblings='0,16'/>
            <cpu id='1' socket_id='0' core_id='1' siblings='1,17'/>
            <cpu id='2' socket_id='0' core_id='2' siblings='2,18'/>
            <cpu id='3' socket_id='0' core_id='3' siblings='3,19'/>
            <cpu id='4' socket_id='0' core_id='4' siblings='4,20'/>
            <cpu id='5' socket_id='0' core_id='5' siblings='5,21'/>
            <cpu id='6' socket_id='0' core_id='6' siblings='6,22'/>
            <cpu id='7' socket_id='0' core_id='7' siblings='7,23'/>
            <cpu id='16' socket_id='0' core_id='0' siblings='0,16'/>
            <cpu id='17' socket_id='0' core_id='1' siblings='1,17'/>
            <cpu id='18' socket_id='0' core_id='2' siblings='2,18'/>
            <cpu id='19' socket_id='0' core_id='3' siblings='3,19'/>
            <cpu id='20' socket_id='0' core_id='4' siblings='4,20'/>
            <cpu id='21' socket_id='0' core_id='5' siblings='5,21'/>
            <cpu id='22' socket_id='0' core_id='6' siblings='6,22'/>
            <cpu id='23' socket_id='0' core_id='7' siblings='7,23'/>
          </cpus>
        </cell>
        <cell id='1'>
          <cpus num='16'>
            <cpu id='8' socket_id='1' core_id='0' siblings='8,24'/>
            <cpu id='9' socket_id='1' core_id='1' siblings='9,25'/>
            <cpu id='10' socket_id='1' core_id='2' siblings='10,26'/>
            <cpu id='11' socket_id='1' core_id='3' siblings='11,27'/>
            <cpu id='12' socket_id='1' core_id='4' siblings='12,28'/>
            <cpu id='13' socket_id='1' core_id='5' siblings='13,29'/>
            <cpu id='14' socket_id='1' core_id='6' siblings='14,30'/>
            <cpu id='15' socket_id='1' core_id='7' siblings='15,31'/>
            <cpu id='24' socket_id='1' core_id='0' siblings='8,24'/>
            <cpu id='25' socket_id='1' core_id='1' siblings='9,25'/>
            <cpu id='26' socket_id='1' core_id='2' siblings='10,26'/>
            <cpu id='27' socket_id='1' core_id='3' siblings='11,27'/>
            <cpu id='28' socket_id='1' core_id='4' siblings='12,28'/>
            <cpu id='29' socket_id='1' core_id='5' siblings='13,29'/>
            <cpu id='30' socket_id='1' core_id='6' siblings='14,30'/>
            <cpu id='31' socket_id='1' core_id='7' siblings='15,31'/>
          </cpus>
        </cell>
      </cells>
    </topology>
    <secmodel>
      <model>selinux</model>
      <doi>0</doi>
    </secmodel>
    <secmodel>
      <model>dac</model>
      <doi>0</doi>
    </secmodel>
  </host>

  <guest>
    <os_type>hvm</os_type>
    <arch name='i686'>
      <wordsize>32</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine>rhel6.4.0</machine>
      <machine canonical='rhel6.4.0'>pc</machine>
      <machine>rhel6.3.0</machine>
      <machine>rhel6.2.0</machine>
      <machine>rhel6.1.0</machine>
      <machine>rhel6.0.0</machine>
      <machine>rhel5.5.0</machine>
      <machine>rhel5.4.4</machine>
      <machine>rhel5.4.0</machine>
      <domain type='qemu'>
      </domain>
      <domain type='kvm'>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      </domain>
    </arch>
    <features>
      <cpuselection/>
      <deviceboot/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
      <pae/>
      <nonpae/>
    </features>
  </guest>

  <guest>
    <os_type>hvm</os_type>
    <arch name='x86_64'>
      <wordsize>64</wordsize>
      <emulator>/usr/libexec/qemu-kvm</emulator>
      <machine>rhel6.4.0</machine>
      <machine canonical='rhel6.4.0'>pc</machine>
      <machine>rhel6.3.0</machine>
      <machine>rhel6.2.0</machine>
      <machine>rhel6.1.0</machine>
      <machine>rhel6.0.0</machine>
      <machine>rhel5.5.0</machine>
      <machine>rhel5.4.4</machine>
      <machine>rhel5.4.0</machine>
      <domain type='qemu'>
      </domain>
      <domain type='kvm'>
        <emulator>/usr/libexec/qemu-kvm</emulator>
      </domain>
    </arch>
    <features>
      <cpuselection/>
      <deviceboot/>
      <acpi default='on' toggle='yes'/>
      <apic default='on' toggle='no'/>
    </features>
  </guest>

</capabilities>

CPU Name:  Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
CPU Type: Intel SandyBridge
CPU Sockets: 1
CPU Cores: 8

=========================================================
VDSCLIENT OUTPUT:

[root@dppurhvv01 ~]# vdsClient -s 0 getVdsCaps
        HBAInventory = {'iSCSI': [{'InitiatorName': 'iqn.1994-05.com.redhat:987b2f9816e6'}], 'FC': []}
        ISCSIInitiatorName = iqn.1994-05.com.redhat:987b2f9816e6
        bondings = {'bond4': {'addr': '', 'cfg': {}, 'mtu': '1500', 'netmask': '', 'slaves': [], 'hwaddr': '00:00:00:00:00:00'}, 'bond0': {'addr': '', 'cfg': {'PEERDNS': 'no', 'NM_CONTROLLED': 'no', 'STP': 'no', 'BONDING_OPTS': 'mode=1 miimon=100', 'DEVICE': 'bond0', 'ONBOOT': 'yes'}, 'mtu': '1500', 'netmask': '', 'slaves': ['eth4', 'eth6'], 'hwaddr': 'd8:9d:67:6f:5c:b0'}, 'bond1': {'addr': '', 'cfg': {'DEVICE': 'bond1', 'NM_CONTROLLED': 'no', 'STP': 'no', 'ONBOOT': 'yes', 'BONDING_OPTS': 'mode=1 miimon=100'}, 'mtu': '1500', 'netmask': '', 'slaves': ['eth5', 'eth7'], 'hwaddr': 'd8:9d:67:6f:5c:b4'}, 'bond2': {'addr': '', 'cfg': {}, 'mtu': '1500', 'netmask': '', 'slaves': [], 'hwaddr': '00:00:00:00:00:00'}, 'bond3': {'addr': '', 'cfg': {}, 'mtu': '1500', 'netmask': '', 'slaves': [], 'hwaddr': '00:00:00:00:00:00'}}
        bridges = {'rhevm': {'addr': '10.255.6.3', 'cfg': {'IPADDR': '10.255.6.3', 'PEERDNS': 'no', 'ONBOOT': 'yes', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'NETMASK': '255.255.255.0', 'BOOTPROTO': 'none', 'STP': 'no', 'DEVICE': 'rhevm', 'TYPE': 'Bridge', 'GATEWAY': '10.255.6.254'}, 'mtu': '1500', 'netmask': '255.255.255.0', 'stp': 'off', 'ports': ['bond0.106']}, 'vlan101': {'addr': '', 'cfg': {'DELAY': '0', 'NM_CONTROLLED': 'no', 'STP': 'no', 'DEVICE': 'vlan101', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'mtu': '1500', 'netmask': '', 'stp': 'off', 'ports': ['bond1.101']}}
        clusterLevels = ['3.0', '3.1', '3.2']
        cpuCores = 16
        cpuFlags = fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,sep,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,nx,pdpe1gb,rdtscp,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,xtopology,nonstop_tsc,aperfmperf,pni,pclmulqdq,dtes64,monitor,ds_cpl,vmx,smx,est,tm2,ssse3,cx16,xtpr,pdcm,pcid,dca,sse4_1,sse4_2,x2apic,popcnt,tsc_deadline_timer,aes,xsave,avx,lahf_lm,ida,arat,epb,xsaveopt,pln,pts,dts,tpr_shadow,vnmi,flexpriority,ept,vpid,model_Nehalem,model_Conroe,model_coreduo,model_core2duo,model_Penryn,model_Westmere,model_n270,model_SandyBridge
        cpuModel = Intel(R) Xeon(R) CPU E5-2660 0 @ 2.20GHz
        cpuSockets = 2
        cpuSpeed = 2194.715
        cpuThreads = 32
        emulatedMachines = ['rhel6.4.0', 'pc', 'rhel6.3.0', 'rhel6.2.0', 'rhel6.1.0', 'rhel6.0.0', 'rhel5.5.0', 'rhel5.4.4', 'rhel5.4.0']
        guestOverhead = 65
        hooks = {'before_vm_start': {'50_vhostmd': {'md5': 'f3ee6dbf6fbd01333bd3e32afec4fbba'}}, 'after_vm_destroy': {'50_vhostmd': {'md5': '5662659ddc999e23946a1f6cf7a73796'}}, 'before_vm_dehibernate': {'50_vhostmd': {'md5': 'f3ee6dbf6fbd01333bd3e32afec4fbba'}}, 'before_vm_migrate_destination': {'50_vhostmd': {'md5': 'f3ee6dbf6fbd01333bd3e32afec4fbba'}}}
        kvmEnabled = true
        lastClient = 10.1.0.23
        lastClientIface = rhevm
        management_ip =
        memSize = 129031
        netConfigDirty = False
        networks = {'rhevm': {'iface': 'rhevm', 'addr': '10.255.6.3', 'cfg': {'IPADDR': '10.255.6.3', 'PEERDNS': 'no', 'ONBOOT': 'yes', 'DELAY': '0', 'NM_CONTROLLED': 'no', 'NETMASK': '255.255.255.0', 'BOOTPROTO': 'none', 'STP': 'no', 'DEVICE': 'rhevm', 'TYPE': 'Bridge', 'GATEWAY': '10.255.6.254'}, 'mtu': '1500', 'netmask': '255.255.255.0', 'stp': 'off', 'bridged': True, 'gateway': '10.255.6.254', 'ports': ['bond0.106']}, 'vlan101': {'iface': 'vlan101', 'addr': '', 'cfg': {'DELAY': '0', 'NM_CONTROLLED': 'no', 'STP': 'no', 'DEVICE': 'vlan101', 'TYPE': 'Bridge', 'ONBOOT': 'yes'}, 'mtu': '1500', 'netmask': '', 'stp': 'off', 'bridged': True, 'gateway': '0.0.0.0', 'ports': ['bond1.101']}}
        nics = {'eth7': {'permhwaddr': 'AC:16:2D:81:F4:34', 'addr': '', 'cfg': {'SLAVE': 'yes', 'ONBOOT': 'yes', 'NM_CONTROLLED': 'no', 'STP': 'no', 'HWADDR': 'ac:16:2d:81:f4:34', 'MASTER': 'bond1', 'DEVICE': 'eth7'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:6f:5c:b4', 'speed': 10000}, 'eth6': {'permhwaddr': 'AC:16:2D:81:F4:30', 'addr': '', 'cfg': {'SLAVE': 'yes', 'PEERDNS': 'no', 'ONBOOT': 'yes', 'NM_CONTROLLED': 'no', 'MASTER': 'bond0', 'HWADDR': 'ac:16:2d:81:f4:30', 'STP': 'no', 'DEVICE': 'eth6'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:6f:5c:b0', 'speed': 10000}, 'eth5': {'permhwaddr': 'D8:9D:67:6F:5C:B4', 'addr': '', 'cfg': {'SLAVE': 'yes', 'ONBOOT': 'yes', 'NM_CONTROLLED': 'no', 'STP': 'no', 'HWADDR': 'd8:9d:67:6f:5c:b4', 'MASTER': 'bond1', 'DEVICE': 'eth5'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:6f:5c:b4', 'speed': 10000}, 'eth4': {'permhwaddr': 'D8:9D:67:6F:5C:B0', 'addr': '', 'cfg': {'SLAVE': 'yes', 'PEERDNS': 'no', 'ONBOOT': 'yes', 'NM_CONTROLLED': 'no', 'MASTER': 'bond0', 'HWADDR': 'd8:9d:67:6f:5c:b0', 'STP': 'no', 'DEVICE': 'eth4'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:6f:5c:b0', 'speed': 10000}, 'eth3': {'addr': '', 'cfg': {'DEVICE': 'eth3', 'HWADDR': 'd8:9d:67:1d:8c:1b', 'ONBOOT': 'no', 'PEERDNS': 'no'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:1d:8c:1b', 'speed': 0}, 'eth2': {'addr': '', 'cfg': {'DEVICE': 'eth2', 'HWADDR': 'd8:9d:67:1d:8c:1a', 'ONBOOT': 'no', 'PEERDNS': 'no'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:1d:8c:1a', 'speed': 0}, 'eth1': {'addr': '', 'cfg': {'DEVICE': 'eth1', 'HWADDR': 'd8:9d:67:1d:8c:19', 'ONBOOT': 'no', 'PEERDNS': 'no'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:1d:8c:19', 'speed': 0}, 'eth0': {'addr': '', 'cfg': {'DEVICE': 'eth0', 'HWADDR': 'd8:9d:67:1d:8c:18', 'ONBOOT': 'no', 'PEERDNS': 'no'}, 'mtu': '1500', 'netmask': '', 'hwaddr': 'd8:9d:67:1d:8c:18', 'speed': 0}}
        operatingSystem = {'release': '20130528.0.el6_4', 'version': '6.4', 'name': 'RHEV Hypervisor'}
        packages2 = {'kernel': {'release': '358.11.1.el6.x86_64', 'buildtime': 1368614918.0, 'version': '2.6.32'}, 'spice-server': {'release': '12.el6_4.1', 'buildtime': 1368193709, 'version': '0.12.0'}, 'vdsm': {'release': '22.0.el6ev', 'buildtime': 1369666818, 'version': '4.10.2'}, 'qemu-kvm': {'release': '2.355.el6_4.3', 'buildtime': 1365612567, 'version': '0.12.1.2'}, 'libvirt': {'release': '18.el6_4.5', 'buildtime': 1367575213, 'version': '0.10.2'}, 'qemu-img': {'release': '2.355.el6_4.3', 'buildtime': 1365612567, 'version': '0.12.1.2'}}
        reservedMem = 321
        software_revision = 22.0
        software_version = 4.10
        supportedENGINEs = ['3.0', '3.1', '3.2']
        supportedProtocols = ['2.2', '2.3']
        supportedRHEVMs = ['3.0']
        uuid = 32333536-3030-5A43-3233-323330314A4C
        version_name = Snow Man
        vlans = {'bond0.106': {'cfg': {'BRIDGE': 'rhevm', 'VLAN': 'yes', 'PEERDNS': 'no', 'NM_CONTROLLED': 'no', 'STP': 'no', 'DEVICE': 'bond0.106', 'ONBOOT': 'yes'}, 'netmask': '', 'iface': 'bond0', 'addr': '', 'mtu': '1500'}, 'bond1.101': {'cfg': {'BRIDGE': 'vlan101', 'VLAN': 'yes', 'NM_CONTROLLED': 'no', 'STP': 'no', 'DEVICE': 'bond1.101', 'ONBOOT': 'yes'}, 'netmask': '', 'iface': 'bond1', 'addr': '', 'mtu': '1500'}}
        vmTypes = ['kvm']

Comment 1 Peter Krempa 2013-07-02 07:38:13 UTC
The extended libvirt capabilities topology output matches the hardware. Moving to rhev-h to investigate their data collection code.

Comment 6 Cheryn Tan 2013-11-08 00:33:01 UTC
This bug is currently attached to errata RHBA-2013:15277. If this change is not to be documented in the text for this errata please either remove it from the errata, set the requires_doc_text flag to minus (-), or leave a "Doc Text" value of "--no tech note required" if you do not have permission to alter the flag.

Otherwise to aid in the development of relevant and accurate release documentation, please fill out the "Doc Text" field above with these four (4) pieces of information:

* Cause: What actions or circumstances cause this bug to present.
* Consequence: What happens when the bug presents.
* Fix: What was done to fix the bug.
* Result: What now happens when the actions or circumstances above occur. (NB: this is not the same as 'the bug doesn't present anymore')

Once filled out, please set the "Doc Type" field to the appropriate value for the type of change made and submit your edits to the bug.

For further details on the Cause, Consequence, Fix, Result format please refer to:

https://bugzilla.redhat.com/page.cgi?id=fields.html#cf_release_notes 

Thanks in advance.

Comment 9 errata-xmlrpc 2014-01-21 19:42:33 UTC
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-2014-0033.html