Linux Trace Kernel
 help / color / mirror / Atom feed
* [GIT PULL] RTLA changes for 7.2
@ 2026-05-29 13:06 Tomas Glozar
  2026-05-29 13:56 ` Steven Rostedt
  0 siblings, 1 reply; 5+ messages in thread
From: Tomas Glozar @ 2026-05-29 13:06 UTC (permalink / raw)
  To: Steven Rostedt
  Cc: Costa Shulyupin, Crystal Wood, LKML, linux-trace-kernel,
	Tomas Glozar

Steven,

The following changes since commit 5200f5f493f79f14bbdc349e402a40dfb32f23c8:

  Linux 7.1-rc4 (2026-05-17 13:59:58 -0700)

are available in the Git repository at:

  https://git.kernel.org/pub/scm/linux/kernel/git/tglozar/linux.git tags/rtla-v7.2

for you to fetch changes up to db956bcf8d681b5a01ebe04c79f6a7b29b9934f9:

  rtla: Document tests in README (2026-05-29 09:40:54 +0200)

----------------------------------------------------------------
RTLA patches for v7.2

- Fix discrepancy in --dump-tasks option

Due to a mistake, rtla-timerlat-hist used the CLI syntax "--dump-task"
instead of the documented "--dump-tasks". Change the option to match
both documentation and the other timerlat tool, rtla-timerlat-top.

- Extend coverage of runtime tests

Cover both top and hist tools in all applicable test cases, add tests
for a few uncovered options, and extend checks for some existing tests.

- Add unit tests for actions

rtla's actions feature is implemented in its source file and contains
non-trivial parsing logic. Cover it with unit tests.

- Stop record trace on interrupt

Fix a bug where an interval exists after receiving a signal in which
the main instance is stopped but the record instance is not, leading to
discrepancies in reported results and sometimes rtla hanging.

- Restore continue flag in actions_perform()

Fix a bug where rtla always continues tracing after hitting a threshold
even if the continue action was triggered just once, and add tests
verifying that the flag is reset properly.

- Migrate command line interface to libsubcmd

Replace rtla's argument parsing using getopt_long() with libsubcmd, used
by perf and objtool, to reuse existing code and auto-generate better
help messages. Extensive unit tests are included to detect regressions.

- Add -A/--aligned option to timerlat tools

Add an option to align timerlat threads, based on the recently
introduced TIMERLAT_ALIGN option of the timerlat tracer, together with
unit tests and documentation.

- Document tests in README

Document how to run unit and runtime tests in rtla's README.txt,
including the dependencies needed to run them.

---

Two of the commits:
- 534d9a93dbff2 tools subcmd: support optarg as separate argument
- da62fc3458462 tools subcmd: allow parsing distinct --opt and --no-opt
do minor changes to libsubcmd code needed for rtla. libsubcmd does not
have a MAINTAINERS entry, but generally follows perf commit message
style, so I also followed that instead of the tracing subsystem style.

The tag was built and tested (make && make unit-tests && sudo make
check) on 7.1-rc5 kernel, the same was also done after test-merge into
next-20260528. No new issues were found.

Signed-off-by: Tomas Glozar <tglozar@redhat.com>

----------------------------------------------------------------
Costa Shulyupin (1):
      tools/rtla: Fix --dump-tasks usage in timerlat

Crystal Wood (1):
      rtla: Stop the record trace on interrupt

Tomas Glozar (24):
      rtla/tests: Cover both top and hist tools where possible
      rtla/tests: Add get_workload_pids() helper
      rtla/tests: Check -c/--cpus thread affinity
      rtla/tests: Use negative match when testing --aa-only
      rtla/tests: Extend timerlat top --aa-only coverage
      rtla/tests: Cover all hist options in runtime tests
      rtla/tests: Add runtime test for -H/--house-keeping
      rtla/tests: Add runtime test for -k and -u options
      rtla/tests: Add runtime tests for -C/--cgroup
      rtla/tests: Add unit tests for actions module
      rtla/actions: Restore continue flag in actions_perform()
      rtla/tests: Add unit test for restoring continue flag
      rtla/tests: Run runtime tests in temporary directory
      rtla/tests: Add runtime tests for restoring continue flag
      rtla: Add libsubcmd dependency
      tools subcmd: support optarg as separate argument
      tools subcmd: allow parsing distinct --opt and --no-opt
      rtla: Parse cmdline using libsubcmd
      rtla/tests: Add unit tests for _parse_args() functions
      rtla/tests: Add unit tests for CLI option callbacks
      rtla/timerlat: Add -A/--aligned CLI option
      rtla/tests: Add unit tests for -A/--aligned option
      Documentation/rtla: Add -A/--aligned option
      rtla: Document tests in README

 Documentation/tools/rtla/common_appendix.txt       |   7 +-
 .../tools/rtla/common_timerlat_options.txt         |  11 +
 tools/lib/subcmd/parse-options.c                   |  63 +-
 tools/lib/subcmd/parse-options.h                   |   4 +
 tools/tracing/rtla/.gitignore                      |   3 +
 tools/tracing/rtla/Makefile                        |  66 +-
 tools/tracing/rtla/README.txt                      |  30 +
 tools/tracing/rtla/src/Build                       |   2 +-
 tools/tracing/rtla/src/actions.c                   |   2 +
 tools/tracing/rtla/src/cli.c                       | 539 +++++++++++++++
 tools/tracing/rtla/src/cli.h                       |   9 +
 tools/tracing/rtla/src/cli_p.h                     | 687 ++++++++++++++++++++
 tools/tracing/rtla/src/common.c                    | 128 +---
 tools/tracing/rtla/src/common.h                    |  36 +-
 tools/tracing/rtla/src/osnoise.c                   | 158 ++++-
 tools/tracing/rtla/src/osnoise.h                   |   6 +
 tools/tracing/rtla/src/osnoise_hist.c              | 221 +------
 tools/tracing/rtla/src/osnoise_top.c               | 200 +-----
 tools/tracing/rtla/src/rtla.c                      |  89 ---
 tools/tracing/rtla/src/timerlat.c                  |  29 +-
 tools/tracing/rtla/src/timerlat.h                  |   8 +-
 tools/tracing/rtla/src/timerlat_hist.c             | 317 +--------
 tools/tracing/rtla/src/timerlat_top.c              | 285 +-------
 tools/tracing/rtla/src/utils.c                     |  28 +-
 tools/tracing/rtla/src/utils.h                     |   9 +-
 tools/tracing/rtla/tests/engine.sh                 |  27 +
 tools/tracing/rtla/tests/hwnoise.t                 |   2 +-
 tools/tracing/rtla/tests/osnoise.t                 |  77 ++-
 .../rtla/tests/scripts/check-cgroup-match.sh       |  17 +
 tools/tracing/rtla/tests/scripts/check-cpus.sh     |   9 +
 .../rtla/tests/scripts/check-housekeeping-cpus.sh  |   4 +
 tools/tracing/rtla/tests/scripts/check-priority.sh |   8 +-
 .../tests/scripts/check-user-kernel-threads.sh     |  16 +
 .../rtla/tests/scripts/lib/get_workload_pids.sh    |  11 +
 tools/tracing/rtla/tests/timerlat.t                | 117 ++--
 tools/tracing/rtla/tests/unit/Build                |   8 +-
 tools/tracing/rtla/tests/unit/Makefile.unit        |   6 +-
 tools/tracing/rtla/tests/unit/actions.c            | 393 +++++++++++
 tools/tracing/rtla/tests/unit/cli_opt_callback.c   | 716 ++++++++++++++++++++
 tools/tracing/rtla/tests/unit/cli_params_assert.h  |  68 ++
 tools/tracing/rtla/tests/unit/osnoise_hist_cli.c   | 557 ++++++++++++++++
 tools/tracing/rtla/tests/unit/osnoise_top_cli.c    | 503 ++++++++++++++
 tools/tracing/rtla/tests/unit/timerlat_hist_cli.c  | 722 +++++++++++++++++++++
 tools/tracing/rtla/tests/unit/timerlat_top_cli.c   | 654 +++++++++++++++++++
 tools/tracing/rtla/tests/unit/unit_tests.c         | 120 +---
 tools/tracing/rtla/tests/unit/utils.c              | 106 +++
 46 files changed, 5591 insertions(+), 1487 deletions(-)
 create mode 100644 tools/tracing/rtla/src/cli.c
 create mode 100644 tools/tracing/rtla/src/cli.h
 create mode 100644 tools/tracing/rtla/src/cli_p.h
 delete mode 100644 tools/tracing/rtla/src/rtla.c
 create mode 100755 tools/tracing/rtla/tests/scripts/check-cgroup-match.sh
 create mode 100755 tools/tracing/rtla/tests/scripts/check-cpus.sh
 create mode 100755 tools/tracing/rtla/tests/scripts/check-housekeeping-cpus.sh
 create mode 100755 tools/tracing/rtla/tests/scripts/check-user-kernel-threads.sh
 create mode 100644 tools/tracing/rtla/tests/scripts/lib/get_workload_pids.sh
 create mode 100644 tools/tracing/rtla/tests/unit/actions.c
 create mode 100644 tools/tracing/rtla/tests/unit/cli_opt_callback.c
 create mode 100644 tools/tracing/rtla/tests/unit/cli_params_assert.h
 create mode 100644 tools/tracing/rtla/tests/unit/osnoise_hist_cli.c
 create mode 100644 tools/tracing/rtla/tests/unit/osnoise_top_cli.c
 create mode 100644 tools/tracing/rtla/tests/unit/timerlat_hist_cli.c
 create mode 100644 tools/tracing/rtla/tests/unit/timerlat_top_cli.c
 create mode 100644 tools/tracing/rtla/tests/unit/utils.c


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] RTLA changes for 7.2
  2026-05-29 13:06 [GIT PULL] RTLA changes for 7.2 Tomas Glozar
@ 2026-05-29 13:56 ` Steven Rostedt
  2026-05-29 20:50   ` Tomas Glozar
  0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2026-05-29 13:56 UTC (permalink / raw)
  To: Tomas Glozar; +Cc: Costa Shulyupin, Crystal Wood, LKML, linux-trace-kernel

On Fri, 29 May 2026 15:06:43 +0200
Tomas Glozar <tglozar@redhat.com> wrote:

> - Fix discrepancy in --dump-tasks option
> 
> Due to a mistake, rtla-timerlat-hist used the CLI syntax "--dump-task"
> instead of the documented "--dump-tasks". Change the option to match
> both documentation and the other timerlat tool, rtla-timerlat-top.

Is there any concern that scripts might be using the old option? 

I wonder if you should keep the old option for backward compatibility,
but do not document that it exists.

-- Steve

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] RTLA changes for 7.2
  2026-05-29 13:56 ` Steven Rostedt
