[V3,0/3] osnoise/timerlat improvements

Message ID cover.1686063934.git.bristot@kernel.org
Headers
Series osnoise/timerlat improvements |

Message

Daniel Bristot de Oliveira June 6, 2023, 3:12 p.m. UTC
  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(-)