mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH v2] x86: UV broadcast assist unit base destination node id
@ 2011-03-09 14:15 Cliff Wickman
  2011-03-09 15:39 ` [tip:x86/urgent] x86, UV: Initialize the broadcast assist unit base destination node id properly tip-bot for Cliff Wickman
  0 siblings, 1 reply; 2+ messages in thread
From: Cliff Wickman @ 2011-03-09 14:15 UTC (permalink / raw)
  To: linux-kernel; +Cc: mingo

From: Cliff Wickman <cpw@sgi.com>

> >  Diffed against 2.6.32.1
>
> Please send a version against the latest x86 tree:
>
>  http://people.redhat.com/mingo/tip.git/README
>
> Thanks,
>
>       Ingo
Oops, I sent you a distro version of the patch.


The BAU's initialization of the broadcast description header is lacking
the coherence domain (high bits) in the nasid.  This causes a catastrophic
system failure when running on a system with multiple coherence domains. 

Diffed against 2.6.38-r8

Signed-off-by: Cliff Wickman <cpw@sgi.com>
---

 arch/x86/include/asm/uv/uv_bau.h |    2 +-
 arch/x86/platform/uv/tlb_uv.c    |    5 +++--
 2 files changed, 4 insertions(+), 3 deletions(-)

Index: linus.current/arch/x86/platform/uv/tlb_uv.c
===================================================================
--- linus.current.orig/arch/x86/platform/uv/tlb_uv.c
+++ linus.current/arch/x86/platform/uv/tlb_uv.c
@@ -1364,11 +1364,12 @@ uv_activation_descriptor_init(int node,
 		memset(bd2, 0, sizeof(struct bau_desc));
 		bd2->header.sw_ack_flag = 1;
 		/*
-		 * base_dest_nodeid is the nasid (pnode<<1) of the first uvhub
+		 * base_dest_nodeid is the nasid of the first uvhub
 		 * in the partition. The bit map will indicate uvhub numbers,
 		 * which are 0-N in a partition. Pnodes are unique system-wide.
 		 */
-		bd2->header.base_dest_nodeid = uv_partition_base_pnode << 1;
+		bd2->header.base_dest_nodeid =
+			UV_PNODE_TO_NASID(uv_partition_base_pnode);
 		bd2->header.dest_subnodeid = 0x10; /* the LB */
 		bd2->header.command = UV_NET_ENDPOINT_INTD;
 		bd2->header.int_both = 1;
Index: linus.current/arch/x86/include/asm/uv/uv_bau.h
===================================================================
--- linus.current.orig/arch/x86/include/asm/uv/uv_bau.h
+++ linus.current/arch/x86/include/asm/uv/uv_bau.h
@@ -176,7 +176,7 @@ struct bau_msg_payload {
 struct bau_msg_header {
 	unsigned int dest_subnodeid:6;	/* must be 0x10, for the LB */
 	/* bits 5:0 */
-	unsigned int base_dest_nodeid:15; /* nasid (pnode<<1) of */
+	unsigned int base_dest_nodeid:15; /* nasid of the */
 	/* bits 20:6 */			  /* first bit in uvhub map */
 	unsigned int command:8;	/* message type */
 	/* bits 28:21 */

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-03-09 15:40 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-03-09 14:15 [PATCH v2] x86: UV broadcast assist unit base destination node id Cliff Wickman
2011-03-09 15:39 ` [tip:x86/urgent] x86, UV: Initialize the broadcast assist unit base destination node id properly tip-bot for Cliff Wickman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®