]> 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)
commit6b12ec3da87f081da0a316c794d27896c0ebce5f
treeb126024f3245f28f163088c111fc1942322d2239
parent7c88e373eb837da3558dfee0cbb92ec864dfbe4a
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 31678b1079ffa5 ("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