[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <56CD39AC.5020909@huawei.com>
Date: Wed, 24 Feb 2016 13:03:40 +0800
From: "Wangnan (F)" <wangnan0@...wei.com>
To: Arnaldo Carvalho de Melo <acme@...nel.org>,
Peter Zijlstra <peterz@...radead.org>
CC: Alexei Starovoitov <ast@...nel.org>,
Arnaldo Carvalho de Melo <acme@...hat.com>,
Brendan Gregg <brendan.d.gregg@...il.com>,
Adrian Hunter <adrian.hunter@...el.com>,
Cody P Schafer <dev@...yps.com>,
"David S. Miller" <davem@...emloft.net>,
He Kuang <hekuang@...wei.com>,
Jérémie Galarneau
<jeremie.galarneau@...icios.com>, Jiri Olsa <jolsa@...nel.org>,
Kirill Smelkov <kirr@...edi.com>,
Li Zefan <lizefan@...wei.com>,
Masami Hiramatsu <masami.hiramatsu.pt@...achi.com>,
Namhyung Kim <namhyung@...nel.org>, <pi3orama@....com>,
<linux-kernel@...r.kernel.org>
Subject: Re: [PATCH 10/48] perf tools: Introduce bpf-output event
On 2016/2/24 12:03, Wangnan (F) wrote:
>
>
> On 2016/2/24 10:04, Wangnan (F) wrote:
>>
>>
>> On 2016/2/24 9:58, Wangnan (F) wrote:
>>>
[SNIP]
>>> So, there is something strange here:
>>>>
>>>> if (unlikely(event->oncpu != smp_processor_id()))
>>>> return -EOPNOTSUPP;
>>>>
>>>
>>
>> All failures have 'event->oncpu == -1' here. I guess we should
>> suppress warning in
>> this case. But why event->oncpu becomes -1?
>>
>
> For this specific test it is not surprising to see these error
> messages. In this test
> we create bpf-output channel on 'ls' process only, but the BPF script
> is triggered
> on all procs (BPF triggering is not related to perf event scheduling).
> Trying to
> output data through 'ls' specific bpf-output channel should fail if
> this 'sys_write'
> is not issued by 'ls' or its children. So it is a correct behavior.
>
> However, I also see them in system wide channel:
>
> # echo "" > /sys/kernel/debug/tracing/trace
> # ./perf record -a -e bpf-output/no-inherit,name=evt/ \
> -e ./test_bpf_output.c/map:channel.event=evt/
> -a
> ^C[ perf record: Woken up 0 times to write data ]
> [ perf record: Captured and wrote 17.534 MB perf.data (264326 samples) ]
> # cat /sys/kernel/debug/tracing/trace | tail
> rs:main Q:Reg-582 [000] d..2 4858.711225: : Error: failed to
> output: -95
> rs:main Q:Reg-582 [000] d..2 4858.711241: : Error: failed to
> output: -95
> gmain-1858 [003] d..2 4858.711436: : Error: failed to
> output: -95
> gmain-1858 [003] d..2 4858.711441: : Error: failed to
> output: -95
> gmain-1858 [003] d..2 4858.711473: : Error: failed to
> output: -95
> rs:main Q:Reg-582 [002] d..2 4858.712215: : Error: failed to
> output: -95
> rs:main Q:Reg-582 [002] d..2 4858.712224: : Error: failed to
> output: -95
> gmain-1858 [003] d..2 4858.712230: : Error: failed to
> output: -95
> rs:main Q:Reg-582 [002] d..2 4858.712235: : Error: failed to
> output: -95
> rs:main Q:Reg-582 [002] d..2 4858.712239: : Error: failed to
> output: -95
>
> System wide events can also be scheduled in and out. If the bpf-output
> events
> are scheduled out, trying to output data through it causes the above
> failure.
> I don't think it is a problem.
>
> Peter, Could you please give some infomation? In which case a system wide
> bpf output channel would be scheduled out?
>
Sorry, I think my brain is not quite well. Actually this is a easy question:
all ENOTSUPP results are generated before PERF_EVENT_IOC_ENABLE or after
PERF_EVENT_IOC_DISABLE. You saw so many failure messages because it is
sys_write,
and perf itself needs it.
So you can simply ignore these messages.
Thank you.
Powered by blists - more mailing lists