Message ID | 20190620050328.8942-1-alex@ghiti.fr (mailing list archive) |
---|---|
Headers | show |
Series | Fix mmap base in bottom-up mmap | expand |
On 6/20/19 7:03 AM, Alexandre Ghiti wrote: > This series fixes the fallback of the top-down mmap: in case of > failure, a bottom-up scheme can be tried as a last resort between > the top-down mmap base and the stack, hoping for a large unused stack > limit. > > Lots of architectures and even mm code start this fallback > at TASK_UNMAPPED_BASE, which is useless since the top-down scheme > already failed on the whole address space: instead, simply use > mmap_base. > > Along the way, it allows to get rid of of mmap_legacy_base and > mmap_compat_legacy_base from mm_struct. > > Note that arm and mips already implement this behaviour. > > Alexandre Ghiti (8): > s390: Start fallback of top-down mmap at mm->mmap_base > sh: Start fallback of top-down mmap at mm->mmap_base > sparc: Start fallback of top-down mmap at mm->mmap_base > x86, hugetlbpage: Start fallback of top-down mmap at mm->mmap_base > mm: Start fallback top-down mmap at mm->mmap_base > parisc: Use mmap_base, not mmap_legacy_base, as low_limit for > bottom-up mmap > x86: Use mmap_*base, not mmap_*legacy_base, as low_limit for bottom-up > mmap > mm: Remove mmap_legacy_base and mmap_compat_legacy_code fields from > mm_struct > > arch/parisc/kernel/sys_parisc.c | 8 +++----- > arch/s390/mm/mmap.c | 2 +- > arch/sh/mm/mmap.c | 2 +- > arch/sparc/kernel/sys_sparc_64.c | 2 +- > arch/sparc/mm/hugetlbpage.c | 2 +- > arch/x86/include/asm/elf.h | 2 +- > arch/x86/kernel/sys_x86_64.c | 4 ++-- > arch/x86/mm/hugetlbpage.c | 7 ++++--- > arch/x86/mm/mmap.c | 20 +++++++++----------- > include/linux/mm_types.h | 2 -- > mm/debug.c | 4 ++-- > mm/mmap.c | 2 +- > 12 files changed, 26 insertions(+), 31 deletions(-) > Hi everyone, This is just a preparatory series for the merging of x86 mmap top-down functions with the generic ones (those should get into v5.3), if you could take some time to take a look, that would be great :) Thanks, Alex
On 6/20/19 7:03 AM, Alexandre Ghiti wrote: > This series fixes the fallback of the top-down mmap: in case of > failure, a bottom-up scheme can be tried as a last resort between > the top-down mmap base and the stack, hoping for a large unused stack > limit. > > Lots of architectures and even mm code start this fallback > at TASK_UNMAPPED_BASE, which is useless since the top-down scheme > already failed on the whole address space: instead, simply use > mmap_base. > > Along the way, it allows to get rid of of mmap_legacy_base and > mmap_compat_legacy_base from mm_struct. > > Note that arm and mips already implement this behaviour. > > Alexandre Ghiti (8): > s390: Start fallback of top-down mmap at mm->mmap_base > sh: Start fallback of top-down mmap at mm->mmap_base > sparc: Start fallback of top-down mmap at mm->mmap_base > x86, hugetlbpage: Start fallback of top-down mmap at mm->mmap_base > mm: Start fallback top-down mmap at mm->mmap_base > parisc: Use mmap_base, not mmap_legacy_base, as low_limit for > bottom-up mmap > x86: Use mmap_*base, not mmap_*legacy_base, as low_limit for bottom-up > mmap > mm: Remove mmap_legacy_base and mmap_compat_legacy_code fields from > mm_struct > > arch/parisc/kernel/sys_parisc.c | 8 +++----- > arch/s390/mm/mmap.c | 2 +- > arch/sh/mm/mmap.c | 2 +- > arch/sparc/kernel/sys_sparc_64.c | 2 +- > arch/sparc/mm/hugetlbpage.c | 2 +- > arch/x86/include/asm/elf.h | 2 +- > arch/x86/kernel/sys_x86_64.c | 4 ++-- > arch/x86/mm/hugetlbpage.c | 7 ++++--- > arch/x86/mm/mmap.c | 20 +++++++++----------- > include/linux/mm_types.h | 2 -- > mm/debug.c | 4 ++-- > mm/mmap.c | 2 +- > 12 files changed, 26 insertions(+), 31 deletions(-) > Hi everyone, Any thoughts about that series ? As said before, this is just a preparatory patchset in order to merge x86 mmap top down code with the generic version. Thanks for taking a look, Alex
On 26.08.19 09:34, Alexandre Ghiti wrote: > On 6/20/19 7:03 AM, Alexandre Ghiti wrote: >> This series fixes the fallback of the top-down mmap: in case of >> failure, a bottom-up scheme can be tried as a last resort between >> the top-down mmap base and the stack, hoping for a large unused stack >> limit. >> >> Lots of architectures and even mm code start this fallback >> at TASK_UNMAPPED_BASE, which is useless since the top-down scheme >> already failed on the whole address space: instead, simply use >> mmap_base. >> >> Along the way, it allows to get rid of of mmap_legacy_base and >> mmap_compat_legacy_base from mm_struct. >> >> Note that arm and mips already implement this behaviour. >> >> Alexandre Ghiti (8): >> s390: Start fallback of top-down mmap at mm->mmap_base >> sh: Start fallback of top-down mmap at mm->mmap_base >> sparc: Start fallback of top-down mmap at mm->mmap_base >> x86, hugetlbpage: Start fallback of top-down mmap at mm->mmap_base >> mm: Start fallback top-down mmap at mm->mmap_base >> parisc: Use mmap_base, not mmap_legacy_base, as low_limit for >> bottom-up mmap >> x86: Use mmap_*base, not mmap_*legacy_base, as low_limit for bottom-up >> mmap >> mm: Remove mmap_legacy_base and mmap_compat_legacy_code fields from >> mm_struct >> >> arch/parisc/kernel/sys_parisc.c | 8 +++----- >> arch/s390/mm/mmap.c | 2 +- >> arch/sh/mm/mmap.c | 2 +- >> arch/sparc/kernel/sys_sparc_64.c | 2 +- >> arch/sparc/mm/hugetlbpage.c | 2 +- >> arch/x86/include/asm/elf.h | 2 +- >> arch/x86/kernel/sys_x86_64.c | 4 ++-- >> arch/x86/mm/hugetlbpage.c | 7 ++++--- >> arch/x86/mm/mmap.c | 20 +++++++++----------- >> include/linux/mm_types.h | 2 -- >> mm/debug.c | 4 ++-- >> mm/mmap.c | 2 +- >> 12 files changed, 26 insertions(+), 31 deletions(-) >> > > Any thoughts about that series ? As said before, this is just a preparatory patchset in order to > merge x86 mmap top down code with the generic version. I just tested your patch series successfully on the parisc architeture. You may add: Tested-by: Helge Deller <deller@gmx.de> # parisc Thanks! Helge
On 8/26/19 6:37 PM, Helge Deller wrote: > On 26.08.19 09:34, Alexandre Ghiti wrote: >> On 6/20/19 7:03 AM, Alexandre Ghiti wrote: >>> This series fixes the fallback of the top-down mmap: in case of >>> failure, a bottom-up scheme can be tried as a last resort between >>> the top-down mmap base and the stack, hoping for a large unused stack >>> limit. >>> >>> Lots of architectures and even mm code start this fallback >>> at TASK_UNMAPPED_BASE, which is useless since the top-down scheme >>> already failed on the whole address space: instead, simply use >>> mmap_base. >>> >>> Along the way, it allows to get rid of of mmap_legacy_base and >>> mmap_compat_legacy_base from mm_struct. >>> >>> Note that arm and mips already implement this behaviour. >>> >>> Alexandre Ghiti (8): >>> s390: Start fallback of top-down mmap at mm->mmap_base >>> sh: Start fallback of top-down mmap at mm->mmap_base >>> sparc: Start fallback of top-down mmap at mm->mmap_base >>> x86, hugetlbpage: Start fallback of top-down mmap at mm->mmap_base >>> mm: Start fallback top-down mmap at mm->mmap_base >>> parisc: Use mmap_base, not mmap_legacy_base, as low_limit for >>> bottom-up mmap >>> x86: Use mmap_*base, not mmap_*legacy_base, as low_limit for >>> bottom-up >>> mmap >>> mm: Remove mmap_legacy_base and mmap_compat_legacy_code fields from >>> mm_struct >>> >>> arch/parisc/kernel/sys_parisc.c | 8 +++----- >>> arch/s390/mm/mmap.c | 2 +- >>> arch/sh/mm/mmap.c | 2 +- >>> arch/sparc/kernel/sys_sparc_64.c | 2 +- >>> arch/sparc/mm/hugetlbpage.c | 2 +- >>> arch/x86/include/asm/elf.h | 2 +- >>> arch/x86/kernel/sys_x86_64.c | 4 ++-- >>> arch/x86/mm/hugetlbpage.c | 7 ++++--- >>> arch/x86/mm/mmap.c | 20 +++++++++----------- >>> include/linux/mm_types.h | 2 -- >>> mm/debug.c | 4 ++-- >>> mm/mmap.c | 2 +- >>> 12 files changed, 26 insertions(+), 31 deletions(-) >>> >> >> Any thoughts about that series ? As said before, this is just a >> preparatory patchset in order to >> merge x86 mmap top down code with the generic version. > > I just tested your patch series successfully on the parisc > architeture. You may add: > > Tested-by: Helge Deller <deller@gmx.de> # parisc Thanks again Helge ! Alex > > Thanks! > Helge