Re: [PATCH 3/3] mm,page_owner: Filter out stacks by a threshold counter

From: Oscar Salvador
Date: Thu Sep 01 2022 - 23:36:40 EST


On Thu, Sep 01, 2022 at 03:31:51PM +0700, Ammar Faizi wrote:
> On 9/1/22 11:42 AM, Oscar Salvador wrote:> +static ssize_t read_page_owner_threshold(struct file *file, char __user *buf,
> > + kbuf = kmalloc(count, GFP_KERNEL);
> > + if (!kbuf)
> > + return ENOMEM;
>
> Missing a negative sign, return -ENOMEM.

Will fix.

> > +static ssize_t write_page_owner_threshold(struct file *file, const char __user *buf,
> > + size_t count, loff_t *pos)
> > +{
> > + char *kbuf;
> > + int ret = 0;
> > +
> > + count = min_t(size_t, count, PAGE_SIZE);
> > + kbuf = kmalloc(count, GFP_KERNEL);
>
> This looks overestimating to me. For unsigned long, on a 64-bit system
> has max val 18446744073709551615 (20 chars).
>
> You can use stack a allocated local variable with length 21. No need
> to use kmalloc(). The same way with the read() op.

Probably could do that, but I'll go with Michal's option and will use
seq_file.

Thanks!


--
Oscar Salvador
SUSE Labs