Commit fd3ae1e1 authored by Stephane Eranian's avatar Stephane Eranian Committed by Ingo Molnar

perf/x86/rapl: Move RAPL support to common x86 code

To prepare for support of both Intel and AMD RAPL.

As per the AMD PPR, Fam17h support Package RAPL counters to monitor power usage.
The RAPL counter operates as with Intel RAPL, and as such it is beneficial
to share the code.

No change in functionality.
Signed-off-by: default avatarStephane Eranian <eranian@google.com>
Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20200527224659.206129-2-eranian@google.com
parent 0bffedbc
...@@ -10,11 +10,11 @@ config PERF_EVENTS_INTEL_UNCORE ...@@ -10,11 +10,11 @@ config PERF_EVENTS_INTEL_UNCORE
available on NehalemEX and more modern processors. available on NehalemEX and more modern processors.
config PERF_EVENTS_INTEL_RAPL config PERF_EVENTS_INTEL_RAPL
tristate "Intel rapl performance events" tristate "Intel/AMD rapl performance events"
depends on PERF_EVENTS && CPU_SUP_INTEL && PCI depends on PERF_EVENTS && (CPU_SUP_INTEL || CPU_SUP_AMD) && PCI
default y default y
---help--- ---help---
Include support for Intel rapl performance events for power Include support for Intel and AMD rapl performance events for power
monitoring on modern processors. monitoring on modern processors.
config PERF_EVENTS_INTEL_CSTATE config PERF_EVENTS_INTEL_CSTATE
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
obj-y += core.o probe.o obj-y += core.o probe.o
obj-$(PERF_EVENTS_INTEL_RAPL) += rapl.o
obj-y += amd/ obj-y += amd/
obj-$(CONFIG_X86_LOCAL_APIC) += msr.o obj-$(CONFIG_X86_LOCAL_APIC) += msr.o
obj-$(CONFIG_CPU_SUP_INTEL) += intel/ obj-$(CONFIG_CPU_SUP_INTEL) += intel/
......
...@@ -2,8 +2,6 @@ ...@@ -2,8 +2,6 @@
obj-$(CONFIG_CPU_SUP_INTEL) += core.o bts.o obj-$(CONFIG_CPU_SUP_INTEL) += core.o bts.o
obj-$(CONFIG_CPU_SUP_INTEL) += ds.o knc.o obj-$(CONFIG_CPU_SUP_INTEL) += ds.o knc.o
obj-$(CONFIG_CPU_SUP_INTEL) += lbr.o p4.o p6.o pt.o obj-$(CONFIG_CPU_SUP_INTEL) += lbr.o p4.o p6.o pt.o
obj-$(CONFIG_PERF_EVENTS_INTEL_RAPL) += intel-rapl-perf.o
intel-rapl-perf-objs := rapl.o
obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE) += intel-uncore.o obj-$(CONFIG_PERF_EVENTS_INTEL_UNCORE) += intel-uncore.o
intel-uncore-objs := uncore.o uncore_nhmex.o uncore_snb.o uncore_snbep.o intel-uncore-objs := uncore.o uncore_nhmex.o uncore_snb.o uncore_snbep.o
obj-$(CONFIG_PERF_EVENTS_INTEL_CSTATE) += intel-cstate.o obj-$(CONFIG_PERF_EVENTS_INTEL_CSTATE) += intel-cstate.o
......
// SPDX-License-Identifier: GPL-2.0-only // SPDX-License-Identifier: GPL-2.0-only
/* /*
* Support Intel RAPL energy consumption counters * Support Intel/AMD RAPL energy consumption counters
* Copyright (C) 2013 Google, Inc., Stephane Eranian * Copyright (C) 2013 Google, Inc., Stephane Eranian
* *
* Intel RAPL interface is specified in the IA-32 Manual Vol3b * Intel RAPL interface is specified in the IA-32 Manual Vol3b
* section 14.7.1 (September 2013) * section 14.7.1 (September 2013)
* *
* AMD RAPL interface for Fam17h is described in the public PPR:
* https://bugzilla.kernel.org/show_bug.cgi?id=206537
*
* RAPL provides more controls than just reporting energy consumption * RAPL provides more controls than just reporting energy consumption
* however here we only expose the 3 energy consumption free running * however here we only expose the 3 energy consumption free running
* counters (pp0, pkg, dram). * counters (pp0, pkg, dram).
...@@ -58,8 +61,8 @@ ...@@ -58,8 +61,8 @@
#include <linux/nospec.h> #include <linux/nospec.h>
#include <asm/cpu_device_id.h> #include <asm/cpu_device_id.h>
#include <asm/intel-family.h> #include <asm/intel-family.h>
#include "../perf_event.h" #include "perf_event.h"
#include "../probe.h" #include "probe.h"
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment