From: victora <victora@linux.vnet.ibm.com>
To: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Victor Aoqui <victora@br.ibm.com>,
linux-kernel@vger.kernel.org, linuxppc-dev@lists.ozlabs.org,
mpe@ellerman.id.au
Subject: Re: [PATCH] powerpc/mm: Implemented default_hugepagesz verification for powerpc
Date: Wed, 05 Jul 2017 13:03:57 -0300 [thread overview]
Message-ID: <e5ebc15347db59703d9499ea6962927b@linux.vnet.ibm.com> (raw)
In-Reply-To: <1f549637-773a-868c-effd-5614e85aa892@linux.vnet.ibm.com>
Em 2017-07-05 01:26, Aneesh Kumar K.V escreveu:
> On Tuesday 04 July 2017 01:35 AM, Victor Aoqui wrote:
>> Implemented default hugepage size verification (default_hugepagesz=)
>> in order to allow allocation of defined number of pages (hugepages=)
>> only for supported hugepage sizes.
>>
>> Signed-off-by: Victor Aoqui <victora@br.ibm.com>
>> ---
>> arch/powerpc/mm/hugetlbpage.c | 15 +++++++++++++++
>> 1 file changed, 15 insertions(+)
>>
>> diff --git a/arch/powerpc/mm/hugetlbpage.c
>> b/arch/powerpc/mm/hugetlbpage.c
>> index a4f33de..464e72e 100644
>> --- a/arch/powerpc/mm/hugetlbpage.c
>> +++ b/arch/powerpc/mm/hugetlbpage.c
>> @@ -797,6 +797,21 @@ static int __init hugepage_setup_sz(char *str)
>> }
>> __setup("hugepagesz=", hugepage_setup_sz);
>>
>> +static int __init default_hugepage_setup_sz(char *str)
>> +{
>> + unsigned long long size;
>> +
>> + size = memparse(str, &str);
>> +
>> + if (add_huge_page_size(size) != 0) {
>> + hugetlb_bad_size();
>> + pr_err("Invalid default huge page size
>> specified(%llu)\n", size);
>> + }
>> +
>> + return 1;
>> +}
>> +__setup("default_hugepagesz=", default_hugepage_setup_sz);
>
> isn't that a behavior change in what we have now ? . Right now if size
> specified is not supported, we fallback to HPAGE_SIZE.
Yes, it is. However, is this a correct behavior? If we specify an
unsupported value, for example default_hugepagesz=1M and hugepages=1000,
1M will be ignored and 1000 pages of 16M (arch default) will be
allocated. This could lead to non-expected out of of memory/performance
issue.
>
> mm/hugetlb.c
>
> if (!size_to_hstate(default_hstate_size)) {
> default_hstate_size = HPAGE_SIZE;
> if (!size_to_hstate(default_hstate_size))
> hugetlb_add_hstate(HUGETLB_PAGE_ORDER);
> }
>
>
>> +
>> struct kmem_cache *hugepte_cache;
>> static int __init hugetlbpage_init(void)
>> {
>>
>
> Even if we want to do this, this should be done in generic code and
> should not be powerpc specific
>
The verification of supported powerpc hugepage size (hugepagesz=) is
being performed on add_huge_page_size(), which is currently defined in
arch/powerpc/mm/hugetlbpage.c. I think it makes more sense to implement
default_hugepagesz= verification on arch/powerpc, don't you think?
> -aneesh
next prev parent reply other threads:[~2017-07-05 16:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-03 20:05 [PATCH] powerpc/mm: Implemented default_hugepagesz verification for powerpc Victor Aoqui
2017-07-05 4:26 ` Aneesh Kumar K.V
2017-07-05 16:03 ` victora [this message]
2017-07-12 15:15 ` victora
2017-07-05 4:31 ` Anshuman Khandual
2017-07-05 16:09 ` victora
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=e5ebc15347db59703d9499ea6962927b@linux.vnet.ibm.com \
--to=victora@linux.vnet.ibm.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mpe@ellerman.id.au \
--cc=victora@br.ibm.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.