linux/arch/powerpc/mm
Gang Li b78b27d029 hugetlb: parallelize 1G hugetlb initialization
Optimizing the initialization speed of 1G huge pages through
parallelization.

1G hugetlbs are allocated from bootmem, a process that is already very
fast and does not currently require optimization.  Therefore, we focus on
parallelizing only the initialization phase in `gather_bootmem_prealloc`.

Here are some test results:
      test case       no patch(ms)   patched(ms)   saved
 ------------------- -------------- ------------- --------
  256c2T(4 node) 1G           4745          2024   57.34%
  128c1T(2 node) 1G           3358          1712   49.02%
     12T         1G          77000         18300   76.23%

[akpm@linux-foundation.org: s/initialied/initialized/, per Alexey]
Link: https://lkml.kernel.org/r/20240222140422.393911-9-gang.li@linux.dev
Signed-off-by: Gang Li <ligang.bdlg@bytedance.com>
Tested-by: David Rientjes <rientjes@google.com>
Reviewed-by: Muchun Song <muchun.song@linux.dev>
Cc: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Daniel Jordan <daniel.m.jordan@oracle.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: Jane Chu <jane.chu@oracle.com>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Paul E. McKenney <paulmck@kernel.org>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Steffen Klassert <steffen.klassert@secunet.com>
Cc: Tim Chen <tim.c.chen@linux.intel.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-03-06 13:04:17 -08:00
..
book3s32 powerpc/32s: Introduce _PAGE_READ and remove _PAGE_USER 2023-10-19 17:12:47 +11:00
book3s64 Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
kasan powerpc/kasan: Fix addr error caused by page alignment 2024-02-05 22:57:26 +11:00
nohash kexec: split crashkernel reservation code out from crash_core.c 2024-02-23 17:48:21 -08:00
ptdump mm: ptdump: have ptdump_check_wx() return bool 2024-02-22 10:24:47 -08:00
cacheflush.c powerpc: implement the new page table range API 2023-08-24 16:20:23 -07:00
copro_fault.c powerpc/mm: convert coprocessor fault to lock_mm_and_find_vma() 2023-06-24 14:12:58 -07:00
dma-noncoherent.c
drmem.c powerpc: Annotate endianness of various variables and functions 2023-10-19 17:12:47 +11:00
fault.c arch/mm/fault: fix major fault accounting when retrying under per-VMA lock 2023-12-29 11:06:49 -08:00
hugetlbpage.c hugetlb: parallelize 1G hugetlb initialization 2024-03-06 13:04:17 -08:00
init_32.c powerpc: Untangle fixmap.h and pgtable.h and mmu.h 2023-10-19 17:12:44 +11:00
init_64.c powerpc updates for 6.6 2023-08-31 12:43:10 -07:00
init-common.c powerpc/mm: Fix null-pointer dereference in pgtable_cache_add 2023-12-13 22:13:41 +11:00
ioremap_32.c powerpc: mm: convert to GENERIC_IOREMAP 2023-08-18 10:12:35 -07:00
ioremap_64.c powerpc: mm: convert to GENERIC_IOREMAP 2023-08-18 10:12:35 -07:00
ioremap.c powerpc/nohash: Replace pte_user() by pte_read() 2023-10-19 17:12:46 +11:00
maccess.c powerpc/inst: Optimise copy_inst_from_kernel_nofault() 2021-12-09 22:41:21 +11:00
Makefile powerpc/mm: Convert to default topdown mmap layout 2022-05-05 22:11:58 +10:00
mem.c powerpc: Remove file parameter from phys_mem_access_prot() 2023-11-06 15:21:33 +11:00
mmu_context.c powerpc: Add mm_cpumask warning when context switching 2023-08-02 22:22:19 +10:00
mmu_decl.h arm64, powerpc, riscv, s390, x86: ptdump: refactor CONFIG_DEBUG_WX 2024-02-22 10:24:47 -08:00
numa.c powerpc/pseries: Move VPHN constants into vphn.h 2023-08-24 22:33:16 +10:00
pageattr.c powerpc: align address to page boundary in change_page_attr() 2022-05-08 22:15:41 +10:00
pgtable_32.c arm64, powerpc, riscv, s390, x86: ptdump: refactor CONFIG_DEBUG_WX 2024-02-22 10:24:47 -08:00
pgtable_64.c arm64, powerpc, riscv, s390, x86: ptdump: refactor CONFIG_DEBUG_WX 2024-02-22 10:24:47 -08:00
pgtable-frag.c powerpc: convert various functions to use ptdescs 2023-08-21 13:37:54 -07:00
pgtable.c powerpc/mm: use pte_next_pfn() in set_ptes() 2024-02-22 10:24:51 -08:00