[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM9d7cjxSd9QJzTs1_s6Nh7c38FZ7_2FGPoCunvnmjX_y-+Dyg@mail.gmail.com>
Date: Tue, 10 Oct 2023 20:45:03 -0700
From: Namhyung Kim <namhyung@...nel.org>
To: Peter Zijlstra <peterz@...radead.org>
Cc: Ingo Molnar <mingo@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Alexander Shishkin <alexander.shishkin@...ux.intel.com>,
Arnaldo Carvalho de Melo <acme@...nel.org>,
LKML <linux-kernel@...r.kernel.org>,
Stephane Eranian <eranian@...gle.com>,
Kan Liang <kan.liang@...ux.intel.com>,
Ravi Bangoria <ravi.bangoria@....com>, stable@...r.kernel.org
Subject: Re: [PATCH] perf/core: Introduce cpuctx->cgrp_ctx_list
On Mon, Oct 9, 2023 at 9:57 PM Namhyung Kim <namhyung@...nel.org> wrote:
>
> Hi Peter,
>
> On Mon, Oct 9, 2023 at 2:04 PM Peter Zijlstra <peterz@...radead.org> wrote:
> >
> > On Wed, Oct 04, 2023 at 09:32:24AM -0700, Namhyung Kim wrote:
> >
> > > Yeah, I know.. but I couldn't come up with a better solution.
> >
> > Not been near a compiler, and haven't fully thought it through, but
> > could something like the work work?
>
> Thanks for the patch, I think it'd work. Let me test it
> and get back to you.
I worked well but contained a typo. See below.
Which way do you want to process this change? Do I send it again
with your S-o-b or will you apply it by yourself? Either is fine, just
let me know. In case of latter, you can add
Tested-by: Namhyung Kim <namhyung@...nel.org>
> >
> >
> > ---
> > include/linux/perf_event.h | 1 +
> > kernel/events/core.c | 115 +++++++++++++++++++++++----------------------
> > 2 files changed, 61 insertions(+), 55 deletions(-)
> >
> > diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
> > index f31f962a6445..0367d748fae0 100644
> > --- a/include/linux/perf_event.h
> > +++ b/include/linux/perf_event.h
> > @@ -878,6 +878,7 @@ struct perf_event_pmu_context {
> > unsigned int embedded : 1;
> >
> > unsigned int nr_events;
> > + unsigned int nr_cgroups;
> >
> > atomic_t refcount; /* event <-> epc */
> > struct rcu_head rcu_head;
> > diff --git a/kernel/events/core.c b/kernel/events/core.c
> > index 708d474c2ede..f3d5d47ecdfc 100644
> > --- a/kernel/events/core.c
> > +++ b/kernel/events/core.c
> > @@ -375,6 +375,7 @@ enum event_type_t {
> > EVENT_TIME = 0x4,
> > /* see ctx_resched() for details */
> > EVENT_CPU = 0x8,
> > + EVENT_CGROUP = 0x10,
> > EVENT_ALL = EVENT_FLEXIBLE | EVENT_PINNED,
> > };
> >
> > @@ -684,20 +685,26 @@ do { \
> > ___p; \
> > })
> >
> > -static void perf_ctx_disable(struct perf_event_context *ctx)
> > +static void perf_ctx_disable(struct perf_event_context *ctx, bool cgroup)
> > {
> > struct perf_event_pmu_context *pmu_ctx;
> >
> > - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry)
> > + list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) {
> > + if (cgroup && !pmu_ctx->nr_cgroups)
> > + continue;
> > perf_pmu_disable(pmu_ctx->pmu);
> > + }
> > }
> >
> > -static void perf_ctx_enable(struct perf_event_context *ctx)
> > +static void perf_ctx_enable(struct perf_event_context *ctx. bool cgroup)
s/./,/
Thanks,
Namhyung
> > {
> > struct perf_event_pmu_context *pmu_ctx;
> >
> > - list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry)
> > + list_for_each_entry(pmu_ctx, &ctx->pmu_ctx_list, pmu_ctx_entry) {
> > + if (cgroup && !pmu_ctx->nr_cgroups)
> > + continue;
> > perf_pmu_enable(pmu_ctx->pmu);
> > + }
> > }
Powered by blists - more mailing lists