[PATCH 0/5] kthread: increase the size of kthread's comm

From: Yafang Shao
Date: Wed Sep 29 2021 - 07:51:15 EST


When I was implementing a new kthread cfs_migration [1], I found the
comm of it is trucated due to the limitation of TASK_COMM_LEN. After I
checked the other kthreads, I found some of them are also truncated, for
example,

rcu_tasks_kthre
rcu_tasks_rude_
rcu_tasks_trace
ecryptfs-kthrea
vfio-irqfd-clea
ext4-rsv-conver
jbd2/nvme0n1p2-
...

Besides the in-tree kthreads listed above, the out-of-tree kthreads may
also be trucated, for example,

rtase_work_queu
nvidia-modeset/
UVM global queu
UVM deferred re
...

That motivates me to do this improvement.

This patch increases the size of ktread's comm from 16 to 24, which is
the same with workqueue's. After this change, the name of kthread can be
fully displayed in /proc/[pid]/comm, for example,

rcu_tasks_kthread
rcu_tasks_rude_kthread
rcu_tasks_trace_kthread
ecryptfs-kthread
vfio-irqfd-cleanup
ext4-rsv-conversion
jbd2/nvme0n1p2-8
...

Because there're only a few of kthreads, so it won't increase too much
memory consumption.

After this improvement, if the comm of a kthread is still trucated, a
warning will be displayed. Below is the result of my test case -

__kthread_create_on_node:410: comm of pid 14 is truncated from "I-am-a-kthread-with-long-name" to "I-am-a-kthread-with-lon"

[1]. https://lore.kernel.org/lkml/YMmlAP%2FQhE6SWhCF@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/

Yafang Shao (5):
kernel: replace sizeof(task->comm) with TASK_COMM_LEN
kernel/fork: allocate task->comm dynamicly
kernel/sched: improve the BUILD_BUG_ON() in get_task_comm()
kernel: increase the size of kthread's comm
kernel/kthread: show a warning if kthread's comm is still trucated

arch/ia64/kernel/mca.c | 6 +++---
drivers/block/drbd/drbd_main.c | 2 +-
drivers/hwtracing/stm/core.c | 2 +-
drivers/tty/tty_audit.c | 2 +-
fs/exec.c | 5 ++++-
include/linux/sched.h | 6 ++++--
kernel/audit.c | 4 ++--
kernel/auditsc.c | 4 ++--
kernel/capability.c | 4 ++--
kernel/fork.c | 26 ++++++++++++++++++++++++++
kernel/futex.c | 2 +-
kernel/kthread.c | 8 ++++++--
kernel/sys.c | 2 +-
kernel/trace/blktrace.c | 2 +-
security/lsm_audit.c | 4 ++--
security/selinux/selinuxfs.c | 2 +-
security/yama/yama_lsm.c | 2 +-
sound/core/oss/pcm_oss.c | 2 +-
18 files changed, 60 insertions(+), 25 deletions(-)

--
2.17.1