On Thu, Oct 14, 2021 at 9:50 PM Mathieu Desnoyers
----- On Oct 14, 2021, at 9:11 AM, Yafang Shao laoar.shao(a)gmail.com wrote:
> On Thu, Oct 14, 2021 at 9:09 PM Mathieu Desnoyers
> <mathieu.desnoyers(a)efficios.com> wrote:
>> ----- On Oct 14, 2021, at 9:05 AM, Yafang Shao laoar.shao(a)gmail.com wrote:
>> >> If it happens that this ABI break is noticed by more than an in-tree
>> >> program, then
>> >> the kernel's ABI rules will require that this trace field size
>> >> This brings
>> >> up once more the whole topic of "Tracepoints ABI" which has
>> >> repeatedly in
>> >> the past.
>> > I will check if any other in-tree tools depends on TASK_COMM_LEN.
>> That's a start, but given this is a userspace ABI, out-of-tree userland
>> tools which depend of this to be fixed-size are also relevant.
> TASK_COMM_LEN isn't defined in include/uapi/ directory, so it seems
> that it isn't the uerspace ABI?
One case where this 16 bytes size is expected by userspace is prctl(2) PR_GET_NAME
the prctl(2) man page says that:
: If the length of the string, including the terminating
: null byte, exceeds 16 bytes, the string is silently truncated.
: The buffer should allow space for up to 16 bytes
: the returned string will be null-terminated.
As the string returned to user space is null-terminated, extending
task comm won't break the prctl(2) user code.
The other case I am referring to is with ftrace and perf:
mount -t tracefs nodev /sys/kernel/tracing
field:char prev_comm; offset:8; size:16; signed:1;
field:char next_comm; offset:40; size:16; signed:1;
Both of those fields expose a fixed-size of 16 bytes.
AFAIK Steven's intent was that by parsing this file, trace viewers could adapt to
changes in the event field layout. Unfortunately, there have been cases where
trace viewers had a hard expectation on the field layout. Hopefully those have
all been fixed a while ago.
I don't have a clear idea what will happen to trace viewers if we
extend task comm.
Steven, do you have any suggestions ?