Messages in this thread Patch in this message | | | Subject | [PATCH] UV: cpu_relax in uv_wait_completion | From | Cliff Wickman <> | Date | Thu, 15 Jan 2009 09:51:20 -0600 |
| |
From: Cliff Wickman <cpw@sgi.com>
The function uv_wait_completion() spins on reads of a memory-mapped register, waiting for completion of BAU hardware replies. It should call "cpu_relax()" between those reads to improve performance on hyperthreaded configurations.
Signed-off-by: Cliff Wickman <cpw@sgi.com> Acked-by: Jack Steiner <steiner@sgi.org>
--- arch/x86/kernel/tlb_uv.c | 1 + 1 file changed, 1 insertion(+)
Index: linux/arch/x86/kernel/tlb_uv.c =================================================================== --- linux.orig/arch/x86/kernel/tlb_uv.c +++ linux/arch/x86/kernel/tlb_uv.c @@ -200,6 +200,7 @@ static int uv_wait_completion(struct bau destination_timeouts = 0; } } + cpu_relax(); } return FLUSH_COMPLETE; }
| |