lkml.org 
[lkml]   [2021]   [Dec]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH v5 09/22] cpufreq: amd: add trace for amd-pstate module
On Fri, Dec 17, 2021 at 8:53 AM Huang Rui <ray.huang@amd.com> wrote:
>
> 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 <ray.huang@amd.com> wrote:
> > >
> > > Add trace event to monitor the performance value changes which is
> > > controlled by cpu governors.
> >
> > This would need an ACK from Steve.
> >
> > >
> > > 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.
>
> >
> > > 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.

OK, I guess it's fine then, but it still needs an ACK from Steve.

\
 
 \ /
  Last update: 2021-12-17 15:07    [W:0.066 / U:0.476 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site