On Tue, Nov 30, 2021 at 12:01 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > On Sat, 20 Nov 2021 11:27:35 +0000 > Yafang Shao <laoar.shao@xxxxxxxxx> wrote: > > > diff --git a/include/linux/elfcore-compat.h b/include/linux/elfcore-compat.h > > index e272c3d452ce..54feb64e9b5d 100644 > > --- a/include/linux/elfcore-compat.h > > +++ b/include/linux/elfcore-compat.h > > @@ -43,6 +43,11 @@ struct compat_elf_prpsinfo > > __compat_uid_t pr_uid; > > __compat_gid_t pr_gid; > > compat_pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; > > + /* > > + * The hard-coded 16 is derived from TASK_COMM_LEN, but it can't be > > + * changed as it is exposed to userspace. We'd better make it hard-coded > > + * here. > > Didn't I once suggest having a macro called something like: > > TASK_COMM_LEN_16 ? > > > https://lore.kernel.org/all/20211014221409.5da58a42@xxxxxxxxxxxxxxxx/ Hi Steven, TASK_COMM_LEN_16 is a good idea, but not all hard-coded 16 can be replaced by this macro (which is defined in include/sched.h). For example, the comm[16] in include/uapi/linux/cn_proc.h can't be replaced as it is a uapi header which can't include linux/sched.h. That's why I prefer to keep the hard-coded 16 as-is. There are three options, - option 1 comment on all the hard-coded 16 to explain why it is hard-coded - option 2 replace the hard-coded 16 that can be replaced and comment on the others which can't be replaced. - option 3 replace the hard-coded 16 that can be replaced and specifically define TASK_COMM_LEN_16 in other files which can't include linux/sched.h. Which one do you prefer ? > > > > + */ > > char pr_fname[16]; > > char pr_psargs[ELF_PRARGSZ]; > > }; > > diff --git a/include/linux/elfcore.h b/include/linux/elfcore.h > > index 957ebec35aad..746e081879a5 100644 > > --- a/include/linux/elfcore.h > > +++ b/include/linux/elfcore.h > > @@ -65,6 +65,11 @@ struct elf_prpsinfo > > __kernel_gid_t pr_gid; > > pid_t pr_pid, pr_ppid, pr_pgrp, pr_sid; > > /* Lots missing */ > > + /* > > + * The hard-coded 16 is derived from TASK_COMM_LEN, but it can't be > > + * changed as it is exposed to userspace. We'd better make it hard-coded > > + * here. > > + */ > > char pr_fname[16]; /* filename of executable */ > > char pr_psargs[ELF_PRARGSZ]; /* initial part of arg list */ > > }; -- Thanks Yafang