Unverified Commit 21351efb authored by openeuler-ci-bot's avatar openeuler-ci-bot Committed by Gitee
Browse files

!13259 v2 mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned sizes

Merge Pull Request from: @ci-robot 
 
PR sync from: Jinjiang Tu <tujinjiang@huawei.com>
https://mailweb.openeuler.org/hyperkitty/list/kernel@openeuler.org/message/TWXJQKYUIR7LWRYPOMHUWCSAHLUMMRE2/ 
Changelog:
	update commit message format

Jinjiang Tu (1):
  mm: enable PMD anouymous mapping by default

Vlastimil Babka (1):
  mm, mmap: limit THP alignment of anonymous mappings to PMD-aligned
    sizes


-- 
2.34.1
 
https://gitee.com/openeuler/kernel/issues/IB1RRY 
 
Link:https://gitee.com/openeuler/kernel/pulls/13259

 

Reviewed-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarZhang Peng <zhangpeng362@huawei.com>
parents c49017f9 3f0b1b3d
Loading
Loading
Loading
Loading
+4 −3
Original line number Diff line number Diff line
@@ -66,7 +66,8 @@ unsigned long transparent_hugepage_flags __read_mostly =
	(1<<TRANSPARENT_HUGEPAGE_DEFRAG_REQ_MADV_FLAG)|
	(1<<TRANSPARENT_HUGEPAGE_DEFRAG_KHUGEPAGED_FLAG)|
	(1<<TRANSPARENT_HUGEPAGE_USE_ZERO_PAGE_FLAG)|
	(1<<TRANSPARENT_HUGEPAGE_FILE_MTHP_FLAG);
	(1<<TRANSPARENT_HUGEPAGE_FILE_MTHP_FLAG)|
	(1<<TRANSPARENT_HUGEPAGE_ANON_MAPPING_PMD_ALIGN_FLAG);

static struct shrinker deferred_split_shrinker;

@@ -1115,7 +1116,7 @@ unsigned long thp_get_unmapped_area(struct file *filp, unsigned long addr,
	unsigned long ret;
	loff_t off = (loff_t)pgoff << PAGE_SHIFT;

	if (filp || thp_anon_mapping_align()) {
	if (filp || (thp_anon_mapping_align() && IS_ALIGNED(len, PMD_SIZE))) {
		ret = __thp_get_unmapped_area(filp, addr, len, off, flags,
					      PMD_SIZE);
		if (ret)
@@ -1125,7 +1126,7 @@ unsigned long thp_get_unmapped_area(struct file *filp, unsigned long addr,
	if (mthp_mapping_align_enabled(filp)) {
		int order = arch_wants_exec_folio_order();

		if (order >= 0) {
		if (order >= 0 && IS_ALIGNED(len, PAGE_SIZE << order)) {
			ret = __thp_get_unmapped_area(filp, addr, len, off,
					flags, PAGE_SIZE << order);
			if (ret)