[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20251225080216.2196411-1-atomlin@atomlin.com>
Date: Thu, 25 Dec 2025 03:02:15 -0500
From: Aaron Tomlin <atomlin@...mlin.com>
To: rostedt@...dmis.org,
mhiramat@...nel.org,
mark.rutland@....com,
mathieu.desnoyers@...icios.com,
corbet@....net
Cc: sean@...e.io,
linux-kernel@...r.kernel.org,
linux-trace-kernel@...r.kernel.org,
linux-doc@...r.kernel.org
Subject: [v2 PATCH 0/1] tracing: Add bitmask-list option for human-readable bitmask display
Hi Steve,
Add support for displaying bitmasks in human-readable list format (e.g.,
0,2-5,7) in addition to the default hexadecimal bitmap representation.
This is particularly useful when tracing CPU masks and other large
bitmasks where individual bit positions are more meaningful than their
hexadecimal encoding.
When the "bitmask-list" option is enabled, the printk "%*pbl" format
specifier is used to render bitmasks as comma-separated ranges, making
trace output easier to interpret for complex CPU configurations and
large bitmask values.
This iteration incorporates the use of iter->tmp_seq to ensure the
implementation is robust, instance-aware, and free from buffer contention
or duplication issues.
Please let me know your thoughts.
Changes since v1 [1]:
- Introduce new helper trace_seq_bitmask_list() (Steven Rostedt)
- Use iter->tmp_seq as a scratchpad to prevent buffer collisions and
duplication
- Update trace_print_bitmask_seq() signature to accept trace_iterator
instead of trace_seq
- Add declaration for trace_seq_bitmask_list() and provide necessary stub
definitions
- Update __get_bitmask and __get_rel_bitmask macros to pass iter to the
bitmask helper
- Implement instance-aware bitmask formatting using iter->tmp_seq as a
scratchpad to prevent buffer collisions and duplication
[1]: https://lore.kernel.org/lkml/20251223035622.2084081-1-atomlin@atomlin.com/
Aaron Tomlin (1):
tracing: Add bitmask-list option for human-readable bitmask display
Documentation/trace/ftrace.rst | 9 +++++++
include/linux/trace_events.h | 8 +++---
include/linux/trace_seq.h | 12 ++++++++-
include/trace/stages/stage3_trace_output.h | 4 +--
kernel/trace/trace.h | 1 +
kernel/trace/trace_output.c | 30 +++++++++++++++++++---
kernel/trace/trace_seq.c | 29 ++++++++++++++++++++-
7 files changed, 82 insertions(+), 11 deletions(-)
--
2.51.0
Powered by blists - more mailing lists