Re: [RFC] [PATCH 0/5 V2] Huge page backed user-space stacks

Andrew Morton
2008-07-30T08:41:39Z

On Mon, 28 Jul 2008 12:17:10 -0700 Eric Munson <ebmunson@us.ibm.com> wrote:

> Certain workloads benefit if their data or text segments are backed by
> huge pages. The stack is no exception to this rule but there is no
> mechanism currently that allows the backing of a stack reliably with
> huge pages. Doing this from userspace is excessively messy and has some
> awkward restrictions. Particularly on POWER where 256MB of address space
> gets wasted if the stack is setup there.
>
> This patch stack introduces a personality flag that indicates the kernel
> should setup the stack as a hugetlbfs-backed region. A userspace utility
> may set this flag then exec a process whose stack is to be backed by
> hugetlb pages.
>
> Eric Munson (5):
> Align stack boundaries based on personality
> Add shared and reservation control to hugetlb_file_setup
> Split boundary checking from body of do_munmap
> Build hugetlb backed process stacks
> [PPC] Setup stack memory segment for hugetlb pages
>
> arch/powerpc/mm/hugetlbpage.c | 6 +
> arch/powerpc/mm/slice.c | 11 ++
> fs/exec.c | 209 ++++++++++++++++++++++++++++++++++++++---
> fs/hugetlbfs/inode.c | 52 +++++++----
> include/asm-powerpc/hugetlb.h | 3 +
> include/linux/hugetlb.h | 22 ++++-
> include/linux/mm.h | 1 +
> include/linux/personality.h | 3 +
> ipc/shm.c | 2 +-
> mm/mmap.c | 11 ++-
> 10 files changed, 284 insertions(+), 36 deletions(-)

That all looks surprisingly straightforward.

Might there exist an x86 port which people can play with?