[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211013102346.179642-1-laoar.shao@gmail.com>
Date: Wed, 13 Oct 2021 10:23:41 +0000
From: Yafang Shao <laoar.shao@...il.com>
To: keescook@...omium.org, rostedt@...dmis.org, peterz@...radead.org,
pmladek@...e.com, viro@...iv.linux.org.uk,
akpm@...ux-foundation.org, valentin.schneider@....com,
mathieu.desnoyers@...icios.com, qiang.zhang@...driver.com,
robdclark@...omium.org, christian@...uner.io,
dietmar.eggemann@....com, mingo@...hat.com, juri.lelli@...hat.com,
vincent.guittot@...aro.org, bsegall@...gle.com, mgorman@...e.de,
bristot@...hat.com, davem@...emloft.net, kuba@...nel.org
Cc: linux-kernel@...r.kernel.org, Yafang Shao <laoar.shao@...il.com>
Subject: [PATCH v4 0/5] task_struct: extend task comm from 16 to 24 for CONFIG_BASE_FULL
This patchset changes files among many subsystems. I don't know which
tree it should be applied to, so I just base it on Linus's tree.
When I was implementing a new per-cpu kthread cfs_migration, I found the
comm of it "cfs_migration/%u" is truncated due to the limitation of
TASK_COMM_LEN. For example, the comm of the percpu thread on CPU10~19 are
all with the same name "cfs_migration/1", which will confuse the user. This
issue is not critical, because we can get the corresponding CPU from the
task's Cpus_allowed. But for kthreads correspoinding to other hardware
devices, it is not easy to get the detailed device info from task comm,
for example,
jbd2/nvme0n1p2-
xfs-reclaim/sdf
We can also shorten the name to work around this problem, but I find
there are so many truncated kthreads:
rcu_tasks_kthre
rcu_tasks_rude_
rcu_tasks_trace
poll_mpt3sas0_s
ext4-rsv-conver
xfs-reclaim/sd{a, b, c, ...}
xfs-blockgc/sd{a, b, c, ...}
xfs-inodegc/sd{a, b, c, ...}
audit_send_repl
ecryptfs-kthrea
vfio-irqfd-clea
jbd2/nvme0n1p2-
...
We should improve this problem fundamentally.
This patch extends the size of task comm to 24 bytes, which is the
same length with workqueue's, for the CONFIG_BASE_FULL case. And for the
CONFIG_BASE_SMALL case, the size of task comm is still kept as 16 bytes.
After this patchset, the truncated kthreads listed above will be
displayed as:
rcu_tasks_kthread
rcu_tasks_rude_kthread
rcu_tasks_trace_kthread
poll_mpt3sas0_statu
ext4-rsv-conversion
xfs-reclaim/sdf1
xfs-blockgc/sdf1
xfs-inodegc/sdf1
audit_send_reply
ecryptfs-kthread
vfio-irqfd-cleanup
jbd2/nvme0n1p2-8
If the kthread's comm is still truncated, a warning will be printed.
Below is the result of my test case:
truncated kthread comm:I-am-a-kthread-with-lon, pid:14 by 6 characters
Changes since v3:
- fixes -Wstringop-truncation warning reported by kernel test robot
Changes since v2:
- avoid change UAPI code per Kees
- remove the description of out of tree code from commit log per Peter
Changes since v1:
- extend task comm to 24bytes, per Petr
- improve the warning per Petr
- make the checkpatch warning a separate patch
Yafang Shao (5):
elfcore: use TASK_COMM_LEN instead of 16 in prpsinfo
connector: use __get_task_comm in proc_comm_connector
fs/exec: use strscpy instead of strlcpy in __set_task_comm
sched.h: extend task comm from 16 to 24 for CONFIG_BASE_FULL
kernel/kthread: show a warning if kthread's comm is truncated
drivers/connector/cn_proc.c | 5 ++++-
fs/exec.c | 2 +-
include/linux/elfcore-compat.h | 2 +-
include/linux/elfcore.h | 4 ++--
include/linux/sched.h | 4 ++++
kernel/kthread.c | 7 ++++++-
6 files changed, 18 insertions(+), 6 deletions(-)
--
2.17.1
Powered by blists - more mailing lists