lkml.org 
[lkml]   [2022]   [Aug]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH v2] mm: align larger anonymous mappings on THP boundaries
    Align larger anonymous memory mappings on THP boundaries by
    going through thp_get_unmapped_area if THPs are enabled for
    the current process.

    With this patch, larger anonymous mappings are now THP aligned.
    When a malloc library allocates a 2MB or larger arena, that
    arena can now be mapped with THPs right from the start, which
    can result in better TLB hit rates and execution time.

    Signed-off-by: Rik van Riel <riel@surriel.com>
    ---
    v2: avoid the chicken & egg issue with MMF_VM_HUGEPAGE (Yang Shi)

    mm/mmap.c | 3 +++
    1 file changed, 3 insertions(+)

    diff --git a/mm/mmap.c b/mm/mmap.c
    index c035020d0c89..1d859893436d 100644
    --- a/mm/mmap.c
    +++ b/mm/mmap.c
    @@ -2229,6 +2229,9 @@ get_unmapped_area(struct file *file, unsigned long addr, unsigned long len,
    */
    pgoff = 0;
    get_area = shmem_get_unmapped_area;
    + } else if (IS_ENABLED(CONFIG_TRANSPARENT_HUGEPAGE)) {
    + /* Ensures that larger anonymous mappings are THP aligned. */
    + get_area = thp_get_unmapped_area;
    }

    addr = get_area(file, addr, len, pgoff, flags);
    --
    2.37.1

    \
     
     \ /
      Last update: 2022-08-09 20:55    [W:4.354 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site