You can disable Processor Power and Utilization Monitoring in the BIOS by various means, but it's always hidden in non-obvious ways.
Conrep
With Conrep you have to copy an invalid XML snippet from the 2017er version of HP's Low-Latency guideHP2017, fix it and insert it into the default hardware description file to access this option.
The fixed snipped should look like this:
$ cat adv.xml
<Section name="PowerMonitoring">
<helptext><![CDATA[This setting determines if Pstate logging and utilization is supported.]]></helptext>
<ev>CQHGV3</ev>
<length>1</length>
<value id="0x00">Enabled</value>
<value id="0x10">Disabled</value>
<mask>0x10</mask>
<byte>0</byte>
</Section>
<Section name="DisableMemoryPrefailureNotification">
<helptext><![CDATA[This setting allows the user to disable Memory Pre-Failure Notification support, which will remove the periodic SMI associated with this support. Not recommended for anyone except for those who absolutely need every periodic SMI removed.]]></helptext>
<ev>CQHGV3</ev>
<length>1</length>
<value id="0x00">No</value>
<value id="0x20">Yes</value>
<mask>0x20</mask>
<byte>0</byte>
</Section>
<Section name="Memory_Refresh_Rate_Gen9">
<helptext><![CDATA[This setting allows the user to change the Memory Refresh Rate setting on Gen9 servers.]]></helptext>
<platforms>
<platform>Gen9</platform>
</platforms>
<nvram>0x257</nvram>
<value id="0x00">1x_Refresh</value>
<value id="0x10">2x_Refresh</value>
<value id="0x20">3x_Refresh</value>
<mask>0x30</mask>
</Section>
<Section name="Memory_Refresh_Gen8">
<helptext><![CDATA[This setting allows the user to change the Memory Refresh setting on Gen8 servers.]]></helptext>
<platforms>
<platform>Gen8</platform>
</platforms>
<nvram>0x261</nvram>
<value id="0x01">1x_Refresh</value>
<value id="0x00">2x_Refresh</value>
<value id="0x02">3x_Refresh</value>
<mask>0x03</mask>
</Section>
<Section name="Memory_Patrol_Scrubbing_Gen9">
<helptext><![CDATA[This setting allows the user to enable or disable the Memory Patrol Scrubbing setting on Gen9 servers.]]></helptext>
<platforms>
<platform>Gen9</platform>
</platforms>
<nvram>0x257</nvram>
<value id="0x08">Disabled</value>
<value id="0x00">Enabled</value>
<mask>0x08</mask>
</Section>
Create a new hardware description file:
grep -v '</Conrep>' /opt/hp/hp-scripting-tools/etc/conrep.xml > conrep-plus.xml
cat adv.xml >> conrep-plus.xml
echo '</Conrep>' >> conrep-plus.xml
Create snippet that disables the Power-Monitoring option:
$ cat latency.dat
<Conrep>
<Section name="PowerMonitoring" helptext="This setting determines if Pstate logging and utilization is supported.">Disabled</Section>
</Conrep>
Apply the setting:
# conrep -l -x conrep-plus.xml -f latency.dat
You can check the current settings with:
# conrep -s -x conrep-plus.xml -f current.dat
Conrep is part of the HP Scripting Tools (STK). The simplest way to obtain it is to download it from the HP package repostory (e.g. direct link for CentOS).
HPRCU
HPRCU is similar to Conrep but doesn't require a hardware definition file. However, HP announced its end-of-life in 2014 or so.
With hprcu
you have to add the -a
option (which is undocumented in the HPRCU manual and online help) to get access to the Power-Monitoring option.
The -a
option is mentioned in the 2014er version of HP's Low-Latency guideHP2014, though.
Steps to disable this setting with hprcu
:
# hprcu -s -f current.xml -a
# sed 's/\(<feature feature_id="212" selected_option_id="\)1"/\12"/' current.xml \
> mod.xml
# hprcu -l -f mod.xml -a
HPRCU is also part of the HP Scripting Tools (STK) package. Depending on your hardware you might need to fetch an older version (cf. the support page for your model).
Other Methods
Of course, when you have console access, you can also change it interactively during boot (cf. eewhite's answer). With newer HP servers (Gen9 and later) you can also use the HPE iLO RESTful Interface to change this setting remotely (cf. HP's Low-Latency guide). That means you need then have access to the iLO network whereas with conrep/hprcu you just need root access.
Effects
When switching the Power-Monitoring setting off you should see much less System-Management-Mode-Interrupts (SMIs). You can verify this by measuring them before and after changing this setting.
HP2014: Configuring and tuning
HP ProLiant Servers for
low-latency applications. Technical white paper. Part Number: 581608-006, May 2014, Edition: 6
HP2017: Configuring and tuning HPE ProLiant Servers for low-latency applications. Technical white paperPart Number: 581608-009, October 2017, Edition: 10