@ 2026-05-29 20:50   ` Tomas Glozar
  2026-05-30  0:02     ` Steven Rostedt
  0 siblings, 1 reply; 5+ messages in thread
From: Tomas Glozar @ 2026-05-29 20:50 UTC (permalink / raw)
  To: Steven Rostedt; +Cc: Costa Shulyupin, Crystal Wood, LKML, linux-trace-kernel

pá 29. 5. 2026 v 15:57 odesílatel Steven Rostedt <rostedt@goodmis.org> napsal:
>
> On Fri, 29 May 2026 15:06:43 +0200
> Tomas Glozar <tglozar@redhat.com> wrote:
>
> > - Fix discrepancy in --dump-tasks option
> >
> > Due to a mistake, rtla-timerlat-hist used the CLI syntax "--dump-task"
> > instead of the documented "--dump-tasks". Change the option to match
> > both documentation and the other timerlat tool, rtla-timerlat-top.
>
> Is there any concern that scripts might be using the old option?

Good point, I'm not aware of any, but it is possible.

>
> I wonder if you should keep the old option for backward compatibility,
> but do not document that it exists.
>

I did not originally plan on keeping the old option - and the commit
does not keep it - but since libsubcmd allows match on prefixes in
general, it actually works in the tag:

$ ./rtla timerlat hist --help --dump-tasks

