Re: [PATCH v11 2/4] mm/page_owner: add NUMA node filter

From: Andrew Morton

Date: Thu Jun 25 2026 - 16:04:55 EST


On Thu, 25 Jun 2026 15:27:57 -0400 "Zi Yan" <ziy@xxxxxxxxxx> wrote:

> >
> > /*
> > * Maximum input length for filter commands:
> > - * 32: print_mode command max length is 17 ("mode=stack_handle").
> > + * - 32: print_mode command max length is 17 ("mode=stack_handle")
> > + * with sufficient buffer
> > + * - 6 * MAX_NUMNODES: worst case for nid list
> > + * Worst case per node: ",NNNNN" (comma + 5-digit node number) = 6 bytes
> > */
> > - max_input_len = 32;
> > + max_input_len = 32 + 6 * MAX_NUMNODES;
> >
> > if (count > max_input_len)
> > return -EINVAL;
>
> Hi Andrew,
>
> This needs to be fixed as well.

yep, I did that in the obvious way:

@@ -934,14 +961,20 @@ static ssize_t page_owner_write(struct f
char *token;
int ret;
struct page_owner_filter_state *state = file->private_data;
+ nodemask_t new_nid_filter;
+ bool new_nid_filter_enabled;
enum page_owner_print_mode new_print_mode;
unsigned long flags;

/*
* Maximum input length for filter commands:
- * 32: print_mode command max length is 17 ("mode=stack_handle").
+ * - 32: print_mode command max length is 17 ("mode=stack_handle")
+ * with sufficient buffer
+ * - 6 * MAX_NUMNODES: worst case for nid list
+ * Worst case per node: ",NNNNN" (comma + 5-digit node number) = 6
+ * bytes
*/
- if (count > 32)
+ if (count > 32 + 6 * MAX_NUMNODES)
return -EINVAL;

kbuf = memdup_user_nul(buf, count);