Re: [PATCH v5 2/3] mm/page_owner: add NUMA node filter with nodelist support
From: SeongJae Park
Date: Sat May 09 2026 - 11:35:59 EST
On Sat, 9 May 2026 15:27:22 +0800 "zhen.ni" <zhen.ni@xxxxxxxxxxxx> wrote:
>
>
> 在 2026/5/9 08:44, SeongJae Park 写道:
> > On Thu, 7 May 2026 14:46:42 +0800 Zhen Ni <zhen.ni@xxxxxxxxxxxx> wrote:
[...]
> >> +static ssize_t nid_filter_write(struct file *file,
> >> + const char __user *buf,
> >> + size_t count, loff_t *ppos)
> >> +{
> >> + char *kbuf;
> >> + nodemask_t mask;
> >> + int ret;
> >> +
> >> + /*
> >> + * Limit input size to handle worst-case nodelist (all nodes).
> >> + * Worst case per node: ",NNNNN" (comma + 5-digit node number) = 6 bytes.
> >> + * Formula: 100 bytes overhead + 6 * MAX_NUMNODES
> >
> > What is the 100 bytes overhead?
>
> The 100 bytes is intended as a safety margin, but it's not strictly
> necessary.
> Maybe I should simplify it to just 6 * MAX_NUMNODES?
I wouldn't mind keep having 100 bytes, but I'd suggest to clearly document the
intention if you will do so. But if you also don't think it is necessary, I'm
also up to just removing it.
> >
> >> + */
> >> + if (count > (100 + 6 * MAX_NUMNODES))
> >> + return -EINVAL;
> >> +
> >> + kbuf = kmalloc(count + 1, GFP_KERNEL);
> >> + if (!kbuf)
> >> + return -ENOMEM;
> >
> > Would it make sense to use kmalloc_objs()?
>
> I'll update the code to use
> kmalloc_objs(char, count + 1, GFP_KERNEL)
kmalloc_objs() use GFP_KERNEL by default. It can also understand the type of
the ojbect. So you could kmalloc_objs(*kbuf, count + 1).
>
> Thanks for the review!
I'm happy to help! :)
Thanks,
SJ
[...]