From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Masami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
Cc: Alex Bagehot <ceeaspb@gmail.com>, linux-perf-users@vger.kernel.org
Subject: Re: perf probe Argument list too long
Date: Mon, 2 Nov 2015 22:00:26 -0300 [thread overview]
Message-ID: <20151103010026.GF21609@kernel.org> (raw)
In-Reply-To: <CAHeneC-iMpy4tx35UXdSkLz7WYKx8epajgEpnS=NbfxvnxewTg@mail.gmail.com>
Em Tue, Nov 03, 2015 at 12:50:46AM +0000, Alex Bagehot escreveu:
> Hello,
>
> I get this error with perf probe, :
>
> perf probe -vvv -x /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so
> '_ZN13CollectedHeap24common_mem_allocate_initE11KlassHandlemP6Thread'
>
> probe-definition(0):
> _ZN13CollectedHeap24common_mem_allocate_initE11KlassHandlemP6Thread
> symbol:_ZN13CollectedHeap24common_mem_allocate_initE11KlassHandlemP6Thread
> file:(null) line:0 offset:0 return:0 lazy:(null)
> 0 arguments
> Opening /sys/kernel/debug/tracing/uprobe_events write=1
> Added new event:
> snprintf() failed: -7
> Error: Failed to add events. Reason: Argument list too long (Code: -7)
>
>
> it looks like it's failing here: ./util/probe-event.c
> probe_trace_event__set_name
>
> /* Get an unused new event name */
> ret = get_new_event_name(buf, 64, event,
> namelist, allow_suffix);
Masami, do we really need to cap it at 64 bytes? And would it be
possible to improve that error reporting? I.e. this isn't an "argument
list", right?
> It works with a function 63 chars long not 64.
> Knowing it is the event name erroring, It also works if I give the
> event a short name eg. 'a'. I don't understand why it creates 3 probes
> though?
Masami? You gave this explanation at some point, but I forgot, aliases?
Inlining?
Would be interesting to warn the user why multiple probes are being
created, no?
Alex, you can try using wildcards in this case, i.e.:
perf record -e probe_libjvm:a* your-workload
That if you don't have other probes in place starting with the same
prefix :-\
- Arnaldo
> objdump -t /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so|grep
> \.text|awk 'length($NF) == 63 {print length($NF)" "$NF}'|head -1
>
> 63 _ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread
>
>
>
> perf probe -vvv -x /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so
> '_ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread'
>
> probe-definition(0):
> _ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread
> symbol:_ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread
> file:(null) line:0 offset:0 return:0 lazy:(null)
> 0 arguments
> Opening /sys/kernel/debug/tracing/uprobe_events write=1
> Added new event:
> Writing event: p:probe_libjvm/_ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so:0x325a20
> probe_libjvm:_ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread
> (on _ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
>
> You can now use it in all perf tools, such as:
>
> perf record -e probe_libjvm:_ZL34bulk_revoke_or_rebias_at_safepointP7oopDescbbP10JavaThread
> -aR sleep 1
>
>
>
> perf probe -vvv -x /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so
> 'a=_Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_'
>
> probe-definition(0):
> a=_Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_
> symbol:_Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_
> file:(null) line:0 offset:0 return:0 lazy:(null)
> 0 arguments
> Opening /sys/kernel/debug/tracing/uprobe_events write=1
> Added new events:
> Writing event: p:probe_libjvm/a
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so:0x8ca940
> probe_libjvm:a (on
> _Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_ in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
> Writing event: p:probe_libjvm/a_1
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so:0x9c07fe
> probe_libjvm:a_1 (on
> _Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_ in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
> Writing event: p:probe_libjvm/a_2
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so:0x9c25c1
> probe_libjvm:a_2 (on
> _Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_ in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
>
> You can now use it in all perf tools, such as:
>
> perf record -e probe_libjvm:a_2 -aR sleep 1
>
>
> perf probe -l
>
> probe_libjvm:a (on
> _Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_ in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
> probe_libjvm:a_1 (on
> _Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_ in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
> probe_libjvm:a_2 (on
> _Z17do_write_prologueIP17GlobalTraceBufferEvR15JfrBufferWriterT_ in
> /opt/jdk1.8.0_60/jre/lib/amd64/server/libjvm.so)
>
>
>
> uname -a
>
> Linux vagrant-ubuntu-trusty-64 4.3.0-999-generic #201510112200 SMP Mon
> Oct 12 02:01:41 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
>
>
> Thanks,
>
> Alex
> --
> To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2015-11-03 1:00 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-03 0:50 perf probe Argument list too long Alex Bagehot
2015-11-03 1:00 ` Arnaldo Carvalho de Melo [this message]
2015-11-03 3:20 ` 平松雅巳 / HIRAMATU,MASAMI
2015-11-03 11:22 ` Alex Bagehot
2015-11-03 11:30 ` Milian Wolff
2015-11-03 15:38 ` 平松雅巳 / HIRAMATU,MASAMI
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=20151103010026.GF21609@kernel.org \
--to=acme@kernel.org \
--cc=ceeaspb@gmail.com \
--cc=linux-perf-users@vger.kernel.org \
--cc=masami.hiramatsu.pt@hitachi.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.