]> git.kernelconcepts.de Git - karo-tx-linux.git/commit
arch/x86/platform/uv: fix incorrect tlb flush all issue
authorAlex Shi <alex.shi@intel.com>
Fri, 12 Oct 2012 04:22:49 +0000 (15:22 +1100)
committerStephen Rothwell <sfr@canb.auug.org.au>
Mon, 22 Oct 2012 04:01:04 +0000 (15:01 +1100)
commitec0b84fd96c3b18026dd9c27e43d99946bf462af
tree2225e1af8719ea41fbf0dec234400efa01f389af
parentbb9653754a1f837eab802aa3b4e3ba83e0c24b6a
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