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.