diff options
author | Cliff Wickman <cpw@sgi.com> | 2012-01-16 16:22:38 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2012-01-17 03:09:59 -0500 |
commit | b54bd9be35f4084edb3eb9ee054a43f722a67483 (patch) | |
tree | e4da5a701da9942f77b0f317296d75f6cec9ecb8 | |
parent | 88ed9dd7f63c3ae71c1984d99ee2dced0b386dea (diff) |
x86/UV2: Add accounting for BAU strong nacks
This patch adds separate accounting of UV2 message "strong
nack's" in the BAU statistics.
Signed-off-by: Cliff Wickman <cpw@sgi.com>
Link: http://lkml.kernel.org/r/20120116212238.GF5767@sgi.com
Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r-- | arch/x86/include/asm/uv/uv_bau.h | 1 | ||||
-rw-r--r-- | arch/x86/platform/uv/tlb_uv.c | 12 |
2 files changed, 8 insertions, 5 deletions
diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h index 1b82f7e87393..becf47b81735 100644 --- a/arch/x86/include/asm/uv/uv_bau.h +++ b/arch/x86/include/asm/uv/uv_bau.h | |||
@@ -483,6 +483,7 @@ struct ptc_stats { | |||
483 | requests */ | 483 | requests */ |
484 | unsigned long s_stimeout; /* source side timeouts */ | 484 | unsigned long s_stimeout; /* source side timeouts */ |
485 | unsigned long s_dtimeout; /* destination side timeouts */ | 485 | unsigned long s_dtimeout; /* destination side timeouts */ |
486 | unsigned long s_strongnacks; /* number of strong nack's */ | ||
486 | unsigned long s_time; /* time spent in sending side */ | 487 | unsigned long s_time; /* time spent in sending side */ |
487 | unsigned long s_retriesok; /* successful retries */ | 488 | unsigned long s_retriesok; /* successful retries */ |
488 | unsigned long s_ntargcpu; /* total number of cpu's | 489 | unsigned long s_ntargcpu; /* total number of cpu's |
diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c index 4686bf1e56ec..9be4cff00a2d 100644 --- a/arch/x86/platform/uv/tlb_uv.c +++ b/arch/x86/platform/uv/tlb_uv.c | |||
@@ -635,13 +635,15 @@ static int uv2_wait_completion(struct bau_desc *bau_desc, | |||
635 | * our message and its state will stay IDLE. | 635 | * our message and its state will stay IDLE. |
636 | */ | 636 | */ |
637 | if ((descriptor_stat == UV2H_DESC_SOURCE_TIMEOUT) || | 637 | if ((descriptor_stat == UV2H_DESC_SOURCE_TIMEOUT) || |
638 | (descriptor_stat == UV2H_DESC_DEST_STRONG_NACK) || | ||
639 | (descriptor_stat == UV2H_DESC_DEST_PUT_ERR)) { | 638 | (descriptor_stat == UV2H_DESC_DEST_PUT_ERR)) { |
640 | stat->s_stimeout++; | 639 | stat->s_stimeout++; |
641 | return FLUSH_GIVEUP; | 640 | return FLUSH_GIVEUP; |
641 | } else if (descriptor_stat == UV2H_DESC_DEST_STRONG_NACK) { | ||
642 | stat->s_strongnacks++; | ||
643 | bcp->conseccompletes = 0; | ||
644 | return FLUSH_GIVEUP; | ||
642 | } else if (descriptor_stat == UV2H_DESC_DEST_TIMEOUT) { | 645 | } else if (descriptor_stat == UV2H_DESC_DEST_TIMEOUT) { |
643 | stat->s_dtimeout++; | 646 | stat->s_dtimeout++; |
644 | ttm = get_cycles(); | ||
645 | bcp->conseccompletes = 0; | 647 | bcp->conseccompletes = 0; |
646 | return FLUSH_RETRY_TIMEOUT; | 648 | return FLUSH_RETRY_TIMEOUT; |
647 | } else { | 649 | } else { |
@@ -1346,7 +1348,7 @@ static int ptc_seq_show(struct seq_file *file, void *data) | |||
1346 | seq_printf(file, | 1348 | seq_printf(file, |
1347 | "remotehub numuvhubs numuvhubs16 numuvhubs8 "); | 1349 | "remotehub numuvhubs numuvhubs16 numuvhubs8 "); |
1348 | seq_printf(file, | 1350 | seq_printf(file, |
1349 | "numuvhubs4 numuvhubs2 numuvhubs1 dto retries rok "); | 1351 | "numuvhubs4 numuvhubs2 numuvhubs1 dto snacks retries rok "); |
1350 | seq_printf(file, | 1352 | seq_printf(file, |
1351 | "resetp resett giveup sto bz throt swack recv rtime "); | 1353 | "resetp resett giveup sto bz throt swack recv rtime "); |
1352 | seq_printf(file, | 1354 | seq_printf(file, |
@@ -1364,10 +1366,10 @@ static int ptc_seq_show(struct seq_file *file, void *data) | |||
1364 | stat->s_ntargremotes, stat->s_ntargcpu, | 1366 | stat->s_ntargremotes, stat->s_ntargcpu, |
1365 | stat->s_ntarglocaluvhub, stat->s_ntargremoteuvhub, | 1367 | stat->s_ntarglocaluvhub, stat->s_ntargremoteuvhub, |
1366 | stat->s_ntarguvhub, stat->s_ntarguvhub16); | 1368 | stat->s_ntarguvhub, stat->s_ntarguvhub16); |
1367 | seq_printf(file, "%ld %ld %ld %ld %ld ", | 1369 | seq_printf(file, "%ld %ld %ld %ld %ld %ld ", |
1368 | stat->s_ntarguvhub8, stat->s_ntarguvhub4, | 1370 | stat->s_ntarguvhub8, stat->s_ntarguvhub4, |
1369 | stat->s_ntarguvhub2, stat->s_ntarguvhub1, | 1371 | stat->s_ntarguvhub2, stat->s_ntarguvhub1, |
1370 | stat->s_dtimeout); | 1372 | stat->s_dtimeout, stat->s_strongnacks); |
1371 | seq_printf(file, "%ld %ld %ld %ld %ld %ld %ld %ld ", | 1373 | seq_printf(file, "%ld %ld %ld %ld %ld %ld %ld %ld ", |
1372 | stat->s_retry_messages, stat->s_retriesok, | 1374 | stat->s_retry_messages, stat->s_retriesok, |
1373 | stat->s_resets_plug, stat->s_resets_timeout, | 1375 | stat->s_resets_plug, stat->s_resets_timeout, |