All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/5] task_struct: extend task comm from 16 to 24 for CONFIG_BASE_FULL
@ 2021-10-13 10:23 Yafang Shao
  2021-10-13 10:23 ` [PATCH v4 1/5] elfcore: use TASK_COMM_LEN instead of 16 in prpsinfo Yafang Shao
                   ` (4 more replies)
  0 siblings, 5 replies; 15+ messages in thread
From: Yafang Shao @ 2021-10-13 10:23 UTC (permalink / raw)
  To: keescook, rostedt, peterz, pmladek, viro, akpm,
	valentin.schneider, mathieu.desnoyers, qiang.zhang, robdclark,
	christian, dietmar.eggemann, mingo, juri.lelli, vincent.guittot,
	bsegall, mgorman, bristot, davem, kuba
  Cc: linux-kernel, Yafang Shao

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


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2021-10-14 13:31 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-13 10:23 [PATCH v4 0/5] task_struct: extend task comm from 16 to 24 for CONFIG_BASE_FULL Yafang Shao
2021-10-13 10:23 ` [PATCH v4 1/5] elfcore: use TASK_COMM_LEN instead of 16 in prpsinfo Yafang Shao
2021-10-13 13:11   ` Steven Rostedt
2021-10-14  1:46     ` Yafang Shao
2021-10-13 10:23 ` [PATCH v4 2/5] connector: use __get_task_comm in proc_comm_connector Yafang Shao
2021-10-13 14:19   ` Steven Rostedt
2021-10-14  1:48     ` Yafang Shao
2021-10-14  2:24       ` Steven Rostedt
2021-10-14  2:42         ` Yafang Shao
2021-10-14  4:50         ` Kees Cook
2021-10-14  9:26           ` Yafang Shao
2021-10-14 13:31             ` Steven Rostedt
2021-10-13 10:23 ` [PATCH v4 3/5] fs/exec: use strscpy instead of strlcpy in __set_task_comm Yafang Shao
2021-10-13 10:23 ` [PATCH v4 4/5] sched.h: extend task comm from 16 to 24 for CONFIG_BASE_FULL Yafang Shao
2021-10-13 10:23 ` [PATCH v4 5/5] kernel/kthread: show a warning if kthread's comm is truncated Yafang Shao

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.