CVE-2024-46848

perf/x86/intel: Limit the period on Haswell

published September 27, 2024

CVSS
—
EPSS
0%
Percentile
11.7
In the wild
Unconfirmed
What it is

In the Linux kernel, the following vulnerability has been resolved:

perf/x86/intel: Limit the period on Haswell

Running the ltp test cve-2015-3290 concurrently reports the following

warnings.

perfevents: irq loop stuck!

WARNING: CPU: 31 PID: 32438 at arch/x86/events/intel/core.c:3174

intel_pmu_handle_irq+0x285/0x370

Call Trace:

<NMI>

? __warn+0xa4/0x220

? intel_pmu_handle_irq+0x285/0x370

? __report_bug+0x123/0x130

? intel_pmu_handle_irq+0x285/0x370

? __report_bug+0x123/0x130

? intel_pmu_handle_irq+0x285/0x370

? report_bug+0x3e/0xa0

? handle_bug+0x3c/0x70

? exc_invalid_op+0x18/0x50

? asm_exc_invalid_op+0x1a/0x20

? irq_work_claim+0x1e/0x40

? intel_pmu_handle_irq+0x285/0x370

perf_event_nmi_handler+0x3d/0x60

nmi_handle+0x104/0x330

Thanks to Thomas Gleixner's analysis, the issue is caused by the low

initial period (1) of the frequency estimation algorithm, which triggers

the defects of the HW, specifically erratum HSW11 and HSW143. (For the

details, please refer https://lore.kernel.org/lkml/87plq9l5d2.ffs@tglx/)

The HSW11 requires a period larger than 100 for the INST_RETIRED.ALL

event, but the initial period in the freq mode is 1. The erratum is the

same as the BDM11, which has been supported in the kernel. A minimum

period of 128 is enforced as well on HSW.

HSW143 is regarding that the fixed counter 1 may overcount 32 with the

Hyper-Threading is enabled. However, based on the test, the hardware

has more issues than it tells. Besides the fixed counter 1, the message

'interrupt took too long' can be observed on any counter which was armed

with a period < 32 and two events expired in the same NMI. A minimum

period of 32 is enforced for the rest of the events.

The recommended workaround code of the HSW143 is not implemented.

Because it only addresses the issue for the fixed counter. It brings

extra overhead through extra MSR writing. No related overcounting issue

has been reported so far.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00219 · 11.7th percentile
Published
2024-09-27T12:39Z
EPSS history
Timeline
  • 27 SEP 12:39Z
    perf/x86/intel: Limit the period on Haswell
    cvelistv5