mbox series

[V7,0/9] osnoise: Support multiple instances (for RTLA)

Message ID cover.1635452903.git.bristot@kernel.org (mailing list archive)
Headers show
Series osnoise: Support multiple instances (for RTLA) | expand

Message

Daniel Bristot de Oliveira Oct. 28, 2021, 9:29 p.m. UTC
Currently, osnoise and timerlat run only on a single instance only. To lift
this limitation, this series adds support for parallel instances of the
same tracer. For example, making it possible to run one osnoise instance
for the tracer output and another for a set of tracepoints.

This patchset is the kernel dependencies for RTLA. It was
being sent along with RTLA [1], but we split the kernel and
user-space patch sets.

Steve, feel free to drop the last two if they break anything.

[1] RTLA: An interface for osnoise/timerlat tracers:
    https://lore.kernel.org/lkml/cover.1635284863.git.bristot@kernel.org/

Changes from v6:
  - Fix compilation problems for the case in which osnoise
    enabled, but timerlat is not (Steven)
  - Remove ifdefs from inside functions (Steven)

Changes that happened while in the RTLA patchset:
  - Fix comment on start_per_cpu_kthreads() (Steven)
  - Fix msg log on patch 1
  - Add comments about the barrier need for trace_nmi_enter/exit
  - Fix RCU usage in osnoise_unregister_instance() (Steven/Paul)
  - Add lockdep checks in osnoise_unregister/unregister_instance()
    (Steven/Paul)
  - Improve the explanation about the multi instances support (Steven)

Daniel Bristot de Oliveira (9):
  trace/osnoise: Do not follow tracing_cpumask
  trace/osnoise: Improve comments about barrier need for NMI callbacks
  trace/osnoise: Split workload start from the tracer start
  trace/osnoise: Use start/stop_per_cpu_kthreads() on
    osnoise_cpus_write()
  trace/osnoise: Support a list of trace_array *tr
  trace/osnoise: Remove TIMERLAT ifdefs from inside functions
  trace/osnoise: Allow multiple instances of the same tracer
  trace/osnoise: Remove STACKTRACE ifdefs from inside functions
  trace/osnoise: Remove PREEMPT_RT ifdefs from inside functions

 kernel/trace/trace_osnoise.c | 607 ++++++++++++++++++++++++-----------
 1 file changed, 424 insertions(+), 183 deletions(-)

Comments

Steven Rostedt Oct. 29, 2021, 2:41 a.m. UTC | #1
On Thu, 28 Oct 2021 23:29:28 +0200
Daniel Bristot de Oliveira <bristot@kernel.org> wrote:

> Currently, osnoise and timerlat run only on a single instance only. To lift
> this limitation, this series adds support for parallel instances of the
> same tracer. For example, making it possible to run one osnoise instance
> for the tracer output and another for a set of tracepoints.
> 
> This patchset is the kernel dependencies for RTLA. It was
> being sent along with RTLA [1], but we split the kernel and
> user-space patch sets.
> 
> Steve, feel free to drop the last two if they break anything.
> 
> [1] RTLA: An interface for osnoise/timerlat tracers:
>     https://lore.kernel.org/lkml/cover.1635284863.git.bristot@kernel.org/
> 

Much better.

The only thing I would recommend now, is to write selftests to test
both osnoise and timerlat tracers. Note, this should be a separate
patch set.

-- Steve