Page MenuHomeFreeBSD

hwpmc: disable uncore class on Sandy Bridge and newer
ClosedPublic

Authored by mhorne on Aug 2 2021, 9:23 PM.
Tags
None
Referenced Files
F83630310: D31389.diff
Sun, May 12, 9:22 PM
Unknown Object (File)
Mon, May 6, 12:29 PM
Unknown Object (File)
Sat, May 4, 4:23 PM
Unknown Object (File)
Fri, May 3, 4:50 PM
Unknown Object (File)
Sat, Apr 27, 7:25 PM
Unknown Object (File)
Fri, Apr 19, 5:08 PM
Unknown Object (File)
Mar 19 2024, 9:59 PM
Unknown Object (File)
Mar 19 2024, 2:14 PM
Subscribers

Details

Summary

It was written for Nehalem and Westmere, but has failed to stay current
with major changes to the uncore architecture, beginning with Sandy
Bridge. These changes brought new layouts and locations for some uncore
MSRs. There was some minor but incomplete attempts to address this in
78d763a29b15 and cc0c1555d334.

Misprogramming these MSRs in ucp_start_pmc() may panic the system, and
this is trivially reproducible via pmcstat(8) on at least Broadwell and
Haswell. Disable the class on these CPUs until it can be updated more
completely and leave a TODO mentioning some of the work required. Note
that the nclasses value for Broadwell was already incorrect and doesn't
need changing.

The result is that any uncore events listed by pmcstat -L will no longer
be allocatable, but this is already the case for newer generations of
Intel CPUs.

PR: 253687

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 40813
Build 37702: arc lint + arc unit