From: Song Liu <songliubraving@fb.com>
To: Jiri Olsa <jolsa@redhat.com>
Cc: linux-kernel <linux-kernel@vger.kernel.org>,
Kernel Team <Kernel-team@fb.com>,
Arnaldo Carvalho de Melo <acme@kernel.org>,
"acme@redhat.com" <acme@redhat.com>,
"namhyung@kernel.org" <namhyung@kernel.org>,
"jolsa@kernel.org" <jolsa@kernel.org>
Subject: Re: [PATCH] perf-stat: introduce bperf, share hardware PMCs with BPF
Date: Mon, 15 Mar 2021 18:24:10 +0000 [thread overview]
Message-ID: <6ECF90F5-6A99-47FB-B04F-D3EFC7564D04@fb.com> (raw)
In-Reply-To: <YE9qf8vcS8svnFG7@krava>
> On Mar 15, 2021, at 7:09 AM, Jiri Olsa <jolsa@redhat.com> wrote:
>
> On Mon, Mar 15, 2021 at 07:51:11AM +0000, Song Liu wrote:
>
> SNIP
[...]
>>
>> It is mostly to cover corner cases, like something else used the same
>> name.
>
> about that.. we just take the object fd assuming it's map,
> should we test it somehow?
>
> map_fd = bpf_obj_get(path);
>
> if it's not the map we expect, I think we should generate
> another name without forcing user to run again with --attr-map
>
> but still warn, so other perf session can use the new name
The auto failover is an interesting idea. But I guess we still need
--attr-map. Another use case is when the user mounted bpffs to a
different path. Alternatively, maybe we can teach perf to search all
bpffs mount points for perf_attr_map?
>
> SNIP
>
>>>> +static int bperf_sync_counters(struct evsel *evsel)
>>>> +{
>>>> + struct perf_cpu_map *all_cpus = perf_cpu_map__new(NULL);
>>>> + int num_cpu, i, cpu;
>>>> +
>>>> + if (!all_cpus)
>>>> + return -1;
>>>> +
>>>> + num_cpu = all_cpus->nr;
>>>> + for (i = 0; i < num_cpu; i++) {
>>>> + cpu = all_cpus->map[i];
>>>> + bperf_trigger_reading(evsel->bperf_leader_prog_fd, cpu);
>>>> + }
>>>> + return 0;
>>>> +}
>>>> +
>>>> +static int bperf__enable(struct evsel *evsel)
>>>> +{
>>>> + struct bperf_follower_bpf *skel = evsel->follower_skel;
>>>> + __u32 num_cpu_bpf = libbpf_num_possible_cpus();
>>>
>>> we have cpu__max_cpu for that
>>
>> libbpf calls for percpu array use libbpf_num_possible_cpus. So I guess it
>> is better to use the same here. The two are identical at the moment though.
>
> then in the bperf__read you take that array and update
> perf_counts, which is based on perf's cpus, so they mix
> anyway
>
> I'd like to keep perf code using perf's cpus api.. could
> we just check at the begining that libbpf_num_possible_cpus
> returns same number as cpu__max_cpu (if not, we have a
> problem anyway) and use perf's cpu api
Let me try cpu__max_cpu.
Thanks,
Song
prev parent reply other threads:[~2021-03-15 18:24 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-12 2:02 Song Liu
2021-03-12 8:36 ` Namhyung Kim
2021-03-12 15:38 ` Song Liu
2021-03-13 2:47 ` Namhyung Kim
2021-03-13 19:37 ` Song Liu
2021-03-12 12:12 ` Jiri Olsa
2021-03-12 15:45 ` Song Liu
2021-03-12 16:09 ` Song Liu
2021-03-13 22:06 ` Jiri Olsa
2021-03-13 23:03 ` Song Liu
2021-03-12 14:24 ` Arnaldo Carvalho de Melo
2021-03-12 16:07 ` Song Liu
2021-03-12 17:37 ` Arnaldo Carvalho de Melo
2021-03-12 18:52 ` Song Liu
2021-03-15 13:10 ` Arnaldo Carvalho de Melo
2021-03-15 15:34 ` Andi Kleen
2021-03-15 18:29 ` Song Liu
2021-03-14 22:48 ` Jiri Olsa
2021-03-15 7:51 ` Song Liu
2021-03-15 14:09 ` Jiri Olsa
2021-03-15 18:24 ` Song Liu [this message]
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=6ECF90F5-6A99-47FB-B04F-D3EFC7564D04@fb.com \
--to=songliubraving@fb.com \
--cc=Kernel-team@fb.com \
--cc=acme@kernel.org \
--cc=acme@redhat.com \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=namhyung@kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®