From: Michal Hocko <mhocko@suse.com>
To: Ammar Faizi <ammarfaizi2@gnuweeb.org>
Cc: Oscar Salvador <osalvador@suse.de>,
Andrew Morton <akpm@linux-foundation.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
Linux Memory Management Mailing List <linux-mm@kvack.org>,
Vlastimil Babka <vbabka@suse.cz>,
Eric Dumazet <edumazet@google.com>,
Waiman Long <longman@redhat.com>,
Suren Baghdasaryan <surenb@google.com>,
Marco Elver <elver@google.com>,
Andrey Konovalov <andreyknvl@gmail.com>,
Alexander Potapenko <glider@google.com>
Subject: Re: [PATCH v2 3/3] mm,page_owner: Filter out stacks by a threshold counter
Date: Mon, 5 Sep 2022 13:31:02 +0200 [thread overview]
Message-ID: <YxXd9qXnIutFOQZY@dhcp22.suse.cz> (raw)
In-Reply-To: <573c4049045a5ff342ff9998c69dfae7-ammarfaizi2@gnuweeb.org>
On Mon 05-09-22 17:51:37, Ammar Faizi wrote:
> On Mon, 5 Sep 2022 05:10:12 +0200, Oscar Salvador wrote:
> > +static int page_owner_threshold_show(struct seq_file *p, void *v)
> > +{
> > + seq_printf(p, "%lu\n", threshold);
>
> Remove a slipped leading 0x20 space here (before seq_printf()).
>
> > + return 0;
> > +}
> > +
> > +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);
> > + if (!kbuf)
> > + return -ENOMEM;
> > +
> > + if (copy_from_user(kbuf, buf, count)) {
> > + ret = -EFAULT;
> > + goto out;
> > + }
> > +
> > + kbuf[count - 1] = '\0';
> > +
> > + ret = kstrtoul(kbuf, 10, &threshold);
> > +
> > +out:
> > + kfree(kbuf);
> > + return ret ? ret : count;
> > +}
>
> Still the same comment on this, kmalloc() is not really needed here.
> Capping the size to PAGE_SIZE (usually 4K) is too big. `unsinged long`
> is 64-bit at most, this means the max val is 18446744073709551615
> (20 chars). The lifetime of @kbuf is very short as well, using a stack
> allocated array of chars is fine?
>
> Untested:
>
> static ssize_t write_page_owner_threshold(struct file *file, const char __user *buf,
> size_t count, loff_t *pos)
> {
> char kbuf[21];
> int ret;
>
> count = min_t(size_t, count, sizeof(kbuf));
> if (copy_from_user(kbuf, buf, count))
> return -EFAULT;
>
> kbuf[count - 1] = '\0';
> ret = kstrtoul(kbuf, 10, &threshold);
> return ret ? ret : count;
> }
Isn't there a proc_dointvec counterpart for debugfs?
--
Michal Hocko
SUSE Labs
next prev parent reply other threads:[~2022-09-05 11:31 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-09-05 3:10 [PATCH v2 0/3] page_owner: print stacks and their counter Oscar Salvador
2022-09-05 3:10 ` [PATCH v2 1/3] lib/stackdepot: Add a refcount field in stack_record Oscar Salvador
2022-09-05 20:57 ` Andrey Konovalov
2022-09-06 3:54 ` Oscar Salvador
2022-09-10 22:33 ` Andrey Konovalov
2022-09-19 15:01 ` Vlastimil Babka
2022-09-05 3:10 ` [PATCH v2 2/3] mm, page_owner: Add page_owner_stacks file to print out only stacks and their counter Oscar Salvador
2022-09-05 12:57 ` Marco Elver
2022-09-05 13:00 ` Marco Elver
2022-09-06 7:43 ` Oscar Salvador
2022-09-06 8:35 ` Marco Elver
2022-09-07 4:00 ` Oscar Salvador
2022-09-07 7:14 ` Marco Elver
2022-09-08 3:32 ` Oscar Salvador
2022-09-08 5:31 ` Marco Elver
2022-09-05 22:20 ` kernel test robot
2022-09-05 3:10 ` [PATCH v2 3/3] mm,page_owner: Filter out stacks by a threshold counter Oscar Salvador
2022-09-05 10:51 ` Ammar Faizi
2022-09-05 11:31 ` Michal Hocko [this message]
2022-09-05 11:54 ` Ammar Faizi
2022-09-05 12:02 ` Michal Hocko
2022-09-05 12:42 ` Ammar Faizi
2022-09-19 15:23 ` Vlastimil Babka
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=YxXd9qXnIutFOQZY@dhcp22.suse.cz \
--to=mhocko@suse.com \
--cc=akpm@linux-foundation.org \
--cc=ammarfaizi2@gnuweeb.org \
--cc=andreyknvl@gmail.com \
--cc=edumazet@google.com \
--cc=elver@google.com \
--cc=glider@google.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=longman@redhat.com \
--cc=osalvador@suse.de \
--cc=surenb@google.com \
--cc=vbabka@suse.cz \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.