linux-stable/arch
Baolin Wang 1bcdb769f9 arm64/hugetlb: implement arm64 specific hugetlb_mask_last_page
The HugeTLB address ranges are linearly scanned during fork, unmap and
remap operations, and the linear scan can skip to the end of range mapped
by the page table page if hitting a non-present entry, which can help to
speed linear scanning of the HugeTLB address ranges.

So hugetlb_mask_last_page() is introduced to help to update the address in
the loop of HugeTLB linear scanning with getting the last huge page mapped
by the associated page table page[1], when a non-present entry is
encountered.

Considering ARM64 specific cont-pte/pmd size HugeTLB, this patch
implemented an ARM64 specific hugetlb_mask_last_page() to help this case.

[1] https://lore.kernel.org/linux-mm/20220527225849.284839-1-mike.kravetz@oracle.com/

[baolin.wang@linux.alibaba.com: fix build]
  Link: https://lkml.kernel.org/r/a14e7b39-6a8a-4609-b4a1-84ac574f5c96@linux.alibaba.com
Link: https://lkml.kernel.org/r/20220621235620.291305-3-mike.kravetz@oracle.com
Signed-off-by: Baolin Wang <baolin.wang@linux.alibaba.com>
Signed-off-by: Mike Kravetz <mike.kravetz@oracle.com>
Acked-by: Muchun Song <songmuchun@bytedance.com>
Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
Cc: Anshuman Khandual <anshuman.khandual@arm.com>
Cc: Catalin Marinas <catalin.marinas@arm.com>
Cc: Christian Borntraeger <borntraeger@linux.ibm.com>
Cc: David Hildenbrand <david@redhat.com>
Cc: James Houghton <jthoughton@google.com>
Cc: kernel test robot <lkp@intel.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mina Almasry <almasrymina@google.com>
Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev>
Cc: Paul Walmsley <paul.walmsley@sifive.com>
Cc: Peter Xu <peterx@redhat.com>
Cc: Rolf Eike Beer <eike-kernel@sf-tec.de>
Cc: Will Deacon <will@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2022-07-17 17:14:34 -07:00
..
alpha mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
arc mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
arm Merge branch 'master' into mm-stable 2022-06-27 10:31:34 -07:00
arm64 arm64/hugetlb: implement arm64 specific hugetlb_mask_last_page 2022-07-17 17:14:34 -07:00
csky mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
hexagon mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
ia64 mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
loongarch docs: rename Documentation/vm to Documentation/mm 2022-06-27 12:52:53 -07:00
m68k mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
microblaze mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
mips Merge branch 'master' into mm-stable 2022-06-27 10:31:34 -07:00
nios2 mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
openrisc mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
parisc Merge branch 'master' into mm-stable 2022-06-27 10:31:34 -07:00
powerpc docs: rename Documentation/vm to Documentation/mm 2022-06-27 12:52:53 -07:00
riscv Merge branch 'master' into mm-stable 2022-06-27 10:31:34 -07:00
s390 Merge branch 'master' into mm-stable 2022-06-27 10:31:34 -07:00
sh mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
sparc mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
um mm: avoid unnecessary page fault retires on shared memory types 2022-06-16 19:48:27 -07:00
x86 mm: shrinkers: provide shrinkers with names 2022-07-03 18:08:40 -07:00
xtensa Merge branch 'master' into mm-stable 2022-06-27 10:31:34 -07:00
.gitignore
Kconfig A set of objtool fixes: 2022-06-05 09:45:27 -07:00