All of lore.kernel.org
 help / color / mirror / Atom feed
From: Yafang Shao <laoar.shao@gmail.com>
To: Kees Cook <keescook@chromium.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Steven Rostedt <rostedt@goodmis.org>,
	Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
	Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com>,
	Petr Mladek <pmladek@suse.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Al Viro <viro@zeniv.linux.org.uk>,
	Valentin Schneider <valentin.schneider@arm.com>,
	Qiang Zhang <qiang.zhang@windriver.com>,
	robdclark <robdclark@chromium.org>,
	christian <christian@brauner.io>,
	Dietmar Eggemann <dietmar.eggemann@arm.com>,
	Ingo Molnar <mingo@redhat.com>,
	Juri Lelli <juri.lelli@redhat.com>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	David Miller <davem@davemloft.net>,
	Jakub Kicinski <kuba@kernel.org>,
	Alexei Starovoitov <ast@kernel.org>,
	Daniel Borkmann <daniel@iogearbox.net>,
	Andrii Nakryiko <andrii@kernel.org>, Martin Lau <kafai@fb.com>,
	Song Liu <songliubraving@fb.com>, Yonghong Song <yhs@fb.com>,
	john fastabend <john.fastabend@gmail.com>,
	KP Singh <kpsingh@kernel.org>,
	dennis.dalessandro@cornelisnetworks.com,
	mike.marciniszyn@cornelisnetworks.com, dledford@redhat.com,
	jgg@ziepe.ca, linux-rdma@vger.kernel.org,
	netdev <netdev@vger.kernel.org>, bpf <bpf@vger.kernel.org>,
	"linux-perf-use." <linux-perf-users@vger.kernel.org>,
	linux-fsdevel@vger.kernel.org, Linux MM <linux-mm@kvack.org>,
	LKML <linux-kernel@vger.kernel.org>,
	kernel test robot <oliver.sang@intel.com>,
	kbuild test robot <lkp@intel.com>,
	Andrii Nakryiko <andrii.nakryiko@gmail.com>
Subject: Re: [PATCH v6 11/12] sched.h: extend task comm from 16 to 24
Date: Tue, 26 Oct 2021 10:22:54 +0800	[thread overview]
Message-ID: <CALOAHbDp9zW+mr+_ZrWLNWP4aeqa+z_JBhJjQe=c+WT0qXGbhQ@mail.gmail.com> (raw)
In-Reply-To: <202110251429.DD44ED7B76@keescook>

On Tue, Oct 26, 2021 at 5:30 AM Kees Cook <keescook@chromium.org> wrote:
>
> On Mon, Oct 25, 2021 at 08:33:14AM +0000, Yafang Shao wrote:
> > 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,
> >  };
>
> I suspect this should be kept in sync with the tools/ copy of sched.h
> (i.e. we may need to keep the TASK_COMM_LEN_16 around in the kernel tree
> too.)
>

Sure. I will change it.

> >
> >  extern void scheduler_tick(void);
> > --
> > 2.17.1
> >
>
> --
> Kees Cook



-- 
Thanks
Yafang

  reply	other threads:[~2021-10-26  2:23 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 ` [PATCH v6 11/12] sched.h: extend task comm from 16 to 24 Yafang Shao
2021-10-25 21:30   ` Kees Cook
2021-10-26  2:22     ` Yafang Shao [this message]
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='CALOAHbDp9zW+mr+_ZrWLNWP4aeqa+z_JBhJjQe=c+WT0qXGbhQ@mail.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 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.