From: Kees Cook <keescook@chromium.org>
To: Michal Hocko <mhocko@suse.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Alexey Dobriyan <adobriyan@gmail.com>,
Lee Duncan <lduncan@suse.com>, Chris Leech <cleech@redhat.com>,
Adam Nichols <adam@grimm-co.com>,
linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org,
linux-hardening@vger.kernel.org
Subject: Re: [PATCH v2] seq_file: Unconditionally use vmalloc for buffer
Date: Tue, 16 Mar 2021 12:08:02 -0700 [thread overview]
Message-ID: <202103161205.B2181BDE38@keescook> (raw)
In-Reply-To: <YFBs202BqG9uqify@dhcp22.suse.cz>
On Tue, Mar 16, 2021 at 09:31:23AM +0100, Michal Hocko wrote:
> On Mon 15-03-21 10:48:51, Kees Cook wrote:
> > The sysfs interface to seq_file continues to be rather fragile, as seen
> > with some recent exploits[1]. Move the seq_file buffer to the vmap area
> > (while retaining the accounting flag), since it has guard pages that
> > will catch and stop linear overflows. This seems justified given that
> > seq_file already uses kvmalloc(), is almost always using a PAGE_SIZE or
> > larger allocation, has allocations are normally short lived, and is not
> > normally on a performance critical path.
>
> I have already objected without having my concerns really addressed.
Sorry, I didn't mean to ignore your comments!
> Your observation that most of buffers are PAGE_SIZE in the vast majority
> cases matches my experience and kmalloc should perform better than
> vmalloc. You should check the most common /proc readers at least.
Yeah, I'm going to build a quick test rig to see some before/after
timings, etc.
> Also this cannot really be done for configurations with a very limited
> vmalloc space (32b for example). Those systems are more and more rare
> but you shouldn't really allow userspace to deplete the vmalloc space.
This sounds like two objections:
- 32b has a small vmalloc space
- userspace shouldn't allow depletion of vmalloc space
I'd be happy to make this 64b only. For the latter, I would imagine
there are other vmalloc-exposed-to-userspace cases, but yes, this would
be much more direct. Is that a problem in practice?
> I would be also curious to see how vmalloc scales with huge number of
> single page allocations which would be easy to trigger with this patch.
Right -- what the best way to measure this (and what would be "too
much")?
--
Kees Cook
next prev parent reply other threads:[~2021-03-16 19:08 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-15 17:48 [PATCH v2] seq_file: Unconditionally use vmalloc for buffer Kees Cook
2021-03-15 18:33 ` Al Viro
2021-03-15 20:43 ` Kees Cook
2021-03-16 7:24 ` Greg Kroah-Hartman
2021-03-16 12:43 ` Al Viro
2021-03-16 12:55 ` Greg Kroah-Hartman
2021-03-16 13:01 ` Michal Hocko
2021-03-16 19:18 ` Kees Cook
2021-03-17 10:44 ` Greg Kroah-Hartman
2021-03-16 8:31 ` Michal Hocko
2021-03-16 19:08 ` Kees Cook [this message]
2021-03-17 12:08 ` Michal Hocko
2021-03-17 13:34 ` Greg Kroah-Hartman
2021-03-17 14:44 ` Michal Hocko
2021-03-17 14:56 ` Greg Kroah-Hartman
2021-03-17 15:20 ` Michal Hocko
2021-03-17 15:38 ` Greg Kroah-Hartman
2021-03-17 15:48 ` Michal Hocko
2021-03-17 21:30 ` Kees Cook
2021-03-18 8:07 ` Greg Kroah-Hartman
2021-03-18 15:51 ` Kees Cook
2021-03-18 17:56 ` Greg Kroah-Hartman
2021-03-19 14:07 ` [seq_file] 5fd6060e50: stress-ng.eventfd.ops_per_sec -49.1% regression kernel test robot
2021-03-19 14:07 ` kernel test robot
2021-03-19 19:31 ` Kees Cook
2021-03-19 19:31 ` Kees Cook
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=202103161205.B2181BDE38@keescook \
--to=keescook@chromium.org \
--cc=adam@grimm-co.com \
--cc=adobriyan@gmail.com \
--cc=akpm@linux-foundation.org \
--cc=cleech@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=lduncan@suse.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-hardening@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mhocko@suse.com \
/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.