Message ID | 20220107025212.177040-1-xiujianfeng@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [-next] sched: Use struct_size() helper in task_numa_group() | expand |
On Fri, 7 Jan 2022 10:52:12 +0800 Xiu Jianfeng <xiujianfeng@huawei.com> wrote: > Make use of struct_size() helper instead of an open-coded calculation. > There is no functional change in this patch. > > Link: https://github.com/KSPP/linux/issues/160 > Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com> > --- > kernel/sched/fair.c | 7 ++----- > 1 file changed, 2 insertions(+), 5 deletions(-) > > diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c > index 095b0aa378df..265e37be0c92 100644 > --- a/kernel/sched/fair.c > +++ b/kernel/sched/fair.c > @@ -2437,11 +2437,8 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags, > int i; > > if (unlikely(!deref_curr_numa_group(p))) { > - unsigned int size = sizeof(struct numa_group) + > - NR_NUMA_HINT_FAULT_STATS * > - nr_node_ids * sizeof(unsigned long); > - > - grp = kzalloc(size, GFP_KERNEL | __GFP_NOWARN); > + grp = kzalloc(struct_size(grp, faults, NR_NUMA_HINT_FAULT_STATS * nr_node_ids), > + GFP_KERNEL | __GFP_NOWARN); I just replied yesterday. Keep the size variable. The above is too much for a kzalloc(). -- Steve > if (!grp) > return; >
在 2022/1/7 22:36, Steven Rostedt 写道: > On Fri, 7 Jan 2022 10:52:12 +0800 > Xiu Jianfeng <xiujianfeng@huawei.com> wrote: > >> Make use of struct_size() helper instead of an open-coded calculation. >> There is no functional change in this patch. >> >> Link: https://github.com/KSPP/linux/issues/160 >> Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com> >> --- >> kernel/sched/fair.c | 7 ++----- >> 1 file changed, 2 insertions(+), 5 deletions(-) >> >> diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c >> index 095b0aa378df..265e37be0c92 100644 >> --- a/kernel/sched/fair.c >> +++ b/kernel/sched/fair.c >> @@ -2437,11 +2437,8 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags, >> int i; >> >> if (unlikely(!deref_curr_numa_group(p))) { >> - unsigned int size = sizeof(struct numa_group) + >> - NR_NUMA_HINT_FAULT_STATS * >> - nr_node_ids * sizeof(unsigned long); >> - >> - grp = kzalloc(size, GFP_KERNEL | __GFP_NOWARN); >> + grp = kzalloc(struct_size(grp, faults, NR_NUMA_HINT_FAULT_STATS * nr_node_ids), >> + GFP_KERNEL | __GFP_NOWARN); > I just replied yesterday. Keep the size variable. The above is too much for > a kzalloc(). thanks, I may missed your reply mail, I'll modify and resend this patch. > > -- Steve > > > > >> if (!grp) >> return; >> > .
On Fri, Jan 07, 2022 at 10:52:12AM +0800, Xiu Jianfeng wrote: > Make use of struct_size() helper instead of an open-coded calculation. > There is no functional change in this patch. Why ?!? This makes something that was trivial to read into something weird.
On Mon, 10 Jan 2022 17:06:30 +0100 Peter Zijlstra <peterz@infradead.org> wrote: > On Fri, Jan 07, 2022 at 10:52:12AM +0800, Xiu Jianfeng wrote: > > Make use of struct_size() helper instead of an open-coded calculation. > > There is no functional change in this patch. > > Why ?!? This makes something that was trivial to read into something > weird. Please take his last patch (which only modifies the update to size) and makes it more robust. https://lore.kernel.org/all/20220110012354.144394-1-xiujianfeng@huawei.com/ Which is much easier to read. We should really replace all open coded struct_size() code. -- Steve
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 095b0aa378df..265e37be0c92 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2437,11 +2437,8 @@ static void task_numa_group(struct task_struct *p, int cpupid, int flags, int i; if (unlikely(!deref_curr_numa_group(p))) { - unsigned int size = sizeof(struct numa_group) + - NR_NUMA_HINT_FAULT_STATS * - nr_node_ids * sizeof(unsigned long); - - grp = kzalloc(size, GFP_KERNEL | __GFP_NOWARN); + grp = kzalloc(struct_size(grp, faults, NR_NUMA_HINT_FAULT_STATS * nr_node_ids), + GFP_KERNEL | __GFP_NOWARN); if (!grp) return;
Make use of struct_size() helper instead of an open-coded calculation. There is no functional change in this patch. Link: https://github.com/KSPP/linux/issues/160 Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com> --- kernel/sched/fair.c | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-)