lkml.org 
[lkml]   [2012]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] MM: Support more pagesizes for MAP_HUGETLB/SHM_HUGETLB v2
On 06/12/2012 07:13 PM, Andi Kleen wrote:
> From: Andi Kleen<ak@linux.intel.com>

Acked-by: Rik van Riel <riel@redhat.com>

> There was some desire in large applications using MAP_HUGETLB/SHM_HUGETLB
> to use 1GB huge pages on some mappings, and stay with 2MB on others. This
> is useful together with NUMA policy: use 2MB interleaving on some mappings,
> but 1GB on local mappings.
>
> This patch extends the IPC/SHM syscall interfaces slightly to allow specifying
> the page size.

This would also be useful for emulators such as qemu-kvm,
which want the guest memory to be 2MB aligned.

That would require extending mmap to specify the desired
alignment, which may be possible using the upper bits of
the mmap flags, like you did for the shm interface.

> +#define MAP_HUGE_2MB (21<< MAP_HUGE_SHIFT)
> +#define MAP_HUGE_1GB (30<< MAP_HUGE_SHIFT)

Nice idea, that way each architecture can define the
names for possible offsets, yet the numeric values
will always line up between all of them.

> + * Assume these are all power of twos.
> + * When 0 use the default page size.
> + */
> +#define SHM_HUGE_SHIFT 26
> +#define SHM_HUGE_MASK 0x3f
> +#define SHM_HUGE_2MB (21<< SHM_HUGE_SHIFT)
> +#define SHM_HUGE_1GB (30<< SHM_HUGE_SHIFT)
> +
> +#ifdef __KERNEL__

Excellent, this is very similar to what I was
thinking about implementing myself, in order
to pass "desired alignment" information to my
implementation of arch_get_unmapped_area(_topdown) :)




\
 
 \ /
  Last update: 2012-06-13 23:01    [W:0.067 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site