adding statements in alias definition as epilogue
Frank Ch. Eigler
fche@redhat.com
Wed Apr 5 20:16:00 GMT 2006
Guang Lei Li <liguangl@cn.ibm.com> writes:
> [...] But you are right, backtrace printing is too slow, we need a
> faster way of getting the backtrace
Unfortunately, even just gathering the PC address history requires
searching through up to several kilobytes of stack frames - that must
be at least 40K cycles all by itself. My guess is that converting the
result to symbol+offset strings is almost as much work again (though
could perhaps be deferred).
> > > probe derived_probe := alias_with_filter_codes {
> > > filter_on = 1
> > > scsi_lun = 2
> > > scsi_dev_major = 3
> > > }
> >
> > This style of usage could be accommodated with explicit code
> > (analogous to "if (target() != pid()) next") instead of alias epilogues.
> [...] But how can you pass in filter_on, scsi_lun & scsi_dev_major?
Like this:
probe derived_probe:= base_alias_without_filter_codes_without_tracing {
if (! (scsi_lun == 2 && scsi_dev_major == 3)) next
base_trace_function (...)
}
But you got me thinking about the alias epilogue option. It would
solve this problem in a nicer way. Anyone with arguments pro/con?
> The newly arguments support in stap could make it, but it seems not
> a good solution in this example.
Whether the numbers are hardcoded in script or pasted from the command
line does not appear to make any difference.
- FChE
More information about the Systemtap
mailing list