Bug 1062111 - RHEV-H show CPU Type for Intel Haswell processor as Westmere
Summary: RHEV-H show CPU Type for Intel Haswell processor as Westmere
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-node
Version: 2.1.0
Hardware: x86_64
OS: Linux
medium
urgent
Target Milestone: ---
: 3.5.0
Assignee: Joey Boggs
QA Contact: Virtualization Bugs
URL:
Whiteboard: node
: 1059021 (view as bug list)
Depends On: rebase-ovirt-node-3.1
Blocks: 1132250
TreeView+ depends on / blocked
 
Reported: 2014-02-06 07:46 UTC by srinivas gowda
Modified: 2016-07-18 11:25 UTC (History)
26 users (show)

Fixed In Version: rhev-hypervisor6-6.6-20141218.0.iso rhev-hypervisor7-7.0-20141218.0.iso
Doc Type: Bug Fix
Doc Text:
Previously, the methodology for determining CPU Family used by the Red Hat Enterprise Virtualization Manager differed from that used by the Hypervisor, which yielded inconsistent results. Now, the CPU Family has been dropped and only the correct CPU Model name is displayed.
Clone Of:
Environment:
Last Closed: 2015-02-11 20:51:34 UTC
oVirt Team: Node
Target Upstream Version:
Embargoed:
srinivas_g_gowda: needinfo-


Attachments (Terms of Use)
CPU details Screen which show CPU Type as "Westmere" for Haswell processor (22.27 KB, image/jpeg)
2014-02-06 07:46 UTC, srinivas gowda
no flags Details
cat /proc/cpuinfo for Intel_Core_i3-4130, processor in which issue is found (3.70 KB, text/plain)
2014-02-06 08:01 UTC, srinivas gowda
no flags Details
cat /proc/cpuinfo for Intel_Haswell_E3-1270, processor. Has all the flags. (7.63 KB, text/plain)
2014-02-06 08:02 UTC, srinivas gowda
no flags Details


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2015:0160 0 normal SHIPPED_LIVE ovirt-node bug fix and enhancement update 2015-02-12 01:34:52 UTC

Description srinivas gowda 2014-02-06 07:46:38 UTC
Created attachment 860040 [details]
CPU details Screen  which show CPU Type as "Westmere" for Haswell processor

Description of problem:
1. Install rhev-h (version : rhev-hypervisor6-6.5-20140112.0.el6ev.noarch.rpm ) on a system that has Haswell " Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz"  processor. 

2. On the hypervisor login page select Status->View CPU details

CPU Details screen shows CPU Type as "Westmere" instead of "Haswell".  


Version-Release number of selected component (if applicable):
rhev-hypervisor6-6.5-20140112.0.el6ev.noarch.rpm 


How reproducible:
Always but observed on " Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz"  Haswell processor but on on Haswell "Intel E3-1270 v3 " processor. 


Actual results:
CPU Details screen shows CPU Type as "Westmere" 


Expected results:
CPU Details screen should show CPU Type as "Haswell", since " Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz"  is from Haswell family

http://ark.intel.com/products/77480/Intel-Core-i3-4130-Processor-3M-Cache-3_40-GHz

Comment 2 srinivas gowda 2014-02-06 07:55:50 UTC
I see that rhev-h is referring to /usr/share/libvirt/cpu_map.xml to determine the type of CPU based on the flags that are supported on the processor. 

Seems like for " Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz"  processor we are missing  these flags

x2apic  -SandyBridge
hle     -Haswell
smep    -Haswell
rtm     -Haswell



This issue should be reproducable on a RHEL6.5 as well given the processor is " Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz" (Server : Dell Talon), I have not verified it on a RHEL though.

Comment 3 srinivas gowda 2014-02-06 08:01:32 UTC
Created attachment 860041 [details]
cat /proc/cpuinfo for Intel_Core_i3-4130, processor in which issue is found

Comment 4 srinivas gowda 2014-02-06 08:02:43 UTC
Created attachment 860042 [details]
cat /proc/cpuinfo for Intel_Haswell_E3-1270, processor. Has all the flags.

Comment 5 srinivas gowda 2014-02-06 10:18:14 UTC
Was able to remove these flags (x2apic,hle,smep,rtm) from cpu_max.xml and verify that rhev-h shows the processor as Haswell...!


I could probably modify the cpu_max.xml to add new entry for this(type ? ) processor, 

