Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.

Bug 1688989

Summary: The engine uncorrected detects and accepts Intel(R) Atom(TM) CPU C3955
Product: [oVirt] ovirt-engine Reporter: Simone Tiraboschi <stirabos>
Component: BLL.VirtAssignee: Michal Skrivanek <michal.skrivanek>
Status: CLOSED WONTFIX QA Contact: meital avital <mavital>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 4.3.0CC: bugs, rbarry
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-04-09 03:08:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Virt RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Simone Tiraboschi 2019-03-14 20:34:36 UTC
Description of problem:
An upstream user tried to deploy hosted-engine on an Intel(R) Atom(TM) CPU C3955 @ 2.10GHz based machine.

The engine, ans do hosted-engine-setup, accepted that CPU detecting it as
2019-03-14 06:05:29,929-0400 DEBUG var changed: host "localhost" var "cluster_cpu_model" type "<class 'ansible.utils.unsafe_proxy.AnsibleUnsafeText'>" value: ""Westmere,+pcid,+spec-ctrl,+ssbd""

but then it fails to start VMs created by the engine with:
error: Failed to start domain HostedEngine
error: the CPU is incompatible with host CPU: Host CPU does not provide required features: pcid

and indeed that CPU doesn't provide the pcid flag:
processor       : 15
vendor_id       : GenuineIntel
cpu family      : 6
model           : 95
model name      : Intel(R) Atom(TM) CPU C3955 @ 2.10GHz
stepping        : 1
microcode       : 0x24
cpu MHz         : 2101.000
cache size      : 2048 KB
physical id     : 0
siblings        : 16
core id         : 15
cpu cores       : 16
apicid          : 30
initial apicid  : 30
fpu             : yes
fpu_exception   : yes
cpuid level     : 21
wp              : yes
flags           : 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 art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc aperfmperf eagerfpu pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg cx16 xtpr pdcm sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave rdrand lahf_lm 3dnowprefetch epb cat_l2 intel_pt ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust smep erms mpx rdt_a rdseed smap clflushopt sha_ni xsaveopt xsavec xgetbv1 dtherm ida arat pln pts spec_ctrl intel_stibp arch_capabilities
bogomips        : 4199.97
clflush size    : 64
cache_alignment : 64
address sizes   : 39 bits physical, 48 bits virtual
power management:


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

How reproducible:
?

Steps to Reproduce:
1. deploy hosted-engine on a Intel Atom C3000 CPU
2.
3.

Actual results:
the engine, and so hosted-engine-setup, accepts the CPU detecting it as ""Westmere,+pcid,+spec-ctrl,+ssbd"" but then it fails starting VMs with: "error: the CPU is incompatible with host CPU: Host CPU does not provide required features: pcid" and indeed the pcid is not there.

Expected results:
the engine correctly detects that CPU or explicitly refuses it.

Additional info:

Comment 1 Ryan Barry 2019-03-15 00:48:43 UTC
Simone, Atoms are not supported CPUs.

Still, we should support this better. This code isn't from virt, though. Is CPU detection done as part of HE setup or deploy? It will either be Integration or Infra

Comment 2 Michal Skrivanek 2019-03-15 04:47:23 UTC
It’s using the same code pretty much, it would fail later on as a host too. Just select something more compatible, I’d say.
We added pcid to all Westmere CPUs without detection(it’s not detected properly but does work and makes a perf difference). All Westmeres have it. This one does’t because...it’s not a Westmere. Flags just happen to match. It would need a libvirt fix first to properly detect it as a new family...which sounds uninteresting because it’s not a virtualization server platform anyway.
I would close this.

Comment 3 Simone Tiraboschi 2019-03-15 10:24:30 UTC
(In reply to Michal Skrivanek from comment #2)
> It’s using the same code pretty much, it would fail later on as a host too.
> Just select something more compatible, I’d say.
> We added pcid to all Westmere CPUs without detection(it’s not detected
> properly but does work and makes a perf difference). All Westmeres have it.
> This one does’t because...it’s not a Westmere. Flags just happen to match.
> It would need a libvirt fix first to properly detect it as a new
> family...which sounds uninteresting because it’s not a virtualization server
> platform anyway.

That family is an Intel effort to bring ultra low power CPUs in the server and cloud world and we have some example of commercial servers based on that:
https://www.supermicro.com/products/nfo/Atom.cfm?show=SELECT&type=C3000

And they are also used on low cost VPS offers:
https://www.vpsbenchmarks.com/trials/scaleway_performance_trial_28May2018

> I would close this.

on the other side at the end it's just an Atom

Comment 4 Ryan Barry 2019-04-09 03:08:46 UTC
Closing for now unless we actually get an external user (upstream or otherwise) requesting this. Simone, patches welcome ;)