mm: fix NR_ISOLATED_[ANON|FILE] mismatch
Quoted 67 lines · Johannes Weiner
Quoted 45 lines · Minchan Kim
From: Minchan Kim <[email protected]>
Date: Thu, 20 Sep 2012 08:39:52 +0900
Subject: [PATCH] mm: revert0def08e3,mm/mempolicy.c: check return code of
check_rangeThis patch reverts
0def08e3becausecheck_rangecan't fail inmigrate_to_nodewith considering current usecases.Quote from Johannes
"
I think it makes sense to revert. Not because of the semantics, but I just don't see howcheck_range()could even fail for this callsite:1. we pass
mm->mmap->vm_startin there, so we should not fail due tofind_vma()2. we pass
MPOL_MF_DISCONTIG_OK, so the discontig checks do not apply and so can not fail3. we pass
MPOL_MF_MOVE|MPOL_MF_MOVE_ALL, the page table loops will continue until addr == end, so we never fail with-EIO
"And I add new
VM_BUG_ONfor checking migrate_to_node's future usecase which might pass toMPOL_MF_STRICT.Cc KOSAKI Motohiro <[email protected]>Cc Mel Gorman <[email protected]>Cc Christoph Lameter <[email protected]>Cc David Rientjes <[email protected]>Cc Vasiliy Kulikov <[email protected]>Suggested-by Johannes Weiner <[email protected]>Signed-off-by Minchan Kim <[email protected]>--- mm/mempolicy.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)mm/mempolicy.c +0
-0@@ -946,15 +946,16 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest,nodemask_t nmask;LIST_HEAD (pagelist);int err =0 ;mm/mempolicy.c static int migrate_to_node(struct mm_struct *mm, int source, int dest, · line 956
Quoted 10 lines
mm/mempolicy.c +4
-2-struct vm_area_struct *vma;nodes_clear (nmask);node_set (source, nmask); - vma = check_range(mm, mm->mmap->vm_start, mm->task_size, &nmask, +/* +* Collect migrate pages and it shoudn't be failed. +*/ +VM_BUG_ON (flags &MPOL_MF_STRICT );Adding a check and a comment is a good idea, but I'm not a big fan of checking for
MPOL_MF_STRICTin particular because it's one of the invalid inputs, and so you need to extend this check when somebody extends the spectrum of invalid inputs. I would much prefer checking directly for !(flags & (MPOL_MF_MOVE|MPOL_MF_MOVE_ALL)) instead, which would also make the possible inputs apparent without having to chase up the call chain to find out what is usually passed in.And how about
Quoted 7 lines
/*
* This does not "check" the range but isolates all pages that
* need migration. Between passing in the full user address
* space range andMPOL_MF_DISCONTIG_OK, this call can not fail. */?
Good idea. Thanks Hannes,
Johannes Weiner
Acked-byQuoted 6 lines · Minchan Kim
Quoted 5 lines · Johannes Weiner
Quoted 4 lines · Minchan Kim
From: Minchan Kim <[email protected]>
Date: Thu, 20 Sep 2012 08:39:52 +0900
Subject: [PATCH] mm: revert0def08e3,mm/mempolicy.c: check return code of
check_range
[...]
Quoted 4 lines
From: Minchan Kim <[email protected]>
Date: Fri, 21 Sep 2012 08:17:37 +0900
Subject: [PATCH] mm: enhance comment and bug check
Quoted 8 lines
This patch updates comment and bug check.
It can be fold into [1].[1] mm-revert-0def08e3-mm-mempolicyc-check-return-code-of-check_range.patch
Cc KOSAKI Motohiro <[email protected]>Suggested-by Johannes Weiner <[email protected]>Signed-off-by Minchan Kim <[email protected]>
Thanks! To the patch and this update:
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>