From: Yafang Shao <laoar.shao@gmail.com>
To: akpm@linux-foundation.org, keescook@chromium.org,
rostedt@goodmis.org, mathieu.desnoyers@efficios.com,
arnaldo.melo@gmail.com, pmladek@suse.com, peterz@infradead.org,
viro@zeniv.linux.org.uk, valentin.schneider@arm.com,
qiang.zhang@windriver.com, robdclark@chromium.org,
christian@brauner.io, dietmar.eggemann@arm.com, mingo@redhat.com,
juri.lelli@redhat.com, vincent.guittot@linaro.org,
davem@davemloft.net, kuba@kernel.org, ast@kernel.org,
daniel@iogearbox.net, andrii@kernel.org, kafai@fb.com,
songliubraving@fb.com, yhs@fb.com, john.fastabend@gmail.com,
kpsingh@kernel.org, dennis.dalessandro@cornelisnetworks.com,
mike.marciniszyn@cornelisnetworks.com, dledford@redhat.com,
jgg@ziepe.ca
Cc: linux-rdma@vger.kernel.org, netdev@vger.kernel.org,
bpf@vger.kernel.org, linux-perf-users@vger.kernel.org,
linux-fsdevel@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, oliver.sang@intel.com,
lkp@intel.com, Yafang Shao <laoar.shao@gmail.com>,
Andrii Nakryiko <andrii.nakryiko@gmail.com>
Subject: [PATCH v6 11/12] sched.h: extend task comm from 16 to 24
Date: Mon, 25 Oct 2021 08:33:14 +0000 [thread overview]
Message-ID: <20211025083315.4752-12-laoar.shao@gmail.com> (raw)
In-Reply-To: <20211025083315.4752-1-laoar.shao@gmail.com>
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 by extending comm size to
24 bytes. task_struct is growing rather regularly by 8 bytes.
After this change, 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
As we have converted all the unsafe copy of task comm to the safe one,
this change won't make any trouble to the kernel or the in-tree tools.
The safe one and unsafe one of comm copy as follows,
Unsafe Safe
strlcpy strscpy_pad
strncpy strscpy_pad
bpf_probe_read_kernel bpf_probe_read_kernel_str
bpf_core_read_str
bpf_get_current_comm
perf_event__prepare_comm
prctl(2)
Regarding the possible risk it may take to the out-of-tree user tools, if
the user tools get the task comm through kernel API like prctl(2),
bpf_get_current_comm() and etc, the tools still work well after this
change. While If the user tools get the task comm through direct string
copy, it must make sure the copied string should be with a nul terminator.
Signed-off-by: Yafang Shao <laoar.shao@gmail.com>
Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
Cc: Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>
Cc: Andrii Nakryiko <andrii.nakryiko@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Cc: Kees Cook <keescook@chromium.org>
Cc: Petr Mladek <pmladek@suse.com>
---
include/linux/sched.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 124538db792c..490d12eabe44 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -279,7 +279,7 @@ struct task_group;
* BPF programs.
*/
enum {
- TASK_COMM_LEN = 16,
+ TASK_COMM_LEN = 24,
};
extern void scheduler_tick(void);
--
2.17.1
next prev parent reply other threads:[~2021-10-25 8:35 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-25 8:33 [PATCH v6 00/12] extend task comm from 16 to 24 Yafang Shao
2021-10-25 8:33 ` [PATCH v6 01/12] fs/exec: make __set_task_comm always set a nul ternimated string Yafang Shao
2021-10-25 21:07 ` Kees Cook
2021-10-26 1:48 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 02/12] fs/exec: make __get_task_comm always get a nul terminated string Yafang Shao
2021-10-25 21:08 ` Kees Cook
2021-10-26 1:49 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 03/12] drivers/connector: make connector comm always nul ternimated Yafang Shao
2021-10-25 21:14 ` Kees Cook
2021-10-26 1:50 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 04/12] drivers/infiniband: make setup_ctxt always get a nul terminated task comm Yafang Shao
2021-10-25 18:20 ` Dennis Dalessandro
2021-10-25 21:16 ` Kees Cook
2021-10-26 1:52 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 05/12] elfcore: make prpsinfo " Yafang Shao
2021-10-25 21:18 ` Kees Cook
2021-10-26 1:56 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 06/12] samples/bpf/test_overhead_kprobe_kern: make it adopt to task comm size change Yafang Shao
2021-10-25 21:20 ` Kees Cook
2021-10-25 8:33 ` [PATCH v6 07/12] samples/bpf/offwaketime_kern: make sched_switch tracepoint args adopt to " Yafang Shao
2021-10-25 21:21 ` Kees Cook
2021-10-26 1:56 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 08/12] tools/bpf/bpftool/skeleton: make it adopt to task " Yafang Shao
2021-10-25 21:24 ` Kees Cook
2021-10-26 2:18 ` Yafang Shao
2021-10-26 13:12 ` Steven Rostedt
2021-10-26 13:55 ` Yafang Shao
2021-10-26 14:02 ` Yafang Shao
2021-10-26 16:09 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 09/12] tools/perf/test: make perf test " Yafang Shao
2021-10-25 21:26 ` Kees Cook
2021-10-25 8:33 ` [PATCH v6 10/12] tools/testing/selftests/bpf: make it " Yafang Shao
2021-10-25 21:29 ` Kees Cook
2021-10-26 2:21 ` Yafang Shao
2021-10-25 8:33 ` Yafang Shao [this message]
2021-10-25 21:30 ` [PATCH v6 11/12] sched.h: extend task comm from 16 to 24 Kees Cook
2021-10-26 2:22 ` Yafang Shao
2021-10-25 8:33 ` [PATCH v6 12/12] kernel/kthread: show a warning if kthread's comm is truncated Yafang Shao
2021-10-25 21:35 ` Kees Cook
2021-10-26 2:23 ` Yafang Shao
2021-10-27 20:10 ` Petr Mladek
2021-10-28 1:42 ` Yafang Shao
2021-10-29 7:44 ` Yafang Shao
2021-10-25 18:10 ` [PATCH v6 00/12] extend task comm from 16 to 24 Alexei Starovoitov
2021-10-25 21:05 ` Steven Rostedt
2021-10-25 21:06 ` Kees Cook
2021-10-26 10:35 ` Petr Mladek
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20211025083315.4752-12-laoar.shao@gmail.com \
--to=laoar.shao@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=andrii.nakryiko@gmail.com \
--cc=andrii@kernel.org \
--cc=arnaldo.melo@gmail.com \
--cc=ast@kernel.org \
--cc=bpf@vger.kernel.org \
--cc=christian@brauner.io \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=dennis.dalessandro@cornelisnetworks.com \
--cc=dietmar.eggemann@arm.com \
--cc=dledford@redhat.com \
--cc=jgg@ziepe.ca \
--cc=john.fastabend@gmail.com \
--cc=juri.lelli@redhat.com \
--cc=kafai@fb.com \
--cc=keescook@chromium.org \
--cc=kpsingh@kernel.org \
--cc=kuba@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-rdma@vger.kernel.org \
--cc=lkp@intel.com \
--cc=mathieu.desnoyers@efficios.com \
--cc=mike.marciniszyn@cornelisnetworks.com \
--cc=mingo@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=oliver.sang@intel.com \
--cc=peterz@infradead.org \
--cc=pmladek@suse.com \
--cc=qiang.zhang@windriver.com \
--cc=robdclark@chromium.org \
--cc=rostedt@goodmis.org \
--cc=songliubraving@fb.com \
--cc=valentin.schneider@arm.com \
--cc=vincent.guittot@linaro.org \
--cc=viro@zeniv.linux.org.uk \
--cc=yhs@fb.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).