All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Zijlstra <peterz@infradead.org>
To: Namhyung Kim <namhyung@kernel.org>
Cc: Arnaldo Carvalho de Melo <acme@kernel.org>,
	Jiri Olsa <jolsa@redhat.com>, Ingo Molnar <mingo@kernel.org>,
	LKML <linux-kernel@vger.kernel.org>,
	Andi Kleen <ak@linux.intel.com>, Ian Rogers <irogers@google.com>,
	Stephane Eranian <eranian@google.com>,
	Song Liu <songliubraving@fb.com>
Subject: Re: [PATCHSET v2 0/3] perf stat: Enable BPF counters with --for-each-cgroup
Date: Thu, 17 Jun 2021 00:32:12 +0200	[thread overview]
Message-ID: <20210616223212.GE4272@worktop.programming.kicks-ass.net> (raw)
In-Reply-To: <CAM9d7cj2UhQsd2vx8_C8C_CEW2QQbzs741jCn7f7g-e0i9OiOg@mail.gmail.com>

On Wed, Jun 16, 2021 at 09:33:42AM -0700, Namhyung Kim wrote:

> > That seems unfortunate; there's no bpf helper to iterate cgroup
> > hierarchy?
> 
> I couldn't find one..

Song, is that something that would make sense to have?

> > >  * there's no reliable way to trigger running the BPF program
> >
> > You can't attach to the PERF_COUNT_SW_CGROUP_SWITCHES event?
> 
> I did it.  But the BPF test run seems not to work with perf_event.
> So it needs to trigger a cgroup switch manually..

AFAICT it should be possible to set a bpf prog on a software event.
perf_event_set_bpf_prog() will take the first branch
(!perf_event_is_tracing()) and call perf_event_set_bpf_handler().

That should then result in running the bpf program every time the event
would generate a sample.

So if you configure the event to sample on every single event, it should
then run your program every time.

This is all from looking at the code, because I really can't operate any
of that for real. I suspect Song can help out.

The alternative is to attach a BPF program to the sched_switch
tracepoint and do the cgroup filter in BPF.

  reply	other threads:[~2021-06-16 22:32 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-15  1:17 [PATCHSET v2 0/3] perf stat: Enable BPF counters with --for-each-cgroup Namhyung Kim
2021-06-15  1:17 ` [PATCH 1/3] perf tools: Add read_cgroup_id() function Namhyung Kim
2021-06-15  1:17 ` [PATCH 2/3] perf tools: Add cgroup_is_v2() helper Namhyung Kim
2021-06-15  1:17 ` [PATCH 3/3] perf stat: Enable BPF counter with --for-each-cgroup Namhyung Kim
2021-06-16 15:14 ` [PATCHSET v2 0/3] perf stat: Enable BPF counters " Peter Zijlstra
2021-06-16 16:33   ` Namhyung Kim
2021-06-16 22:32     ` Peter Zijlstra [this message]
2021-06-17  6:33       ` Song Liu
2021-06-22  1:43         ` Namhyung Kim

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210616223212.GE4272@worktop.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=acme@kernel.org \
    --cc=ak@linux.intel.com \
    --cc=eranian@google.com \
    --cc=irogers@google.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=songliubraving@fb.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.