#!/usr/bin/env bpftrace
/* 
reference: https://github.com/bpftrace/bpftrace/blob/master/man/adoc/bpftrace.adoc
prepare: yum install bpftrace
example: ./glhist.bt rpc_poll_msg
*/

uprobe:/usr/lib64/liblstack.so:$1
{
    @t_start[tid] = nsecs;
}

uretprobe:/usr/lib64/liblstack.so:$1
{
    @t_dur[tid] = nsecs - @t_start[tid];
    @t_count[tid] = count();
    if (@t_dur[tid] < 1000000000) {
        // lhist(int64 n, int64 min, int64 max, int64 step)
        @t_hist[tid] = lhist(@t_dur[tid], 0, 4000, 100);
    }
}