Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

tracing: Have syscall trace events show "0x" for values greater than 10

Currently the syscall trace events show each value as hexadecimal, but
without adding "0x" it can be confusing:

sys_write(fd: 4, buf: 0x55c4a1fa9270, count: 44)

Looks like the above write wrote 44 bytes, when in reality it wrote 68
bytes.

Add a "0x" for all values greater or equal to 10 to remove the ambiguity.
For values less than 10, leave off the "0x" as that just adds noise to the
output.

Also change the iterator to check if "i" is nonzero and print the ", "
delimiter at the start, then adding the logic to the trace_seq_printf() at
the end.

Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Takaya Saeki <takayas@google.com>
Cc: Tom Zanussi <zanussi@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ian Rogers <irogers@google.com>
Cc: Douglas Raillard <douglas.raillard@arm.com>
Link: https://lore.kernel.org/20250923130713.764558957@kernel.org
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>

+9 -3
+9 -3
kernel/trace/trace_syscalls.c
··· 153 153 if (trace_seq_has_overflowed(s)) 154 154 goto end; 155 155 156 + if (i) 157 + trace_seq_puts(s, ", "); 158 + 156 159 /* parameter types */ 157 160 if (tr && tr->trace_flags & TRACE_ITER_VERBOSE) 158 161 trace_seq_printf(s, "%s ", entry->types[i]); 159 162 160 163 /* parameter values */ 161 - trace_seq_printf(s, "%s: %lx%s", entry->args[i], 162 - trace->args[i], 163 - i == entry->nb_args - 1 ? "" : ", "); 164 + if (trace->args[i] < 10) 165 + trace_seq_printf(s, "%s: %lu", entry->args[i], 166 + trace->args[i]); 167 + else 168 + trace_seq_printf(s, "%s: 0x%lx", entry->args[i], 169 + trace->args[i]); 164 170 } 165 171 166 172 trace_seq_putc(s, ')');