aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include
diff options
context:
space:
mode:
authorCliff Wickman <cpw@sgi.com>2010-06-02 17:22:02 -0400
committerIngo Molnar <mingo@elte.hu>2010-06-08 15:13:48 -0400
commit450a007eebaf430426ea8f89bbc3f287949905b2 (patch)
treebb44fa25f4855f82e84a788bbdb8cda5a05a7a4f /arch/x86/include
parent7fba1bcd4844a4a8619a03bf51cabc92aea365a8 (diff)
x86, UV: BAU broadcast to the local hub
Make the Broadcast Assist Unit driver use the BAU for TLB shootdowns of cpu's on the local uvhub. It was previously thought that IPI might be faster to the cpu's on the local hub. But the IPI operation would have to follow the completion of the BAU broadcast anyway. So we broadcast to the local uvhub in all cases except when the current cpu was the only local cpu in the mask. This simplifies uv_flush_send_and_wait() in that it returns either all shootdowns complete, or none. Adjust the statistics to account for shootdowns on the local uvhub. Signed-off-by: Cliff Wickman <cpw@sgi.com> Cc: gregkh@suse.de LKML-Reference: <E1OJvNy-0004aq-G7@eag09.americas.sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/include')
-rw-r--r--arch/x86/include/asm/uv/uv_bau.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
index c19b870ea58a..7f6ea611cb71 100644
--- a/arch/x86/include/asm/uv/uv_bau.h
+++ b/arch/x86/include/asm/uv/uv_bau.h
@@ -346,6 +346,11 @@ struct ptc_stats {
346 unsigned long s_time; /* time spent in sending side */ 346 unsigned long s_time; /* time spent in sending side */
347 unsigned long s_retriesok; /* successful retries */ 347 unsigned long s_retriesok; /* successful retries */
348 unsigned long s_ntargcpu; /* total number of cpu's targeted */ 348 unsigned long s_ntargcpu; /* total number of cpu's targeted */
349 unsigned long s_ntargself; /* times the sending cpu was targeted */
350 unsigned long s_ntarglocals; /* targets of cpus on the local blade */
351 unsigned long s_ntargremotes; /* targets of cpus on remote blades */
352 unsigned long s_ntarglocaluvhub; /* targets of the local hub */
353 unsigned long s_ntargremoteuvhub; /* remotes hubs targeted */
349 unsigned long s_ntarguvhub; /* total number of uvhubs targeted */ 354 unsigned long s_ntarguvhub; /* total number of uvhubs targeted */
350 unsigned long s_ntarguvhub16; /* number of times target hubs >= 16*/ 355 unsigned long s_ntarguvhub16; /* number of times target hubs >= 16*/
351 unsigned long s_ntarguvhub8; /* number of times target hubs >= 8 */ 356 unsigned long s_ntarguvhub8; /* number of times target hubs >= 8 */