On Sat, Apr 11, 2015 at 7:13 PM, Brendan Gregg <[email protected]> wrote: > G'Day, > > I was just trying Hemant Kumar's user SDT patch > (http://lwn.net/Articles/618956/); anyone else tried it recently? I > applied it to 4.0.0-rc6, and it creates instrumentation, but doesn't > record the probes. > > This works (it finds the Node.js probes): > > # ./perf sdt-cache --dump > /home/bgregg-testtest/node-standard/out/Release/node: > %node:net__server__connection > %node:net__stream__end > %node:net__socket__read > %node:net__socket__write > %node:http__server__request > %node:http__server__response > %node:http__client__request > %node:http__client__response > %node:gc__done > %node:gc__start > > But I can't "perf list" or record them: > > # ./perf record -e '%node:http__server__request' -aR > invalid or unsupported event: '%node:http__server__request' > Run 'perf list' for a list of valid events > [...] > > stap works: > > # /root/systemtap-2.8/bin/stap -e 'probe > process("/home/bgregg-testtest/node-standard/out/Release/node").mark("http__server__request") > { println("hit"); }' > hit > hit > > Brendan
Some more digging... So a simple C program with a DTRACE_PROBE1() works, where the marker ends up being "%tick:loop": # ./perf record -e '%tick:loop' -a -g [...] ^C [ perf record: Woken up 1 times to write data ] [ perf record: Captured and wrote 0.334 MB perf.data (2 samples) ] But the %node markers don't work (eg, "%node:gc__start"). Maybe the presence of underscores is breaking it? By adding some debug statements, I dug this message out of yyparse(), which was failing: yyparse() yymsgbuf: syntax error, unexpected PE_NAME, expecting $end Brendan -- To unsubscribe from this list: send the line "unsubscribe linux-perf-users" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
