mirror of https://gitee.com/openkylin/linux.git
mm, lockdep: annotate reclaim context to zone reclaim too
Commitcf40bd16fd
("lockdep: annotate reclaim context") introduced reclaim context annotation. But it didn't annotate zone reclaim. This patch do it. The point is, commitcf40bd16fd
annotate __alloc_pages_direct_reclaim but zone-reclaim doesn't use __alloc_pages_direct_reclaim. current call graph is __alloc_pages_nodemask get_page_from_freelist zone_reclaim() __alloc_pages_slowpath __alloc_pages_direct_reclaim try_to_free_pages Actually, if zone_reclaim_mode=1, VM never call __alloc_pages_direct_reclaim in usual VM pressure. Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com> Reviewed-by: Minchan Kim <minchan.kim@gmail.com> Acked-by: Nick Piggin <npiggin@suse.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
84b18490d1
commit
76ca542d88
|
@ -2557,6 +2557,7 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
|
|||
* and RECLAIM_SWAP.
|
||||
*/
|
||||
p->flags |= PF_MEMALLOC | PF_SWAPWRITE;
|
||||
lockdep_set_current_reclaim_state(gfp_mask);
|
||||
reclaim_state.reclaimed_slab = 0;
|
||||
p->reclaim_state = &reclaim_state;
|
||||
|
||||
|
@ -2600,6 +2601,7 @@ static int __zone_reclaim(struct zone *zone, gfp_t gfp_mask, unsigned int order)
|
|||
|
||||
p->reclaim_state = NULL;
|
||||
current->flags &= ~(PF_MEMALLOC | PF_SWAPWRITE);
|
||||
lockdep_clear_current_reclaim_state();
|
||||
return sc.nr_reclaimed >= nr_pages;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue