]> git.karo-electronics.de Git - karo-tx-linux.git/commit
arch/x86/platform/uv: fix incorrect tlb flush all issue
authorAlex Shi <alex.shi@intel.com>
Thu, 25 Oct 2012 01:14:40 +0000 (12:14 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Thu, 1 Nov 2012 04:24:00 +0000 (15:24 +1100)
commit0113ca584722cb1a6e61a871c2f3ce84c70b3128
tree3da46158ea1189f9979fc523aa40cfafcf98291c
parent39193197cdd2f31e521300a46953dc52c2ec3fe0
arch/x86/platform/uv: fix incorrect tlb flush all issue

The flush tlb optimization code has logical issue on UV platform.  It
doesn't flush the full range at all, since it simply ignores its 'end'
parameter (and hence also the "all" indicator) in uv_flush_tlb_others()
function.

Cliff's notes:

: I tested the patch on a UV.  It has the effect of either clearing 1 or all
: TLBs in a cpu.  I added some debugging to test for the cases when clearing
: all TLBs is overkill, and in practice it happens very seldom.

Reported-by: Jan Beulich <jbeulich@suse.com>
Signed-off-by: Alex Shi <alex.shi@intel.com>
Signed-off-by: Cliff Wickman <cpw@sgi.com>
Tested-by: Cliff Wickman <cpw@sgi.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
arch/x86/include/asm/uv/uv.h
arch/x86/platform/uv/tlb_uv.c