From: Mike Kravetz <mike.kravetz@oracle.com>
To: Michal Hocko <mhocko@kernel.org>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Matthew Wilcox <willy@infradead.org>,
akpm@linux-foundation.org, ak@linux.intel.com,
mtk.manpages@gmail.com, Davidlohr Bueso <dbueso@suse.de>,
khandual@linux.vnet.ibm.com, aneesh.kumar@linux.vnet.ibm.com,
aarcange@redhat.com
Subject: Re: [RFC PATCH 3/3] mm: shm: Use new hugetlb size encoding definitions
Date: Wed, 26 Jul 2017 10:39:30 -0700 [thread overview]
Message-ID: <d6c78995-bd4c-3894-0a48-b289ad81104b@oracle.com> (raw)
In-Reply-To: <20170726100718.GG2981@dhcp22.suse.cz>
On 07/26/2017 03:07 AM, Michal Hocko wrote:
> On Wed 26-07-17 11:53:38, Michal Hocko wrote:
>> On Mon 17-07-17 15:28:01, Mike Kravetz wrote:
>>> Use the common definitions from hugetlb_encode.h header file for
>>> encoding hugetlb size definitions in shmget system call flags. In
>>> addition, move these definitions to the from the internal to user
>>> (uapi) header file.
>>
>> s@to the from@from@
>>
>>>
>>> Suggested-by: Matthew Wilcox <willy@infradead.org>
>>> Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
>>
>> with s@HUGETLB_FLAG_ENCODE__16GB@HUGETLB_FLAG_ENCODE_16GB@
>>
>> Acked-by: Michal Hocko <mhocko@suse.com>
>
> Btw. man page mentions only 2MB and 1GB, we should document others and
> note that each arch might support only subset of them
Thanks for looking at these Michal.
BTW, those definitions below are wrong. They should be SHM_HUGE_*. :(
In the overview of this RFC, I mentioned still needing to address the
comment from Aneesh about splitting SHM_HUGE_* definitions into arch
specific header files. This is how it is done for mmap. If an arch
supports multiple huge page sizes, the 'asm/mman.h' contains definitions
for those sizes. There will be a bit of churn (such as header file
renaming) to do this for shm as well. So, I keep going back and forth
asking myself 'is it worth it'? Some things to consider.
- We should be consistent between mmap and shm. Also remember, that I
will propose adding the same type of encoding to memfd_create. So,
three system calls will use the encoding. They should be consistent.
- Adding the arch specific definitions seems the 'most correct', as a
user can not use a definition not supported by the arch. However,
even if an arch supports a huge page size it does not mean that the
running kernel supports that size. Therefore, the folllowing is in
the man page.
"The range of huge page sizes that are supported by the system
can be discovered by listing the subdirectories in
/sys/kernel/mm/hugepages."
- Another alternative is to make all known huge page sizes available
to all users. This is 'easier' as the definitions can likely reside
in a common header file. The user will need to determine what
huge page sizes are supported by the running kernel as mentioned in
the man page.
Any thoughts/suggestions on these alternatives? I'll send out another
patch set based on comments. In any case, I think mmap and shm need to
be the same.
--
Mike Kravetz
>>> +#define MAP_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
>>> +#define MAP_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
>>> +#define MAP_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
>>> +#define MAP_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
>>> +#define MAP_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
>>> +#define MAP_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
>>> +#define MAP_HUGE_16GB HUGETLB_FLAG_ENCODE__16GB
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-07-26 17:40 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-03-08 17:06 [PATCH] mm,hugetlb: compute page_size_log properly Davidlohr Bueso
2017-03-08 19:39 ` Andi Kleen
2017-03-09 3:24 ` Anshuman Khandual
2017-03-09 8:55 ` Michal Hocko
2017-03-28 16:53 ` Davidlohr Bueso
2017-03-28 16:55 ` Davidlohr Bueso
2017-03-28 17:54 ` Matthew Wilcox
2017-03-29 8:06 ` Michal Hocko
2017-03-29 17:45 ` Andi Kleen
2017-03-30 6:12 ` Michal Hocko
2017-04-12 16:18 ` Davidlohr Bueso
2017-04-12 16:30 ` Andi Kleen
2017-04-12 17:21 ` Matthew Wilcox
2017-04-13 6:02 ` Aneesh Kumar K.V
2017-04-13 12:46 ` Matthew Wilcox
2017-07-17 22:27 ` Mike Kravetz
2017-07-17 22:27 ` [RFC PATCH 1/3] mm:hugetlb: Define system call hugetlb size encodings in single file Mike Kravetz
2017-07-18 0:00 ` Matthew Wilcox
2017-07-26 9:50 ` Michal Hocko
2017-07-17 22:28 ` [RFC PATCH 2/3] mm: arch: Use new hugetlb size encoding definitions Mike Kravetz
2017-07-26 9:52 ` Michal Hocko
2017-07-17 22:28 ` [RFC PATCH 3/3] mm: shm: " Mike Kravetz
2017-07-26 9:53 ` Michal Hocko
2017-07-26 10:07 ` Michal Hocko
2017-07-26 17:39 ` Mike Kravetz [this message]
2017-07-26 18:48 ` Matthew Wilcox
2017-07-27 7:50 ` Michal Hocko
2017-07-27 21:18 ` Mike Kravetz
2017-07-28 6:30 ` Michal Hocko
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=d6c78995-bd4c-3894-0a48-b289ad81104b@oracle.com \
--to=mike.kravetz@oracle.com \
--cc=aarcange@redhat.com \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=dbueso@suse.de \
--cc=khandual@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=mtk.manpages@gmail.com \
--cc=willy@infradead.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox