Message ID | 20250228-netcons_current-v2-6-f53ff79a0db2@debian.org (mailing list archive) |
---|---|
State | Accepted |
Commit | dd30ae533242495a724b37066cae1fb03ee6b601 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | netconsole: Add taskname sysdata support | expand |
On Fri, Feb 28, 2025 at 04:50:22AM -0800, Breno Leitao wrote: > This is the core patch for this whole patchset. Add support for > including the current task's name in netconsole's extra data output. > This adds a new append_taskname() function that writes the task name > (from current->comm) into the target's extradata buffer, similar to how > CPU numbers are handled. > > The task name is included when the SYSDATA_TASKNAME field is set, > appearing in the format "taskname=<name>" in the output. This additional > context can help with debugging by showing which task generated each > console message. > > Signed-off-by: Breno Leitao <leitao@debian.org> Reviewed-by: Simon Horman <horms@kernel.org>
diff --git a/drivers/net/netconsole.c b/drivers/net/netconsole.c index 9798b2b409e26..098ea9eb02373 100644 --- a/drivers/net/netconsole.c +++ b/drivers/net/netconsole.c @@ -1179,12 +1179,19 @@ static int append_cpu_nr(struct netconsole_target *nt, int offset) raw_smp_processor_id()); } +static int append_taskname(struct netconsole_target *nt, int offset) +{ + return scnprintf(&nt->extradata_complete[offset], + MAX_EXTRADATA_ENTRY_LEN, " taskname=%s\n", + current->comm); +} /* * prepare_extradata - append sysdata at extradata_complete in runtime * @nt: target to send message to */ static int prepare_extradata(struct netconsole_target *nt) { + u32 fields = SYSDATA_CPU_NR | SYSDATA_TASKNAME; int extradata_len; /* userdata was appended when configfs write helper was called @@ -1192,11 +1199,13 @@ static int prepare_extradata(struct netconsole_target *nt) */ extradata_len = nt->userdata_length; - if (!(nt->sysdata_fields & SYSDATA_CPU_NR)) + if (!(nt->sysdata_fields & fields)) goto out; if (nt->sysdata_fields & SYSDATA_CPU_NR) extradata_len += append_cpu_nr(nt, extradata_len); + if (nt->sysdata_fields & SYSDATA_TASKNAME) + extradata_len += append_taskname(nt, extradata_len); WARN_ON_ONCE(extradata_len > MAX_EXTRADATA_ENTRY_LEN * MAX_EXTRADATA_ITEMS);
This is the core patch for this whole patchset. Add support for including the current task's name in netconsole's extra data output. This adds a new append_taskname() function that writes the task name (from current->comm) into the target's extradata buffer, similar to how CPU numbers are handled. The task name is included when the SYSDATA_TASKNAME field is set, appearing in the format "taskname=<name>" in the output. This additional context can help with debugging by showing which task generated each console message. Signed-off-by: Breno Leitao <leitao@debian.org> --- drivers/net/netconsole.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)