[PATCH v4 0/4] Some new features for the latency tracers

From: Viktor Rosendahl
Date: Fri May 17 2019 - 16:36:47 EST


Hello all,

Changes in v4:

- [PATCH 1/4]:
* Improved support for multiple active trace instances by storing entries
that cannot be notified immediately in a linked list instead of a
single pointer. With multiple instances this could happen.

* Register trace_maxlat_fsnotify_init() with late_initcall_sync().
Previously it was piggy backed on tracer_init_tracefs() and it got
called more than once.

* Added some comments.

- [PATCH 3/4]:
* Some of the code was incorrectly added in the next patch. Improved
commit message.

- [PATCH 4/4]:
* Some code from the previous patch was incorrectly included here.


This series is meant to address two issues with the latency tracing.

The first three patches provide a method to trace latencies that always
occurs very close to each other and to differentiate between them, in spite
of the fact that the latency tracers work in overwrite mode.

[PATCH 1/4] This implement fs notification for tracing_max_latency. It
makes it possible for userspace to detect when a new latency has been
detected.

[PATCH 2/4] This extends the preemptirq_delay_test module so that it can be
used to generate a burst of closely occurring latencies.

[PATCH 3/4] This adds a user space program to the tools directory that
utilizes the fs notification feature and a randomized algorithm to print out
any of the latencies in a burst with approximately equal probability.

The last patch is not directly connected but doesn't apply cleanly on
its own:

[PATCH 4/4] This adds the option console-latency to the trace options. This
makes it possible to enable tracing of console latencies.

best regards,

Viktor

Viktor Rosendahl (4):
ftrace: Implement fs notification for tracing_max_latency
preemptirq_delay_test: Add the burst feature and a sysfs trigger
Add the latency-collector to tools
ftrace: Add an option for tracing console latencies

include/linux/irqflags.h | 21 +
include/trace/events/power.h | 40 +
include/trace/events/sched.h | 40 +
kernel/printk/printk.c | 6 +-
kernel/sched/core.c | 2 +
kernel/sched/idle.c | 2 +
kernel/trace/Kconfig | 6 +-
kernel/trace/preemptirq_delay_test.c | 145 ++-
kernel/trace/trace.c | 168 +++-
kernel/trace/trace.h | 13 +
kernel/trace/trace_hwlat.c | 4 +-
kernel/trace/trace_irqsoff.c | 12 +
tools/Makefile | 14 +-
tools/trace/Makefile | 20 +
tools/trace/latency-collector.c | 1211 ++++++++++++++++++++++++++
15 files changed, 1671 insertions(+), 33 deletions(-)
create mode 100644 tools/trace/Makefile
create mode 100644 tools/trace/latency-collector.c

--
2.17.1