but would want Intel`s comment on the list of supported flags for this processor "Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz". 

Need their confirmation to see if these flags are really not supported on Intel_Core_i3-4130 or its something to do with our server alone.. ! 

x2apic  -SandyBridge
hle     -Haswell
smep    -Haswell
rtm     -Haswell

Comment 6 Balaji Singh 2014-02-06 15:30:28 UTC
redhat,

can you please include intel folks to comment on this.

Thanks in Advance.

Comment 7 Fabian Deutsch 2014-02-08 11:35:56 UTC
Moving this to libvirt as RHEV-H pulls the CPU informations from there.

Comment 8 Jiri Denemark 2014-02-10 13:51:19 UTC
I don't see anything wrong here. The cpu_map.xml file describes CPU models and how what features they have in QEMU. When libvirt says host CPU is Westmere (plus some additional features), it basically means that the best CPU available to a guest without emulating or disabling some features is Westmere. And that's exactly the case here. When starting a guest with Haswell CPU model, one would have to disable hle, smep, and rtm features.

BTW, as far as I know, Intel was involved in the definition of the new CPU models.

Comment 9 srinivas gowda 2014-02-10 14:38:07 UTC
(In reply to Jiri Denemark from comment #8)
> When libvirt says host CPU is
> Westmere (plus some additional features), it basically means that the best
> CPU available to a guest without emulating or disabling some features is
> Westmere. And that's exactly the case here. When starting a guest with
> Haswell CPU model, one would have to disable hle, smep, and rtm features.


Do you mean to say that some Haswell processor such as "Intel_Haswell_E3-1270" is available to Guest as Haswell processor 
but some Haswell "Intel(R) Core(TM) i3-4130 CPU @ 3.40GHz"  are available as "Westmere" ??

Comment 10 Jiri Denemark 2014-02-11 14:03:59 UTC
OK, let's be more specific, your CPU is advertised by libvirt as Westmere plus a bunch of additional features which unfortunately does not include some of the features that the Haswell CPU model has. When describing host CPU, libvirt cannot express that the CPU is a model with some features disabled, it can only express additional features. Thus, it choses the best CPU model that the host CPU can fully satisfy and lists additional features on top of it. So you see something like the following in capabilities XML:

  <cpu>
    <arch>x86_64</arch>
    <model>Westmere</model>
    <vendor>Intel</vendor>
    <topology .../>
    <feature name='pclmuldq'/>
    <feature name='tsc-deadline'/>
    <feature name='xsave'/>
    <feature name='avx'/>
    <feature name='rdtscp'/>
    <feature name='fma'/>
    <feature name='pcid'/>
    <feature name='movbe'/>
    <feature name='fsgsbase'/>
    <feature name='bmi1'/>
    <feature name='avx2'/>
    <feature name='bmi2'/>
    <feature name='erms'/>
    <feature name='invpcid'/>
    <!-- some other features that none of the CPU models lists -->
  </cpu>

Guest CPUs compatible with the above host CPU model are, e.g.:

  <cpu match='exact'>
    <model>Westmere</model>
  </cpu>

  <cpu match='exact'>
    <model>SandyBridge</model>
    <feature policy='force' name='x2apic'/>
  </cpu>

  <cpu match='exact'>
    <model>Haswell</model>
    <feature policy='force' name='x2apic'/>
    <feature policy='disable' name='hle'/>
    <feature policy='disable' name='smep'/>
    <feature policy='disable' name='rtm'/>
  </cpu>

In other words, Westmere is the best CPU model that can be used without disabling some features. You can also use SandyBridge but you either have to disable x2apic or force it (which tells libvirt not to check if the host CPU supports such feature). When using Haswell, you need to disable several other features to get a guest CPU that is compatible with your host CPU.

Comment 11 srinivas gowda 2014-02-11 15:52:55 UTC
Thanks for clarifying Jiri, I belive we can close this bug now.

Comment 12 Fabian Deutsch 2014-02-13 14:03:52 UTC
Reopening this, as ovirt-ndoe is the incorrectly using the libvirt informations.
As said in comment 10 - libvirt only tells us the highest possible CPU family based on the available CPU flags.
But the information dialog ovirt-node provides should contain the real host CPU informations, independently of what flags are activated or not.

Comment 13 Charles Rose 2014-02-14 17:31:48 UTC
*** Bug 1059021 has been marked as a duplicate of this bug. ***

Comment 14 Fabian Deutsch 2014-02-17 16:48:58 UTC
Maybe we can use /proc/cpuinfo, dmidecode or some other faciliyt to get some informations ..

Comment 15 Guohua Ouyang 2014-02-20 04:43:00 UTC
this seems not Haswell cpu specific issue, it aslo happens on other microarchitectures processors.

Comment 16 Fabian Deutsch 2014-07-11 10:22:14 UTC
Due to technical limitations (the CPU does not include a textual representation of the CPU Family) we can not determine the correct CPU Family on the host side.
The attached patch will only display the CPU Type instead, because this information is provided by the CPU itself.

The patch drops the Family from the information dialog, but shows the correct Type.

Comment 17 Fabian Deutsch 2014-07-24 16:02:29 UTC
This is a mass change, moving bugs of merged patches into MODIFIED.

Please correct the state, if you think that the move was not justified.

Comment 19 Guohua Ouyang 2015-01-26 03:03:24 UTC
verified on rhev-hypervisor6-6.6-20150114.0.el7ev, 
the CPU Family information is dropped, only correct CPU Model name is displayed.

Comment 21 errata-xmlrpc 2015-02-11 20:51:34 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.

https://rhn.redhat.com/errata/RHEA-2015-0160.html


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