From: cpw@sgi.com
To: linux-kernel@vger.kernel.org
Cc: mingo@elte.hu, x86@kernel.org
Subject: [patch 8/8 v4] x86, UV: correct UV2 BAU destination timeout
Date: Thu, 16 Jun 2011 10:10:40 -0500 [thread overview]
Message-ID: <20110616155353.597956401@sgi.com> (raw)
In-Reply-To: 20110616151032.729980001@gulag1.americas.sgi.com
[-- Attachment #1: tlb_uv_uv2timeout --]
[-- Type: text/plain, Size: 2288 bytes --]
Correct the UV2 broacast assist unit's destination timeout period.
And the activation status register in UV2 should be tested for a destination
timeout with a 4, not a 2. The values for Active versus Timeout were reversed.
This patch is critical for TLB shootdown on an Altix UV2 system (i.e. the
follow-on to the current Altix UV).
Diffed against 3.0.0-rc3
Signed-off-by: Cliff Wickman <cpw@sgi.com>
---
Destination timeout period:
The period is set in 4 bits of memory-mapped register MISC_CONTROL.
The left bit toggles base period between 10us and 80us.
The other 3 bits are the multiplier.
Decimal 15, hex f, gives the maximum: 7 * 80us
arch/x86/include/asm/uv/uv_bau.h | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
Index: linux/arch/x86/include/asm/uv/uv_bau.h
===================================================================
--- linux.orig/arch/x86/include/asm/uv/uv_bau.h
+++ linux/arch/x86/include/asm/uv/uv_bau.h
@@ -67,7 +67,7 @@
* we're using 655us, similar to UV1: 65 units of 10us
*/
#define UV1_INTD_SOFT_ACK_TIMEOUT_PERIOD (9UL)
-#define UV2_INTD_SOFT_ACK_TIMEOUT_PERIOD (65*10UL)
+#define UV2_INTD_SOFT_ACK_TIMEOUT_PERIOD (15UL)
#define UV_INTD_SOFT_ACK_TIMEOUT_PERIOD (is_uv1_hub() ? \
UV1_INTD_SOFT_ACK_TIMEOUT_PERIOD : \
@@ -106,12 +106,20 @@
#define DS_SOURCE_TIMEOUT 3
/*
* bits put together from HRP_LB_BAU_SB_ACTIVATION_STATUS_0/1/2
- * values 1 and 5 will not occur
+ * values 1 and 3 will not occur
+ * Decoded meaning ERROR BUSY AUX ERR
+ * ------------------------------- ---- ----- -------
+ * IDLE 0 0 0
+ * BUSY (active) 0 1 0
+ * SW Ack Timeout (destination) 1 0 0
+ * SW Ack INTD rejected (strong NACK) 1 0 1
+ * Source Side Time Out Detected 1 1 0
+ * Destination Side PUT Failed 1 1 1
*/
#define UV2H_DESC_IDLE 0
-#define UV2H_DESC_DEST_TIMEOUT 2
-#define UV2H_DESC_DEST_STRONG_NACK 3
-#define UV2H_DESC_BUSY 4
+#define UV2H_DESC_BUSY 2
+#define UV2H_DESC_DEST_TIMEOUT 4
+#define UV2H_DESC_DEST_STRONG_NACK 5
#define UV2H_DESC_SOURCE_TIMEOUT 6
#define UV2H_DESC_DEST_PUT_ERR 7
prev parent reply other threads:[~2011-06-16 15:54 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20110616151032.729980001@gulag1.americas.sgi.com>
2011-06-16 15:10 ` [patch 1/8 v4] x86, UV: smp_processor_id in a preemptable region cpw
2011-06-16 15:10 ` [patch 2/8 v4] x86, UV: inline header file functions cpw
2011-06-16 15:10 ` [patch 3/8 v4] x86, UV: allow for non-consecutive sockets cpw
2011-06-16 15:10 ` [patch 4/8 v4] x86, UV: correct reset_with_ipi() cpw
2011-06-16 15:10 ` [patch 5/8 v4] x86, UV: rename hubmask to pnmask cpw
2011-06-16 15:10 ` [patch 6/8 v4] x86, UV: remove cpumask_t from the stack cpw
2011-06-16 15:10 ` [patch 7/8 v4] x86, UV: correct failed topology memory leak cpw
2011-06-16 15:10 ` cpw [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110616155353.597956401@sgi.com \
--to=cpw@sgi.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox