Commit cb49a627 authored by Aneesh Kumar K.V's avatar Aneesh Kumar K.V Committed by Ma Wupeng
Browse files

mm/mempolicy: use policy_node helper with MPOL_PREFERRED_MANY

mainline inclusion
from mainline-v5.17-rc1
commit c0455116
category: feature
bugzilla: https://gitee.com/openeuler/kernel/issues/I6I1Z2
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=c04551162167368022a61899843821bbf015b473

--------------------------------

Patch series "mm: add new syscall set_mempolicy_home_node", v6.

This patch (of 3):

A followup patch will enable setting a home node with
MPOL_PREFERRED_MANY memory policy.  To facilitate that switch to using
policy_node helper.  There is no functional change in this patch.

Link: https://lkml.kernel.org/r/20211202123810.267175-1-aneesh.kumar@linux.ibm.com
Link: https://lkml.kernel.org/r/20211202123810.267175-2-aneesh.kumar@linux.ibm.com


Signed-off-by: default avatarAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Acked-by: default avatarMichal Hocko <mhocko@suse.com>
Cc: Ben Widawsky <ben.widawsky@intel.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Feng Tang <feng.tang@intel.com>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Mike Kravetz <mike.kravetz@oracle.com>
Cc: Randy Dunlap <rdunlap@infradead.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Huang Ying <ying.huang@intel.com>
Cc: <linux-api@vger.kernel.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: default avatarMa Wupeng <mawupeng1@huawei.com>
parent bf5c2726
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -2249,7 +2249,7 @@ static struct page *alloc_pages_preferred_many(gfp_t gfp, unsigned int order,
	preferred_gfp &= ~(__GFP_DIRECT_RECLAIM | __GFP_NOFAIL);
	page = __alloc_pages(preferred_gfp, order, nid, &pol->v.nodes);
	if (!page)
		page = __alloc_pages(gfp, order, numa_node_id(), NULL);
		page = __alloc_pages(gfp, order, nid, NULL);

	return page;
}
@@ -2290,6 +2290,7 @@ struct page *alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
	}

	if (pol->mode == MPOL_PREFERRED_MANY) {
		node = policy_node(gfp, pol, node);
		page = alloc_pages_preferred_many(gfp, order, node, pol);
		mpol_cond_put(pol);
		goto out;
@@ -2374,7 +2375,7 @@ struct page *alloc_pages(gfp_t gfp, unsigned order)
		page = alloc_page_interleave(gfp, order, interleave_nodes(pol));
	else if (pol->mode == MPOL_PREFERRED_MANY)
		page = alloc_pages_preferred_many(gfp, order,
				numa_node_id(), pol);
				  policy_node(gfp, pol, numa_node_id()), pol);
	else
		page = __alloc_pages(gfp, order,
				policy_node(gfp, pol, numa_node_id()),