Em Fri, Jul 22, 2022 at 04:22:12PM -0400, Steven Rostedt escreveu: > [ Added the user space perf folks ] > > On Fri, 22 Jul 2022 18:45:30 +0000 > Chuck Lever III <chuck.lever@xxxxxxxxxx> wrote: > > > >> +TRACE_EVENT(xs_data_ready, > > >> + TP_PROTO( > > >> + const struct rpc_xprt *xprt > > >> + ), > > >> + > > >> + TP_ARGS(xprt), > > >> + > > >> + TP_STRUCT__entry( > > >> + __sockaddr(addr, xprt->addrlen) > > >> + ), > > >> + > > >> + TP_fast_assign( > > >> + __assign_sockaddr(addr, &xprt->addr, xprt->addrlen); > > >> + ), > > >> + > > >> + TP_printk("peer=%pISpc", __get_sockaddr(addr)) > > > > > > NACK. Please resolve and store the string up front instead of storing > > > the sockaddr. Most versions of perf can't resolve those kernel-specific > > > %p printks and just end up barfing on them. > > > > Interesting. We added get_sockaddr() to avoid this issue in > > trace-cmd. Sounds like perf needs to be fixed up too, or > > maybe this is another case of having an old libtraceevent? > > > > Meanwhile, I can revert this back to the old way of handling > > presentation addresses. > > > > Hmm, I thought that perf now uses the external libtraceevent. > > Perhaps it hasn't been updated to the latest release that has the ability > to parse this. > > Maybe just install > > git://git.kernel.org/pub/scm/libs/libtrace/libtraceevent.git To use it one has to use: make -C tools/perf LIBTRACEEVENT_DYNAMIC=1 Then we get it linked with libtraceevent-devel: $ ldd ~/bin/perf | grep traceevent libtraceevent.so.1 => /lib64/libtraceevent.so.1 (0x00007faa50f93000) $ Perhaps it'd be better to check if libtracevent-devel is installed and use it, falling back to tools/lib/traceevent/ and then adding a warning that the in-tree codebase is being used? - Arnaldo