]> git.baikalelectronics.ru Git - kernel.git/commit
x86/mm: Add barriers and document switch_mm()-vs-flush synchronization
authorAndy Lutomirski <luto@kernel.org>
Wed, 6 Jan 2016 20:21:01 +0000 (12:21 -0800)
committerIngo Molnar <mingo@kernel.org>
Mon, 11 Jan 2016 11:03:15 +0000 (12:03 +0100)
commitd730cf3d7cb876bcfbfdfe7e723fe33ec4bd4a87
treea91955974bf8281db543a6ae1fee03ffdc6a9011
parent1c36e91e9f8a2ec52ebefc29dc47db038ad1685c
x86/mm: Add barriers and document switch_mm()-vs-flush synchronization

When switch_mm() activates a new PGD, it also sets a bit that
tells other CPUs that the PGD is in use so that TLB flush IPIs
will be sent.  In order for that to work correctly, the bit
needs to be visible prior to loading the PGD and therefore
starting to fill the local TLB.

Document all the barriers that make this work correctly and add
a couple that were missing.

Signed-off-by: Andy Lutomirski <luto@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Cc: stable@vger.kernel.org
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/include/asm/mmu_context.h
arch/x86/mm/tlb.c