From: Cliff Wickman Date: Thu, 15 Jan 2009 15:51:20 +0000 (-0600) Subject: x86, UV: cpu_relax in uv_wait_completion X-Git-Tag: v2.6.29-rc3~42^2~24 X-Git-Url: http://pilppa.com/gitweb/?a=commitdiff_plain;h=18c07cf530cf4aa8b7551801f68ed40db5ee4e45;p=linux-2.6-omap-h63xx.git x86, UV: cpu_relax in uv_wait_completion 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 Acked-by: Jack Steiner Signed-off-by: Ingo Molnar --- diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c index f885023167e..6812b829ed8 100644 --- a/arch/x86/kernel/tlb_uv.c +++ b/arch/x86/kernel/tlb_uv.c @@ -200,6 +200,7 @@ static int uv_wait_completion(struct bau_desc *bau_desc, destination_timeouts = 0; } } + cpu_relax(); } return FLUSH_COMPLETE; }