On Wed, 16 Oct 2024 19:49:15 +0900 "Masami Hiramatsu (Google)" mhiramat@kernel.org wrote:
Overview
This patch set allows user to `poll`(or `select`, `epoll`) on event histogram interface. As you know each event has its own `hist` file which shows histograms generated by trigger action. So user can set a new hist trigger on any event you want to monitor, and poll on the `hist` file until it is updated.
Note: This `hist` is not disabled by tracing_on interface, because that interface only disables `recording`. Thus to monitor events via this interface, user must ensure the tracing_on is enabled, also, set the same "filter" to the hist action.
Thank you,
There are 2 poll events are supported, POLLIN and POLLPRI. POLLIN means that there are any readable update on `hist` file and this event will be flashed only when you call read(). So, this is useful if you want to read the histogram periodically. The other POLLPRI event is for monitoring trace event. Like the POLLIN, this will be returned when the histogram is updated, but you don't need to read() the file and use poll() again.
Note that this waits for histogram update (not event arrival), thus you must set a histogram on the event at first.
Usage
Here is an example usage:
TRACEFS=/sys/kernel/tracing EVENT=$TRACEFS/events/sched/sched_process_free
# setup histogram trigger and enable event echo "hist:key=comm" >> $EVENT/trigger echo 1 > $EVENT/enable
# Wait for update poll pri $EVENT/hist
# Event arrived. echo "process free event is comming" tail $TRACEFS/trace
The 'poll' command is in the selftest patch.
You can take this series also from here;
https://git.kernel.org/pub/scm/linux/kernel/git/mhiramat/linux.git/log/?h=to...
Thank you,
Masami Hiramatsu (Google) (3): tracing/hist: Add poll(POLLIN) support on hist file tracing/hist: Support POLLPRI event for poll on histogram selftests/tracing: Add hist poll() support test
include/linux/trace_events.h | 14 +++ kernel/trace/trace_events.c | 14 +++ kernel/trace/trace_events_hist.c | 100 +++++++++++++++++++- tools/testing/selftests/ftrace/Makefile | 2 tools/testing/selftests/ftrace/poll.c | 74 +++++++++++++++ .../ftrace/test.d/trigger/trigger-hist-poll.tc | 74 +++++++++++++++ 6 files changed, 275 insertions(+), 3 deletions(-) create mode 100644 tools/testing/selftests/ftrace/poll.c create mode 100644 tools/testing/selftests/ftrace/test.d/trigger/trigger-hist-poll.tc
-- Masami Hiramatsu (Google) mhiramat@kernel.org