mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	mempolicy: remove confusing MPOL_MF_LAZY dead code
v3.8 commitb24f53a0be("mm: mempolicy: Add MPOL_MF_LAZY") introduced MPOL_MF_LAZY, and included it in the MPOL_MF_VALID flags; buta720094ded("mm: mempolicy: Hide MPOL_NOOP and MPOL_MF_LAZY from userspace for now") immediately removed it from MPOL_MF_VALID flags, pending further review. "This will need to be revisited", but it has not been reinstated. The present state is confusing: there is dead code in mm/mempolicy.c to handle MPOL_MF_LAZY cases which can never occur. Remove that: it can be resurrected later if necessary. But keep the definition of MPOL_MF_LAZY, which must remain in the UAPI, even though it always fails with EINVAL. https://lore.kernel.org/linux-mm/1553041659-46787-1-git-send-email-yang.shi@linux.alibaba.com/ links to a previous request to remove MPOL_MF_LAZY. Link: https://lkml.kernel.org/r/80c9665c-1c3f-17ba-21a3-f6115cebf7d@google.com Signed-off-by: Hugh Dickins <hughd@google.com> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> Reviewed-by: Yang Shi <shy828301@gmail.com> Cc: Andi Kleen <ak@linux.intel.com> Cc: Christoph Lameter <cl@linux.com> Cc: David Hildenbrand <david@redhat.com> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: "Huang, Ying" <ying.huang@intel.com> Cc: Kefeng Wang <wangkefeng.wang@huawei.com> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Michal Hocko <mhocko@suse.com> Cc: Mike Kravetz <mike.kravetz@oracle.com> Cc: Nhat Pham <nphamcs@gmail.com> Cc: Sidhartha Kumar <sidhartha.kumar@oracle.com> Cc: Suren Baghdasaryan <surenb@google.com> Cc: Tejun heo <tj@kernel.org> Cc: Vishal Moola (Oracle) <vishal.moola@gmail.com> Cc: Yosry Ahmed <yosryahmed@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
		
							parent
							
								
									35ec8fa020
								
							
						
					
					
						commit
						2cafb58217
					
				
					 2 changed files with 1 additions and 19 deletions
				
			
		| 
						 | 
					@ -48,7 +48,7 @@ enum {
 | 
				
			||||||
#define MPOL_MF_MOVE	 (1<<1)	/* Move pages owned by this process to conform
 | 
					#define MPOL_MF_MOVE	 (1<<1)	/* Move pages owned by this process to conform
 | 
				
			||||||
				   to policy */
 | 
									   to policy */
 | 
				
			||||||
#define MPOL_MF_MOVE_ALL (1<<2)	/* Move every page to conform to policy */
 | 
					#define MPOL_MF_MOVE_ALL (1<<2)	/* Move every page to conform to policy */
 | 
				
			||||||
#define MPOL_MF_LAZY	 (1<<3)	/* Modifies '_MOVE:  lazy migrate on fault */
 | 
					#define MPOL_MF_LAZY	 (1<<3)	/* UNSUPPORTED FLAG: Lazy migrate on fault */
 | 
				
			||||||
#define MPOL_MF_INTERNAL (1<<4)	/* Internal flags start here */
 | 
					#define MPOL_MF_INTERNAL (1<<4)	/* Internal flags start here */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#define MPOL_MF_VALID	(MPOL_MF_STRICT   | 	\
 | 
					#define MPOL_MF_VALID	(MPOL_MF_STRICT   | 	\
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -636,12 +636,6 @@ unsigned long change_prot_numa(struct vm_area_struct *vma,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return nr_updated;
 | 
						return nr_updated;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
#else
 | 
					 | 
				
			||||||
static unsigned long change_prot_numa(struct vm_area_struct *vma,
 | 
					 | 
				
			||||||
			unsigned long addr, unsigned long end)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#endif /* CONFIG_NUMA_BALANCING */
 | 
					#endif /* CONFIG_NUMA_BALANCING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int queue_pages_test_walk(unsigned long start, unsigned long end,
 | 
					static int queue_pages_test_walk(unsigned long start, unsigned long end,
 | 
				
			||||||
| 
						 | 
					@ -680,14 +674,6 @@ static int queue_pages_test_walk(unsigned long start, unsigned long end,
 | 
				
			||||||
	if (endvma > end)
 | 
						if (endvma > end)
 | 
				
			||||||
		endvma = end;
 | 
							endvma = end;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (flags & MPOL_MF_LAZY) {
 | 
					 | 
				
			||||||
		/* Similar to task_numa_work, skip inaccessible VMAs */
 | 
					 | 
				
			||||||
		if (!is_vm_hugetlb_page(vma) && vma_is_accessible(vma) &&
 | 
					 | 
				
			||||||
			!(vma->vm_flags & VM_MIXEDMAP))
 | 
					 | 
				
			||||||
			change_prot_numa(vma, start, endvma);
 | 
					 | 
				
			||||||
		return 1;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * Check page nodes, and queue pages to move, in the current vma.
 | 
						 * Check page nodes, and queue pages to move, in the current vma.
 | 
				
			||||||
	 * But if no moving, and no strict checking, the scan can be skipped.
 | 
						 * But if no moving, and no strict checking, the scan can be skipped.
 | 
				
			||||||
| 
						 | 
					@ -1254,9 +1240,6 @@ static long do_mbind(unsigned long start, unsigned long len,
 | 
				
			||||||
	if (IS_ERR(new))
 | 
						if (IS_ERR(new))
 | 
				
			||||||
		return PTR_ERR(new);
 | 
							return PTR_ERR(new);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (flags & MPOL_MF_LAZY)
 | 
					 | 
				
			||||||
		new->flags |= MPOL_F_MOF;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
	 * If we are using the default policy then operation
 | 
						 * If we are using the default policy then operation
 | 
				
			||||||
	 * on discontinuous address spaces is okay after all
 | 
						 * on discontinuous address spaces is okay after all
 | 
				
			||||||
| 
						 | 
					@ -1301,7 +1284,6 @@ static long do_mbind(unsigned long start, unsigned long len,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!err) {
 | 
						if (!err) {
 | 
				
			||||||
		if (!list_empty(&pagelist)) {
 | 
							if (!list_empty(&pagelist)) {
 | 
				
			||||||
			WARN_ON_ONCE(flags & MPOL_MF_LAZY);
 | 
					 | 
				
			||||||
			nr_failed |= migrate_pages(&pagelist, new_folio, NULL,
 | 
								nr_failed |= migrate_pages(&pagelist, new_folio, NULL,
 | 
				
			||||||
				start, MIGRATE_SYNC, MR_MEMPOLICY_MBIND, NULL);
 | 
									start, MIGRATE_SYNC, MR_MEMPOLICY_MBIND, NULL);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue