PEBS disabled due to CPU errata

I noticed this in /var/log/messages on my freshly installed CentOS 7.5 system.

May 24 09:46:43 localhost kernel: smpboot: CPU0: Intel(R) Xeon(R) CPU E31220 @ 3.10GHz (fam: 06, model: 2a, stepping: 07)
May 24 09:46:43 localhost kernel: Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, full-width counters, Intel PMU driver.
May 24 09:46:43 localhost kernel: core: PEBS disabled due to CPU errata, please upgrade microcode
May 24 09:46:43 localhost kernel: ... version:                3
May 24 09:46:43 localhost kernel: ... bit width:              48
May 24 09:46:43 localhost kernel: ... generic registers:      8
May 24 09:46:43 localhost kernel: ... value mask:             0000ffffffffffff
May 24 09:46:43 localhost kernel: ... max period:             00007fffffffffff
May 24 09:46:43 localhost kernel: ... fixed-purpose events:   3
May 24 09:46:43 localhost kernel: ... event mask:             00000007000000ff

RedHat has this to say about it. ref: https://access.redhat.com/solutions/634443

Root Cause

  • Clovertown and SandyBridge processors have errata regarding PEBS functionality.

Diagnostic Steps

  • Look at /proc/cpuinfo for model number 15, 42 or 45

So I did

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Xeon(R) CPU E31220 @ 3.10GHz
stepping        : 7
microcode       : 0x29
cpu MHz         : 1599.951
cache size      : 8192 KB

Install a few packages

# yum install microcode_ctl.x86_64
# yum install iucode-tool
# reboot

I see this in /var/log/messages on the reboot

May 26 18:55:50 wine kernel: microcode: microcode updated early to revision 0x2d, date = 2018-02-07

Confirmation the processor has microcode patches applied

processor       : 3
vendor_id       : GenuineIntel
cpu family      : 6
model           : 42
model name      : Intel(R) Xeon(R) CPU E31220 @ 3.10GHz
stepping        : 7
microcode       : 0x2d

The microcode is being updated as the system loads.