aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/uv
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/include/asm/uv')
-rw-r--r--arch/x86/include/asm/uv/uv_bau.h90
1 files changed, 51 insertions, 39 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]);