Hi Brendan,

Thanks for the data.

On 04/13/2015 10:49 PM, Brendan Gregg wrote:
G'Day Hemant,

Thanks for testing; here's how I compiled node.js:

# apt-get install -y systemtap-sdt-dev            # provides "dtrace"
# git clone --depth 1 https://github.com/joyent/node
# cd node
# ./configure --with-dtrace
# make

Thanks, I was able to see the error in my case too.
Will look into this as to why its failing to record on these using perf record -e "%node:gc__done", even after it creates an entry into the uprobe_events file :

# cat /sys/kernel/debug/tracing/uprobe_events
p:node/gc__done /home/hemant/node/out/Release/node:0x000000000081d354

node readelf:

# readelf -n node

Notes at offset 0x00000254 with length 0x00000020:
   Owner                 Data size    Description
   GNU                  0x00000010    NT_GNU_ABI_TAG (ABI version tag)
     OS: Linux, ABI: 2.6.24

Notes at offset 0x00000274 with length 0x00000024:
   Owner                 Data size    Description
   GNU                  0x00000014    NT_GNU_BUILD_ID (unique build ID 
bitstring)
     Build ID: 85dd5ef00ffde124f220b94c8a2b552d9274a89f

Notes at offset 0x00c45fd8 with length 0x000004e4:
   Owner                 Data size    Description
   stapsdt              0x0000003c    NT_STAPSDT (SystemTap probe descriptors)
     Provider: node
     Name: gc__start
     Location: 0x0000000000bf7894, Base: 0x0000000000f252de, Semaphore:
0x0000000001245fa8
     Arguments: 4@%esi 4@%edx 8@%rdi
   stapsdt              0x0000003a    NT_STAPSDT (SystemTap probe descriptors)
     Provider: node
     Name: gcstart
     Location: 0x0000000000bf7895, Base: 0x0000000000f252de, Semaphore:
0x0000000001245faa
     Arguments: 4@%esi 4@%edx 8@%rdi
   stapsdt              0x0000003b    NT_STAPSDT (SystemTap probe descriptors)
     Provider: node
     Name: gc__done
     Location: 0x0000000000bf78a4, Base: 0x0000000000f252de, Semaphore:
0x0000000001245fac
     Arguments: 4@%esi 4@%edx 8@%rdi
   stapsdt              0x0000005c    NT_STAPSDT (SystemTap probe descriptors)
[...etc...]

(the "gcstart" probe is one I added to test the underscore theory.)

On a separate issue, all the SDT markers here are using semaphore. And there is no support for markers with semaphores currently. Here is some old discussion on this:
https://sourceware.org/ml/systemtap/2013-q3/msg00236.html

We need to discuss this issue in more detail and find out a way to support those too. So, even if the error wasn't being shown with the current patchset, perf wouldn't record any hit on the markers.

Here's also the event files:

# ls /sys/kernel/debug/tracing/events/node/
enable        gc__start_11  gc__start_2  gcstart_5    http__server__request
filter        gcstart_1_1   gcstart_2    gc__start_6  http__server__request_1
gcstart       gc__start_12  gc__start_3  gcstart_6    http__server__request_2
gc__start     gc__start_13  gcstart_3    gc__start_7  http__server__request_3
gc__start_1   gc__start_14  gc__start_4  gcstart_7    http__server__request_4
gcstart_1     gc__start_15  gcstart_4    gc__start_8  net__server__connection
gc__start_10  gc__start_16  gc__start_5  gc__start_9  net__server__connection_1

This is after several iterations of --add and --del. Something seems
to be going wrong there. Thanks,

This is because perf is able to make an entry into the uprobe_events file, but since its throwing an error just after this, its not deleting that entry from the uprobe_events (which will delete the corresponding events from /sys/kernel/debug/tracing/events/node too).
Will certainly look into this.

[SNIP]
--
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


--
Thanks,
Hemant Kumar

--
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

Reply via email to