Messages in this thread | | | From | Yafang Shao <> | Subject | [PATCH 0/5] kthread: increase the size of kthread's comm | Date | Wed, 29 Sep 2021 11:50:31 +0000 |
| |
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@hirez.programming.kicks-ass.net/
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
| |