[PATCH V3 0/3] osnoise/timerlat improvements

Daniel Bristot de Oliveira
2023-06-06T15:12:45Z

These three patches are improvements for the osnoise/timerlat tracers,
mainly to support rtla. The first one is a dependency for the -C <cgroup>
command line option to be added to rtla. It is essential to allow
timerlat/osnoise to measure the latencies from the container/cgroup
point of view. The second improves rtla time for saving tracing after
a stop tracing condition on osnoise/hwnoise.

The third patch adds the osnoise/per_cpu/cpu$id/timerlat_fd file
where timerlat expects a pinned user thread to open and read from it.
When the thread reads it, it actually activates timerlat latency
measurement mechanism, so timerlat can be activated from an user-space
thread. Timerlat is also expanded to report the return from user-space
latency when read is called after the first call, so adding another
metric to timerlat, that can either represent the kernel-to-user and
user-to-kernel overhead, or to measure the execution time of any
workload. Details are added to the kernel documentation.

Changes from V2:
- Moved the migration check to a function hooked to the
sched:sched_migration_task tracepoint
- Fixed compilation errors with !CONFIG_TIMERLAT_TRACER (kernel test robot)
- Made osnoise_create_cpu_timerlat_fd static (kernel test robot)
- Link: https://lore.kernel.org/lkml/cover.1684860626.git.bristot@kernel.org/
Changes from V1:
- Added the user-space interface patch
- Link: https://lore.kernel.org/lkml/cover.1683823114.git.bristot@kernel.org/

Daniel Bristot de Oliveira (3):
tracing/osnoise: Switch from PF_NO_SETAFFINITY to migrate_disable
tracing/osnoise: Skip running osnoise if all instances are off
tracing/timerlat: Add user-space interface

Documentation/trace/timerlat-tracer.rst | 78 ++++
kernel/trace/trace_osnoise.c | 477 +++++++++++++++++++++++-
kernel/trace/trace_output.c | 4 +-
3 files changed, 551 insertions(+), 8 deletions(-)

--
2.38.1