Adding new RHEV host fails, host moves to non-operational with error "CPU type not supported

Solution In Progress - Updated -

Environment

Red Hat Enterprise Virtualization (RHEV) 3.4

Issue

Unable to add a new host to an existing cluster.
RHEV Manager event logs report the following:
Host rhevh moved to Non-Operational state as host CPU type is not supported in this cluster compatibility version or is not supported at all.

Resolution

Enable the Execute Disable Bit in the BIOS settings

Power up the system.
Press F1 to enter the BIOS setup menu.
Select Advanced Setup --> CPU Options.
Select the "Processor Execute Disable Bit" option and press the right-arrow key to change the setting to "Enabled."
Save and exit the BIOS setup menu.

Root Cause

The "Execute Disable Bit" was not enabled in the BIOS settings.

Diagnostic Steps

On the RHEV-M, the log file /var/log/ovirt-engine/engine.log indicates the nx cpu flag is not set.

2014-10-15 12:24:05,277 ERROR [org.ovirt.engine.core.bll.HandleVdsCpuFlagsOrClusterChangedCommand] (DefaultQuartzScheduler_Worker-8) [3989dd55] Could not find server cpu for server c5b90c57-8849-47d6-90e0-94c6b1ed68a6:rhevh, flags: 
fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,aperfmperf,pni,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm,dca,sse4_1,lahf_lm,dts,tpr_shadow,vnmi,flexpriority

2014-10-15 12:24:05,301 INFO  [org.ovirt.engine.core.dal.dbbroker.auditloghandling.AuditLogDirector] (DefaultQuartzScheduler_Worker-8) [3989dd55] Correlation ID: null, Call Stack: null, Custom Event ID: -1, Message: Host rhevh is missing the NX cpu flag. This flag can be enabled via the host BIOS. Please set Disable Execute (XD) for an Intel host, or No Execute (NX) for AMD.  Please make sure to completely power off the host for this change to take effect.

From the vdsClient command, the "nx" flag is not set and the CPU families are not listed:

# vdsClient -s 0 getVdsCaps | grep cpu
    cpuCores = '4'
    cpuFlags = 'fpu,vme,de,pse,tsc,msr,pae,mce,cx8,apic,mtrr,pge,mca,cmov,pat,pse36,clflush,dts,acpi,mmx,fxsr,sse,sse2,ss,ht,tm,pbe,syscall,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,aperfmperf,pni,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm,dca,sse4_1,lahf_lm,dts,tpr_shadow,vnmi,flexpriority'
    cpuModel = 'Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz'
    cpuSockets = '1'
    cpuSpeed = '2490.000'
    cpuThreads = '4'

After setting the Execute Disable Bit to Enabled in the BIOS setting, the nx cpu flag is now set and the RHEV-H Host was added successfully.

# vdsClient -s 0 getVdsCaps | grep cpu
    cpuCores = '4'
    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,lm,constant_tsc,arch_perfmon,pebs,bts,rep_good,aperfmperf,pni,dtes64,monitor,ds_cpl,vmx,est,tm2,ssse3,cx16,xtpr,pdcm,dca,sse4_1,lahf_lm,dts,tpr_shadow,vnmi,flexpriority,model_Conroe,model_coreduo,model_core2duo,model_Penryn,model_n270'
    cpuModel = 'Intel(R) Xeon(R) CPU           E5420  @ 2.50GHz'
    cpuSockets = '1'
    cpuSpeed = '2490.000'
    cpuThreads = '4'

This solution is part of Red Hat’s fast-track publication program, providing a huge library of solutions that Red Hat engineers have created while supporting our customers. To give you the knowledge you need the instant it becomes available, these articles may be presented in a raw and unedited form.