Re: read perf counters


Brenden Blanco <bblanco@...>
 

This needs support in bcc.

I had a patch laying around that I never finished, you can find the partial support here:

It shouldn't be too hard to finalize that, let me see what I can do.

On Mon, Jul 25, 2016 at 4:11 PM, riya khanna via iovisor-dev <iovisor-dev@...> wrote:
So I fixed the error above by using "count = my_map.perf_read(key);"
as opposed to "count = bpf_perf_event_read(&my_map, key);". However,
how do I selectively enable counters (e.g. instructions, cache misses,
etc.)?

Thanks,
Riya

On Mon, Jul 25, 2016 at 9:58 AM, riya khanna <riyakhanna1983@...> wrote:
> Hi,
>
> I'm trying to read perf counters using bpf. However, adding
> BPF_PERF_ARRAY reports error:
>
> bpf: Invalid argument
> unrecognized bpf_ld_imm64 inns
>
> Is there an example/sample to read perf counters  that I can follow?
> The code below is what I'm trying to execute.
>
> Thanks,
> Riya
>
> # load BPF program
>
> bpf_text = """
>
> #include <uapi/linux/ptrace.h>
>
> BPF_PERF_ARRAY(my_map, 32);
>
> int start_counting(struct pt_regs *ctx) {
>
>     if (!PT_REGS_PARM1(ctx))
>
>         return 0;
>
>     u64 count;
>
>     u32 key = bpf_get_smp_processor_id();
>
>     count = bpf_perf_event_read(&my_map, key);
>
>     bpf_trace_printk("CPU-%d %llu", key, count);
>
>     return 0;
>
> }
>
> """
_______________________________________________
iovisor-dev mailing list
iovisor-dev@...
https://lists.iovisor.org/mailman/listinfo/iovisor-dev

Join iovisor-dev@lists.iovisor.org to automatically receive all group messages.