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 /arch/x86/platform | |
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>
Diffstat (limited to 'arch/x86/platform')
-rw-r--r-- | arch/x86/platform/uv/tlb_uv.c | 12 |
1 files changed, 7 insertions, 5 deletions
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, |