Thread (36 messages) 36 messages, 2 authors, 2021-12-17

Re: [PATCH v5 09/22] cpufreq: amd: add trace for amd-pstate module

From: Huang Rui <ray.huang@amd.com>
Date: 2021-12-17 07:53:16
Also in: lkml

On Fri, Dec 17, 2021 at 02:12:41AM +0800, Rafael J. Wysocki wrote:
On Tue, Nov 30, 2021 at 1:38 PM Huang Rui [off-list ref] wrote:
quoted
Add trace event to monitor the performance value changes which is
controlled by cpu governors.
This would need an ACK from Steve.
quoted
Signed-off-by: Huang Rui <ray.huang@amd.com>
---
 drivers/cpufreq/Makefile           |  6 ++-
 drivers/cpufreq/amd-pstate-trace.c |  2 +
 drivers/cpufreq/amd-pstate-trace.h | 77 ++++++++++++++++++++++++++++++
Why are these two extra files necessary?
Please see below answer.
quoted
 drivers/cpufreq/amd-pstate.c       |  4 ++
 4 files changed, 88 insertions(+), 1 deletion(-)
 create mode 100644 drivers/cpufreq/amd-pstate-trace.c
 create mode 100644 drivers/cpufreq/amd-pstate-trace.h
diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
index c8d307010922..285de70af877 100644
--- a/drivers/cpufreq/Makefile
+++ b/drivers/cpufreq/Makefile
@@ -17,6 +17,10 @@ obj-$(CONFIG_CPU_FREQ_GOV_ATTR_SET)  += cpufreq_governor_attr_set.o
 obj-$(CONFIG_CPUFREQ_DT)               += cpufreq-dt.o
 obj-$(CONFIG_CPUFREQ_DT_PLATDEV)       += cpufreq-dt-platdev.o

+# Traces
+CFLAGS_amd-pstate-trace.o               := -I$(src)
+amd_pstate-y                           := amd-pstate.o amd-pstate-trace.o
+
 ##################################################################################
 # x86 drivers.
 # Link order matters. K8 is preferred to ACPI because of firmware bugs in early
@@ -25,7 +29,7 @@ obj-$(CONFIG_CPUFREQ_DT_PLATDEV)      += cpufreq-dt-platdev.o
 # speedstep-* is preferred over p4-clockmod.

 obj-$(CONFIG_X86_ACPI_CPUFREQ)         += acpi-cpufreq.o
-obj-$(CONFIG_X86_AMD_PSTATE)           += amd-pstate.o
+obj-$(CONFIG_X86_AMD_PSTATE)           += amd_pstate.o
 obj-$(CONFIG_X86_POWERNOW_K8)          += powernow-k8.o
 obj-$(CONFIG_X86_PCC_CPUFREQ)          += pcc-cpufreq.o
 obj-$(CONFIG_X86_POWERNOW_K6)          += powernow-k6.o
diff --git a/drivers/cpufreq/amd-pstate-trace.c b/drivers/cpufreq/amd-pstate-trace.c
new file mode 100644
index 000000000000..891b696dcd69
--- /dev/null
+++ b/drivers/cpufreq/amd-pstate-trace.c
@@ -0,0 +1,2 @@
+#define CREATE_TRACE_POINTS
+#include "amd-pstate-trace.h"
diff --git a/drivers/cpufreq/amd-pstate-trace.h b/drivers/cpufreq/amd-pstate-trace.h
new file mode 100644
index 000000000000..647505957d4f
--- /dev/null
+++ b/drivers/cpufreq/amd-pstate-trace.h
@@ -0,0 +1,77 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * amd-pstate-trace.h - AMD Processor P-state Frequency Driver Tracer
+ *
+ * Copyright (C) 2021 Advanced Micro Devices, Inc. All Rights Reserved.
+ *
+ * Author: Huang Rui <ray.huang@amd.com>
+ */
+
+#if !defined(_AMD_PSTATE_TRACE_H) || defined(TRACE_HEADER_MULTI_READ)
+#define _AMD_PSTATE_TRACE_H
+
+#include <linux/cpufreq.h>
+#include <linux/tracepoint.h>
+#include <linux/trace_events.h>
+
+#undef TRACE_SYSTEM
+#define TRACE_SYSTEM amd_cpu
+
+#undef TRACE_INCLUDE_FILE
+#define TRACE_INCLUDE_FILE amd-pstate-trace
+
+#define TPS(x)  tracepoint_string(x)
+
+TRACE_EVENT(amd_pstate_perf,
Could this be added to include/trace/events/power.h ?
Actually, that is my original idea, but once I move the trace into
include/trace/events/power.h, the amd-pstate driver cannot build as "ko"
anymore. This is the early stage, "ko" is friendly and flexible for us to
switch and compare between amd-pstate and acpi-cpufreq. I can move it into
"power" trace events once we address the performance issue on shared memory
solution.

Thanks,
Ray
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help