All of lore.kernel.org
 help / color / mirror / Atom feed
From: Mike Kravetz <mike.kravetz@oracle.com>
To: "Guilherme G. Piccoli" <gpiccoli@canonical.com>, linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org, jay.vosburgh@canonical.com,
	kernel@gpiccoli.net
Subject: Re: [PATCH] hugetlb: Add nohugepages parameter to prevent hugepages creation
Date: Mon, 14 Oct 2019 11:25:31 -0700	[thread overview]
Message-ID: <c145a020-5ae0-e3a5-0251-199618cfaa9e@oracle.com> (raw)
In-Reply-To: <20191011223955.1435-1-gpiccoli@canonical.com>

On 10/11/19 3:39 PM, Guilherme G. Piccoli wrote:
> Currently there are 2 ways for setting HugeTLB hugepages in kernel; either
> users pass parameters on kernel command-line or they can write to sysfs
> files (which is effectively the sysctl way).
> 
> Kdump kernels won't benefit from hugepages - in fact it's quite opposite,
> it may be the case hugepages on kdump kernel can lead to OOM if kernel
> gets unable to allocate demanded pages due to the fact the preallocated
> hugepages are consuming a lot of memory.
> 
> This patch proposes a new kernel parameter to prevent the creation of
> HugeTLB hugepages - we currently don't have a way to do that. We can
> even have kdump scripts removing the kernel command-line options to
> set hugepages, but it's not straightforward to prevent sysctl/sysfs
> configuration, given it happens in later boot or anytime when the
> system is running.
> 
> Signed-off-by: Guilherme G. Piccoli <gpiccoli@canonical.com>
> ---
> 
> About some decisions took in this patch:
> 
> * early_param() was used because I couldn't find a way to enforce
> parameters' ordering when using __setup(), and we need nohugepages
> processed before all other hugepages options.

I don't know much about early_param(), so I will assume this works as you
describe.  However, a quick grep shows hugepage options for ia64 also with
early_param.

> * The return when sysctl handler is prevented to progress due to
> nohugepages is -EINVAL, but could be changed; I've just followed
> present code there, but I'm OK changing that if we have suggestions.

It looks like you only have short circuited/prevented nr_hugepages via
sysfs/sysctl.  Theoretically, one could set nr_overcommit_hugepages and
still allocate hugetlb pages.  So, if you REALLY want to shut things down
you need to stop this as well.

There is already a macro hugepages_supported() that can be set by arch
specific code.  I wonder how difficult it would be to 'overwrite' the
macro if nohugepages is specified.  Perhaps just a level of naming
indirection.  This would use the existing code to prevent all hugetlb usage.

It seems like there may be some discussion about 'the right' way to
do kdump.  I can't add to that discussion, but if such an option as
nohugepages is needed, I can help.
-- 
Mike Kravetz

  parent reply	other threads:[~2019-10-14 18:25 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-10-11 22:39 [PATCH] hugetlb: Add nohugepages parameter to prevent hugepages creation Guilherme G. Piccoli
2019-10-11 23:35 ` Qian Cai
2019-10-11 23:41   ` Guilherme Piccoli
2019-10-11 23:41     ` Guilherme Piccoli
2019-10-11 23:52     ` Qian Cai
2019-10-12  0:41       ` Guilherme Piccoli
2019-10-12  0:41         ` Guilherme Piccoli
2019-10-15 12:18         ` Michal Hocko
2019-10-15 13:58           ` Guilherme G. Piccoli
2019-10-15 14:05             ` Michal Hocko
2019-10-15 14:09               ` Guilherme G. Piccoli
2019-10-18 18:29                 ` Mike Kravetz
2019-10-24 16:21                   ` Guilherme G. Piccoli
2019-10-14 18:25 ` Mike Kravetz [this message]
2019-10-15  4:50   ` Guilherme G. Piccoli

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=c145a020-5ae0-e3a5-0251-199618cfaa9e@oracle.com \
    --to=mike.kravetz@oracle.com \
    --cc=gpiccoli@canonical.com \
    --cc=jay.vosburgh@canonical.com \
    --cc=kernel@gpiccoli.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    /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.