]> git.baikalelectronics.ru Git - kernel.git/commit
mm/rmap: batched invalidations should use existing api
authorNadav Amit <namit@vmware.com>
Fri, 1 Apr 2016 21:31:26 +0000 (14:31 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 1 Apr 2016 22:03:37 +0000 (17:03 -0500)
commit21c424bce7e2d4bef1bc5f7f28a5a16d08aeea39
treeb126024f3245f28f163088c111fc1942322d2239
parent488445060ea5abc95ecec9aaf11f7448f17918bf
mm/rmap: batched invalidations should use existing api

The recently introduced batched invalidations mechanism uses its own
mechanism for shootdown.  However, it does wrong accounting of
interrupts (e.g., inc_irq_stat is called for local invalidations),
trace-points (e.g., TLB_REMOTE_SHOOTDOWN for local invalidations) and
may break some platforms as it bypasses the invalidation mechanisms of
Xen and SGI UV.

This patch reuses the existing TLB flushing mechnaisms instead.  We use
NULL as mm to indicate a global invalidation is required.

Fixes 997467620a9e43 ("mm: send one IPI per CPU to TLB flush all entries after unmapping pages")
Signed-off-by: Nadav Amit <namit@vmware.com>
Cc: Mel Gorman <mgorman@suse.de>
Cc: Rik van Riel <riel@redhat.com>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/x86/include/asm/tlbflush.h
arch/x86/mm/tlb.c
mm/rmap.c