lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20251121124646.199804-1-tglozar@redhat.com>
Date: Fri, 21 Nov 2025 13:46:46 +0100
From: Tomas Glozar <tglozar@...hat.com>
To: Steven Rostedt <rostedt@...dmis.org>
Cc: Costa Shulyupin <costa.shul@...hat.com>,
	Crystal Wood <crwood@...hat.com>,
	Ivan Pravdin <ipravdin.official@...il.com>,
	John Kacur <jkacur@...hat.com>,
	LKML <linux-kernel@...r.kernel.org>,
	Linux Trace Kernel <linux-trace-kernel@...r.kernel.org>,
	Tomas Glozar <tglozar@...hat.com>
Subject: [GIT PULL v2] RTLA updates for v6.19

Hi Steven,

Please use this amended tag for the merge window in place of the old one. The
diff between rtla-v6.19-v2 and rtla-v6.19 is empty, it is just the tweak of the
commit messages and a note about a merge conflict.

Thanks,
Tomas

The following changes since commit 0d5077c73aceb51ef10d096160dd62a11db2f3e4:

  MAINTAINERS: Add Tomas Glozar as a maintainer to RTLA tool (2025-11-14 12:24:41 -0500)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/tglozar/linux.git/ tags/rtla-v6.19-v2

for you to fetch changes up to 3138df6f0cd04a75f8efa5b5270ba56d00a84ae6:

  rtla/timerlat: Exit top main loop on any non-zero wait_retval (2025-11-21 10:30:27 +0100)

----------------------------------------------------------------
RTLA patches for v6.19

Fixes and minor cleanups for RTLA, targetting v6.19 via
linux-trace tools/for-next:

- Add for_each_monitored_cpu() helper

  In multiple places, RTLA tools iterate over the list of CPUs running
  tracer threads.

  Use single helper instead of repeating the for/if combination.

- Remove unused variable option_index in argument parsing

  RTLA tools use getopt_long() for argument parsing. For its last
  argument, an unused variable "option_index" is passed.

  Remove the variable and pass NULL to getopt_long() to shorten
  the naturally long parsing functions, and make them more readable.

- Fix unassigned nr_cpus after code consolidation

  In recent code consolidation, timerlat tool cleanup, previously
  implemented separately for each tool, was moved to a common function
  timerlat_free().

  The cleanup relies on nr_cpus being set. This was not done in the new
  function, leaving the variable uninitialized.

  Initialize the variable properly, and remove silencing of compiler
  warning for uninitialized variables.

- Stop tracing on user latency in BPF mode

  Despite the name, rtla-timerlat's -T/--thread option sets timerlat's
  stop_tracing_total_us option, which also stops tracing on
  return-from-user latency, not only on thread latency.

  Implement the same behavior also in BPF sample collection stop tracing
  handler to avoid a discrepancy and restore correspondence of behavior
  with the equivalent option of cyclictest.

- Fix threshold actions always triggering

  A bug in threshold action logic caused the action to execute even
  if tracing did not stop because of threshold.

  Fix the logic to stop correctly.

- Fix few minor issues in tests

  Extend tests that were shown to need it to 5s, fix osnoise test
  calling timerlat by mistake, and use new, more reliable output
  checking in timerlat's "top stop at failed action" test.

- Do not print usage on argument parsing error

  RTLA prints the entire usage message on encountering errors in
  argument parsing, like a malformed CPU list.

  The usage message has gotten too long. Instead of printing it,
  use newly added fatal() helper function to simply exit with
  the error message, excluding the usage.

- Fix unintuitive -C/--cgroup interface

  "-C cgroup" and "--cgroup cgroup" are invalid syntax, despite that
  being a common way to specify an option with argument. Moreover,
  using them fails silently and no cgroup is set.

  Create new helper function to unify the handling of all such options
  and allow all of:

  -Xsomething
  -X=something
  -X something

  as well as the equivalent for the long option.

- Fix -a overriding -t argument filename

  Fix a bug where -a following -t custom_file.txt overrides the custom
  filename with the default timerlat_trace.txt.

- Stop tracing correctly on multiple events at once

  In some race scenarios, RTLA BPF sample collection might send multiple
  stop tracing events via the BPF ringbuffer at once.

  Compare the number of events for != 0 instead of == 1 to cover for
  this scenario and stop tracing properly.

The tag was tested on both a non-RT-tuned and an RT-tuned machine, and
no issues were found besides known cases of the flakiness of tests for
stack dump and auto-analysis, which rely on correct order of events.

The patchset mostly consists of fixes originally targetting one of
the v6.18-rcs rather than linux-next and the v6.19 merge window; one
of them is even Cc: stable. The delay was caused by maintainership
handover of RTLA.

CONFLICTS: The patch "rtla: Fix -C/--cgroup interface" has a minor
rename and context conflict with patches 96b546c241b1
("Documentation/rtla: rename common_xxx.rst files to common_xxx.txt")
and 198fcc7cb832 ("Documentation/rtla: Mention default priority"),
which were picked earlier by Jonathan Corbet's linux-docs tree.

v2:
- Fix Fixes: tags containing 11 characters instead of 12 for commit
"rtla/tests: Fix osnoise test calling timerlat" and commit
"rtla/tests: Extend action tests to 5s".

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

----------------------------------------------------------------
Costa Shulyupin (8):
      tools/rtla: Add for_each_monitored_cpu() helper
      tools/rtla: Remove unused optional option_index
      tools/rtla: Fix unassigned nr_cpus
      tools/rtla: Add fatal() and replace error handling pattern
      tools/rtla: Replace timerlat_top_usage("...") with fatal("...")
      tools/rtla: Replace timerlat_hist_usage("...") with fatal("...")
      tools/rtla: Replace osnoise_top_usage("...") with fatal("...")
      tools/rtla: Replace osnoise_hist_usage("...") with fatal("...")

Crystal Wood (2):
      rtla/tests: Don't rely on matching ^1ALL
      rtla/timerlat: Exit top main loop on any non-zero wait_retval

Ivan Pravdin (2):
      rtla: Fix -C/--cgroup interface
      rtla: Fix -a overriding -t argument

Tomas Glozar (4):
      rtla/timerlat_bpf: Stop tracing on user latency
      tools/rtla: Fix --on-threshold always triggering
      rtla/tests: Extend action tests to 5s
      rtla/tests: Fix osnoise test calling timerlat

 Documentation/tools/rtla/common_options.rst |   2 +-
 tools/tracing/rtla/Makefile.rtla            |   2 +-
 tools/tracing/rtla/src/common.c             |  24 +++--
 tools/tracing/rtla/src/common.h             |   4 +
 tools/tracing/rtla/src/osnoise_hist.c       | 136 +++++++++----------------
 tools/tracing/rtla/src/osnoise_top.c        | 106 +++++++-------------
 tools/tracing/rtla/src/timerlat.bpf.c       |   3 +
 tools/tracing/rtla/src/timerlat.c           |  12 +--
 tools/tracing/rtla/src/timerlat_hist.c      | 148 +++++++++-------------------
 tools/tracing/rtla/src/timerlat_top.c       | 116 ++++++++--------------
 tools/tracing/rtla/src/timerlat_u.c         |  12 +--
 tools/tracing/rtla/src/utils.c              |  41 ++++++++
 tools/tracing/rtla/src/utils.h              |   2 +
 tools/tracing/rtla/tests/osnoise.t          |   6 +-
 tools/tracing/rtla/tests/timerlat.t         |   6 +-
 15 files changed, 247 insertions(+), 373 deletions(-)


Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