Usage: rtla timerlat hist [<options>] [-h|--help]
       --dump-tasks      prints the task running on all CPUs if stop
conditions are met (depends on !--no-aa)

$ sudo ./rtla timerlat hist -c 0 -T 1 --dump-task
# RTLA timerlat histogram
# Time unit is microseconds (us)
# Duration:   0 00:00:01
...
Printing CPU tasks:
   [000]              timerlatu/0:66862
   [001]                         :0
   [002]                         :0
   [003]                         :0
   [004]                         :0
   [005]                         :0
   [006]                   auditd:1000
   [007]                         :0
   [008]                         :0
   [009]                         :0
   [010]                         :0
   [011]                         :0
   [012]                         :0
   [013]                         :0

The only build where it does not work would be in the middle of the
pull request, with the --dump-tasks fix but without the libsubcmd
migration patchset.

Anyway, thanks for the feedback.

Tomas


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] RTLA changes for 7.2
  2026-05-29 20:50   ` Tomas Glozar
@ 2026-05-30  0:02     ` Steven Rostedt
  2026-05-30  1:32       ` Crystal Wood
  0 siblings, 1 reply; 5+ messages in thread
From: Steven Rostedt @ 2026-05-30  0:02 UTC (permalink / raw)
  To: Tomas Glozar; +Cc: Costa Shulyupin, Crystal Wood, LKML, linux-trace-kernel

On Fri, 29 May 2026 22:50:31 +0200
Tomas Glozar <tglozar@redhat.com> wrote:
> 
> The only build where it does not work would be in the middle of the
> pull request, with the --dump-tasks fix but without the libsubcmd
> migration patchset.

Great, then we don't need to worry about it.

-- Steve

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [GIT PULL] RTLA changes for 7.2
  2026-05-30  0:02     ` Steven Rostedt
@ 2026-05-30  1:32       ` Crystal Wood
  0 siblings, 0 replies; 5+ messages in thread
From: Crystal Wood @ 2026-05-30  1:32 UTC (permalink / raw)
  To: Steven Rostedt, Tomas Glozar; +Cc: Costa Shulyupin, LKML, linux-trace-kernel

On Fri, 2026-05-29 at 20:02 -0400, Steven Rostedt wrote:
> On Fri, 29 May 2026 22:50:31 +0200
> Tomas Glozar <tglozar@redhat.com> wrote:
> > 
> > The only build where it does not work would be in the middle of the
> > pull request, with the --dump-tasks fix but without the libsubcmd
> > migration patchset.
> 
> Great, then we don't need to worry about it.

...until someone ends up depending on a script that uses some random
prefix that becomes ambiguous in a future update :-P

-Crystal


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-05-30  1:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-29 13:06 [GIT PULL] RTLA changes for 7.2 Tomas Glozar
2026-05-29 13:56 ` Steven Rostedt
2026-05-29 20:50   ` Tomas Glozar
2026-05-30  0:02     ` Steven Rostedt
2026-05-30  1:32       ` Crystal Wood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox