All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Dave Jones <davej@redhat.com>
Cc: Joe Perches <joe@perches.com>, Dave Chinner <david@fromorbit.com>,
	viro@zeniv.linux.org.uk,
	Linux Kernel <linux-kernel@vger.kernel.org>,
	David Rientjes <rientjes@google.com>
Subject: Re: suppress page allocation failure warnings from sys_listxattr
Date: Wed, 28 Mar 2012 19:02:11 -0700	[thread overview]
Message-ID: <20120328190211.4ac8a653.akpm@linux-foundation.org> (raw)
In-Reply-To: <20120329015059.GA22697@redhat.com>

On Wed, 28 Mar 2012 21:50:59 -0400 Dave Jones <davej@redhat.com> wrote:

> On Wed, Mar 28, 2012 at 06:46:02PM -0700, Andrew Morton wrote:
> 
>  > Could.  There was some discussion last year and implementations were
>  > tossed around.
>  > 
>  > I'm a bit apprehensive - kernel code is supposed to be robust, and
>  > large allocations are not robust and vmalloc() is crappy.
> 
> Can you expand on crappy ?

It's expensive on a per-call basis and can end up failing due to
internal fragmentation of vmalloc()'s virtually-addressed arena.  I
don't think I've ever seen a report of anyone getting a vmalloc()
failure due to the fragmentation issue, so it's largely theoretical. 
But of course, the more we use it (especially for long-lived
allocations), the greater the risk becomes.  Mainly to 32-bit machines,
I assume.

> Also, what happens if something allocates
> and sits on a bunch of vmalloc'd memory ? would we start seeing oom kills ?

vmalloc() would fail.

> (thinking of the context of my fuzzing tool where a bunch of instances could
>  feasibly call these syscalls and not sit on huge amounts per thread, but
>  collectively...  I'm wondering if it could be provoked into killing
>  processes I don't own)

umm, if you wanted to deliberately trigger a vmalloc() failure then I
guess a good approach would be to locate a vmalloc() site which can
persist beyond the syscall (modprobe is a good one!) then exercise it
in a way so that there are no N-byte holes left in the arena, then
trigger an N-byte vmalloc().

  reply	other threads:[~2012-03-29  1:58 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-13 18:22 suppress page allocation failure warnings from sys_listxattr Dave Jones
2012-03-13 21:33 ` Colin Walters
2012-03-27 22:51 ` Andrew Morton
2012-03-28  0:15   ` Dave Jones
2012-03-28  0:26     ` Andrew Morton
2012-03-28  7:13       ` David Rientjes
2012-03-28  4:39     ` Dave Chinner
2012-03-28 23:47       ` Andrew Morton
2012-03-29  0:54         ` Dave Jones
2012-03-29  1:10           ` Andrew Morton
2012-03-29  1:28             ` Joe Perches
2012-03-29  1:46               ` Andrew Morton
2012-03-29  1:50                 ` Dave Jones
2012-03-29  2:02                   ` Andrew Morton [this message]
2012-03-29  2:08                     ` Dave Jones
2012-03-29  2:28                       ` Andrew Morton
2012-03-29  3:00                         ` Dave Jones
2012-03-29 21:09                           ` Andrew Morton
2012-03-29 21:13                             ` Dave Jones
2012-03-29  5:35                 ` Dave Chinner

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=20120328190211.4ac8a653.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=davej@redhat.com \
    --cc=david@fromorbit.com \
    --cc=joe@perches.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=rientjes@google.com \
    --cc=viro@zeniv.linux.org.uk \
    /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.