Messages in this thread | | | From | Brendan Gregg <> | Date | Wed, 22 Jul 2015 11:29:47 -0700 | Subject | Re: [PATCH v9 00/22] tracing: 'hist' triggers |
| |
G'Day Tom,
On Thu, Jul 16, 2015 at 10:22 AM, Tom Zanussi <tom.zanussi@linux.intel.com> wrote: > > This is v9 of the 'hist triggers' patchset. > [...]
I've browsed the functionality (sorry, catching up), and it looks like this will solve a number of common problems. But it seems tantalizingly close to solving a few more. These may already be on your future todo list.
A) CPU stack profiling
Kernel stacktrace as a key will be hugely useful; is there a way to enable this for a sampling profile? (eg, what perf record -F 99 does). I take CPU profiles daily, and would prefer to aggregate stacks in-kernel. Also, would like user stacktrace as a key (even if it's just the hex).
B) Key buckets
Eg, imagine:
echo 'hist:keys=common_pid.execname,count.log2:val=count' > /sys/kernel/debug/tracing/events/syscalls/sys_enter_read/trigger
to get a log2 bucketized histogram of syscall read request size. Same for any value where using the value as a key gets too verbose, and you just want a rough look at the distribution. (Would make it more readable if it could also be sorted by the log2 value.)
C) Latency as a bucket key
With kprobes, we could then have a log2 histogram of any function call latency, collected efficiently. (There's already the function timers in ftrace, which I'm using from function_graph with filters sets to only match the target function.)
... Those are the other common use cases, that the hist functionality seemed suited for. Beyond that gets more custom, and we can use eBPF.
Brendan
| |