This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: relayfs changes needed
- From: "Gui,Jian" <guij at cn dot ibm dot com>
- To: "Martin Hunt" <hunt at redhat dot com>, <systemtap at sources dot redhat dot com>
- Cc: "Tom Zanussi" <zanussi at us dot ibm dot com>
- Date: Thu, 13 Apr 2006 21:26:24 +0800
- Subject: Re: relayfs changes needed
- References: <1144874806.3029.67.camel@dragon>
So if this is the case, I'm wondering if maybe the right thing to do is
to remove all sequence numbers, formatting, and merging in the transport
layer for relayfs and simply let it run full-speed dumping data into
per-cpu files. This gives the highest performance and moves the
responsibility for any merging or other postprocessing to the
application layer, where it can be done most efficiently. So some script
(or program) will invoke systemtap, and on exit, take the binary data
files and process them. Systemtap will not timestamp, sequence, or
otherwise process the data.
How about adding an option to control this?
e.g.
"stap -b -K a.stp" will write to relayfs buffer directly, remove all
sequence numbers and keep the pre-cpu files;
"stap -b a.stp" will also write to relayfs buffer directly, but
still keep current plain ascii sequencing scheme and merge pre-cpu files
to probe.out as it does now.
I think it can keep the convenience of current sequencing method
in cases where ascii tracing is good enough, and also keep the
performance advantage of relayfs.