aboutsummaryrefslogtreecommitdiffstats
path: root/arch
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:45 -0400
commit4faca1550838708d71f6eea14cdacb0876c3a5a4 (patch)
tree29e99a3673d2e7f54a986f4c0c763f779944a168 /arch
parent712157aa703a01f58c7c17452096ab00b774d0a9 (diff)
x86, UV: BAU structure rearranging
Move some structure definitions from the C code to the BAU header file, and change the organization of that header file a little. Signed-off-by: Cliff Wickman <cpw@sgi.com> Cc: gregkh@suse.de LKML-Reference: <E1OJvNy-0004aI-54@eag09.americas.sgi.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/include/asm/uv/uv_bau.h90
-rw-r--r--arch/x86/kernel/tlb_uv.c12
2 files changed, 51 insertions, 51 deletions
diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
index 6a42d42eb8f9..1c8f1e9bf74f 100644
--- a/arch/x86/include/asm/uv/uv_bau.h
+++ b/arch/x86/include/asm/uv/uv_bau.h
@@ -322,6 +322,57 @@ struct bau_payload_queue_entry {
322 /* bytes 24-31 */ 322 /* bytes 24-31 */
323}; 323};
324 324
325struct msg_desc {
326 struct bau_payload_queue_entry *msg;
327 int msg_slot;
328 int sw_ack_slot;
329 struct bau_payload_queue_entry *va_queue_first;
330 struct bau_payload_queue_entry *va_queue_last;
331};
332
333struct reset_args {
334 int sender;
335};
336
337/*
338 * This structure is allocated per_cpu for UV TLB shootdown statistics.
339 */
340struct ptc_stats {
341 /* sender statistics */
342 unsigned long s_giveup; /* number of fall backs to IPI-style flushes */
343 unsigned long s_requestor; /* number of shootdown requests */
344 unsigned long s_stimeout; /* source side timeouts */
345 unsigned long s_dtimeout; /* destination side timeouts */
346 unsigned long s_time; /* time spent in sending side */
347 unsigned long s_retriesok; /* successful retries */
348 unsigned long s_ntargcpu; /* total number of cpu's targeted */
349 unsigned long s_ntarguvhub; /* total number of uvhubs targeted */
350 unsigned long s_ntarguvhub16; /* number of times target hubs >= 16*/
351 unsigned long s_ntarguvhub8; /* number of times target hubs >= 8 */
352 unsigned long s_ntarguvhub4; /* number of times target hubs >= 4 */
353 unsigned long s_ntarguvhub2; /* number of times target hubs >= 2 */
354 unsigned long s_ntarguvhub1; /* number of times target hubs == 1 */
355 unsigned long s_resets_plug; /* ipi-style resets from plug state */
356 unsigned long s_resets_timeout; /* ipi-style resets from timeouts */
357 unsigned long s_busy; /* status stayed busy past s/w timer */
358 unsigned long s_throttles; /* waits in throttle */
359 unsigned long s_retry_messages; /* retry broadcasts */
360 unsigned long s_bau_reenabled; /* for bau enable/disable */
361 unsigned long s_bau_disabled; /* for bau enable/disable */
362 /* destination statistics */
363 unsigned long d_alltlb; /* times all tlb's on this cpu were flushed */
364 unsigned long d_onetlb; /* times just one tlb on this cpu was flushed */
365 unsigned long d_multmsg; /* interrupts with multiple messages */
366 unsigned long d_nomsg; /* interrupts with no message */
367 unsigned long d_time; /* time spent on destination side */
368 unsigned long d_requestee; /* number of messages processed */
369 unsigned long d_retries; /* number of retry messages processed */
370 unsigned long d_canceled; /* number of messages canceled by retries */
371 unsigned long d_nocanceled; /* retries that found nothing to cancel */
372 unsigned long d_resets; /* number of ipi-style requests processed */
373 unsigned long d_rcanceled; /* number of messages canceled by resets */
374};
375
325/* 376/*
326 * one per-cpu; to locate the software tables 377 * one per-cpu; to locate the software tables
327 */ 378 */
@@ -369,45 +420,6 @@ struct bau_control {
369 long period_requests; 420 long period_requests;
370}; 421};
371 422
372/*
373 * This structure is allocated per_cpu for UV TLB shootdown statistics.
374 */
375struct ptc_stats {
376 /* sender statistics */
377 unsigned long s_giveup; /* number of fall backs to IPI-style flushes */
378 unsigned long s_requestor; /* number of shootdown requests */
379 unsigned long s_stimeout; /* source side timeouts */
380 unsigned long s_dtimeout; /* destination side timeouts */
381 unsigned long s_time; /* time spent in sending side */
382 unsigned long s_retriesok; /* successful retries */
383 unsigned long s_ntargcpu; /* number of cpus targeted */
384 unsigned long s_ntarguvhub; /* number of uvhubs targeted */
385 unsigned long s_ntarguvhub16; /* number of times >= 16 target hubs */
386 unsigned long s_ntarguvhub8; /* number of times >= 8 target hubs */
387 unsigned long s_ntarguvhub4; /* number of times >= 4 target hubs */
388 unsigned long s_ntarguvhub2; /* number of times >= 2 target hubs */
389 unsigned long s_ntarguvhub1; /* number of times == 1 target hub */
390 unsigned long s_resets_plug; /* ipi-style resets from plug state */
391 unsigned long s_resets_timeout; /* ipi-style resets from timeouts */
392 unsigned long s_busy; /* status stayed busy past s/w timer */
393 unsigned long s_throttles; /* waits in throttle */
394 unsigned long s_retry_messages; /* retry broadcasts */
395 unsigned long s_bau_reenabled; /* for bau enable/disable */
396 unsigned long s_bau_disabled; /* for bau enable/disable */
397 /* destination statistics */
398 unsigned long d_alltlb; /* times all tlb's on this cpu were flushed */
399 unsigned long d_onetlb; /* times just one tlb on this cpu was flushed */
400 unsigned long d_multmsg; /* interrupts with multiple messages */
401 unsigned long d_nomsg; /* interrupts with no message */
402 unsigned long d_time; /* time spent on destination side */
403 unsigned long d_requestee; /* number of messages processed */
404 unsigned long d_retries; /* number of retry messages processed */
405 unsigned long d_canceled; /* number of messages canceled by retries */
406 unsigned long d_nocanceled; /* retries that found nothing to cancel */
407 unsigned long d_resets; /* number of ipi-style requests processed */
408 unsigned long d_rcanceled; /* number of messages canceled by resets */
409};
410
411static inline int bau_uvhub_isset(int uvhub, struct bau_target_uvhubmask *dstp) 423static inline int bau_uvhub_isset(int uvhub, struct bau_target_uvhubmask *dstp)
412{ 424{
413 return constant_test_bit(uvhub, &dstp->bits[0]); 425 return constant_test_bit(uvhub, &dstp->bits[0]);
diff --git a/arch/x86/kernel/tlb_uv.c b/arch/x86/kernel/tlb_uv.c
index 261b9653cde5..d75929039846 100644
--- a/arch/x86/kernel/tlb_uv.c
+++ b/arch/x86/kernel/tlb_uv.c
@@ -23,14 +23,6 @@
23#include <asm/irq_vectors.h> 23#include <asm/irq_vectors.h>
24#include <asm/timer.h> 24#include <asm/timer.h>
25 25
26struct msg_desc {
27 struct bau_payload_queue_entry *msg;
28 int msg_slot;
29 int sw_ack_slot;
30 struct bau_payload_queue_entry *va_queue_first;
31 struct bau_payload_queue_entry *va_queue_last;
32};
33
34/* timeouts in nanoseconds (indexed by UVH_AGING_PRESCALE_SEL urgency7 30:28) */ 26/* timeouts in nanoseconds (indexed by UVH_AGING_PRESCALE_SEL urgency7 30:28) */
35static int timeout_base_ns[] = { 27static int timeout_base_ns[] = {
36 20, 28 20,
@@ -79,10 +71,6 @@ static DEFINE_PER_CPU(struct ptc_stats, ptcstats);
79static DEFINE_PER_CPU(struct bau_control, bau_control); 71static DEFINE_PER_CPU(struct bau_control, bau_control);
80static DEFINE_PER_CPU(cpumask_var_t, uv_flush_tlb_mask); 72static DEFINE_PER_CPU(cpumask_var_t, uv_flush_tlb_mask);
81 73
82struct reset_args {
83 int sender;
84};
85
86/* 74/*
87 * Determine the first node on a uvhub. 'Nodes' are used for kernel 75 * Determine the first node on a uvhub. 'Nodes' are used for kernel
88 * memory allocation. 76 * memory allocation.