linux/arch/x86
Stephane Eranian 0036fb00a7 perf/x86/rapl: fix AMD event handling
The RAPL events exposed under /sys/devices/power/events should only reflect
what the underlying hardware actually support. This is how it works on Intel
RAPL and Intel core/uncore PMUs in general.
But on AMD, this was not the case. All possible RAPL events were advertised.

This is what it showed on an AMD Fam17h:
$ ls /sys/devices/power/events/
energy-cores        energy-gpu          energy-pkg          energy-psys
energy-ram          energy-cores.scale  energy-gpu.scale    energy-pkg.scale
energy-psys.scale   energy-ram.scale    energy-cores.unit   energy-gpu.unit
energy-pkg.unit     energy-psys.unit    energy-ram.unit

Yet, on AMD Fam17h, only energy-pkg is supported.

This patch fixes the problem. Given the way perf_msr_probe() works, the
amd_rapl_msrs[] table has to have all entries filled out and in particular
the group field, otherwise perf_msr_probe() defaults to making the event
visible.

With the patch applied, the kernel now only shows was is actually supported:

$ ls /sys/devices/power/events/
energy-pkg  energy-pkg.scale  energy-pkg.unit

The patch also uses the RAPL_MSR_MASK because only the 32-bits LSB of the
RAPL counters are relevant when reading power consumption.

Signed-off-by: Stephane Eranian <eranian@google.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20220105185659.643355-1-eranian@google.com
2022-01-18 12:09:48 +01:00
..
boot - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
configs x86/kbuild: Enable CONFIG_KALLSYMS_ALL=y in the defconfigs 2022-01-08 22:55:29 +01:00
crypto - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
entry - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
events perf/x86/rapl: fix AMD event handling 2022-01-18 12:09:48 +01:00
hyperv x86/hyperv: Refactor hv_msi_domain_free_irqs() 2021-12-09 11:52:21 +01:00
ia32 audit/stable-5.16 PR 20211101 2021-11-01 21:17:39 -07:00
include Rework of the MSI interrupt infrastructure: 2022-01-13 09:05:29 -08:00
kernel Rework of the MSI interrupt infrastructure: 2022-01-13 09:05:29 -08:00
kvm - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
lib - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
math-emu x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
mm - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
net - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
pci x86/pci/xen: Use msi_for_each_desc() 2021-12-16 22:22:18 +01:00
platform - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
power x86: Prepare asm files for straight-line-speculation 2021-12-08 12:25:37 +01:00
purgatory x86/purgatory: Remove -nostdlib compiler flag 2021-12-30 14:13:06 +01:00
ras
realmode - Flush *all* mappings from the TLB after switching to the trampoline 2022-01-10 09:51:38 -08:00
tools x86/build: Use the proper name CONFIG_FW_LOADER 2021-12-29 22:20:38 +01:00
um - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
video
xen xen: branch for v5.17-rc1 2022-01-12 16:42:00 -08:00
.gitignore
Kbuild kbuild: use more subdir- for visiting subdirectories while cleaning 2021-10-24 13:49:46 +09:00
Kconfig - Get rid of all the .fixup sections because this generates 2022-01-12 16:31:19 -08:00
Kconfig.assembler
Kconfig.cpu x86/mmx_32: Remove X86_USE_3DNOW 2021-12-11 09:09:45 +01:00
Kconfig.debug tracing: Refactor TRACE_IRQFLAGS_SUPPORT in Kconfig 2021-08-16 11:37:21 -04:00
Makefile x86: Add straight-line-speculation mitigation 2021-12-09 13:32:25 +01:00
Makefile_32.cpu x86/build: Do not add -falign flags unconditionally for clang 2021-09-19 10:35:53 +09:00
Makefile.um um: allow not setting extra rpaths in the linux binary 2021-06-17 21:54:15 +02:00