All of lore.kernel.org
 help / color / mirror / Atom feed
* [Patch] XPC fails to discover partitions with all nasids above 128.
       [not found] <20101118194132.866093909@gulag1.americas.sgi.com>
@ 2010-11-18 19:41 ` Robin Holt
  0 siblings, 0 replies; 2+ messages in thread
From: Robin Holt @ 2010-11-18 19:41 UTC (permalink / raw)
  To: Robin Holt, Andrew Morton; +Cc: stable, linux-kernel

[-- Attachment #1: uv_max_regions --]
[-- Type: text/plain, Size: 1706 bytes --]

UV hardware defines 256 memory protection regions versus the baseline
64 with increasing size for the SN2 ia64.  This was overlooked when XPC
was modified to accomodate both UV and SN2.

Without this patch, a user could reconfigure their existing system and
suddenly disable cross-partition communications with no indication of
what has gone wrong.  It also prevents larger configurations from using
cross-partition communication.

Signed-off-by: Robin Holt <holt@sgi.com>
Cc: stable@kernel.org
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org

---

 drivers/misc/sgi-xp/xpc_partition.c |   25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

Index: pv1012187/drivers/misc/sgi-xp/xpc_partition.c
===================================================================
--- pv1012187.orig/drivers/misc/sgi-xp/xpc_partition.c	2010-11-11 15:03:16.384656975 -0600
+++ pv1012187/drivers/misc/sgi-xp/xpc_partition.c	2010-11-11 15:03:17.783480143 -0600
@@ -439,18 +439,23 @@ xpc_discovery(void)
 	 * nodes that can comprise an access protection grouping. The access
 	 * protection is in regards to memory, IOI and IPI.
 	 */
-	max_regions = 64;
 	region_size = xp_region_size;
 
-	switch (region_size) {
-	case 128:
-		max_regions *= 2;
-	case 64:
-		max_regions *= 2;
-	case 32:
-		max_regions *= 2;
-		region_size = 16;
-		DBUG_ON(!is_shub2());
+	if (is_uv())
+		max_regions = 256;
+	else {
+		max_regions = 64;
+
+		switch (region_size) {
+		case 128:
+			max_regions *= 2;
+		case 64:
+			max_regions *= 2;
+		case 32:
+			max_regions *= 2;
+			region_size = 16;
+			DBUG_ON(!is_shub2());
+		}
 	}
 
 	for (region = 0; region < max_regions; region++) {


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

* [Patch] XPC fails to discover partitions with all nasids above 128.
       [not found] <20101111210506.081564086@gulag1.americas.sgi.com>
@ 2010-11-11 21:05 ` Robin, Holt <holt
  0 siblings, 0 replies; 2+ messages in thread
From: Robin, Holt <holt @ 2010-11-11 21:05 UTC (permalink / raw)
  To: Robin Holt, Andrew Morton; +Cc: stable, linux-kernel

[-- Attachment #1: uv_max_regions --]
[-- Type: text/plain, Size: 1706 bytes --]

UV hardware defines 256 memory protection regions versus the baseline
64 with increasing size for the SN2 ia64.  This was overlooked when XPC
was modified to accomodate both UV and SN2.

Without this patch, a user could reconfigure their existing system and
suddenly disable cross-partition communications with no indication of
what has gone wrong.  It also prevents larger configurations from using
cross-partition communication.

Signed-off-by: Robin Holt <holt@sgi.com>
Cc: stable@kernel.org
To: Andrew Morton <akpm@linux-foundation.org>
Cc: linux-kernel@vger.kernel.org

---

 drivers/misc/sgi-xp/xpc_partition.c |   25 +++++++++++++++----------
 1 file changed, 15 insertions(+), 10 deletions(-)

Index: pv1012187/drivers/misc/sgi-xp/xpc_partition.c
===================================================================
--- pv1012187.orig/drivers/misc/sgi-xp/xpc_partition.c	2010-11-11 15:01:51.963024726 -0600
+++ pv1012187/drivers/misc/sgi-xp/xpc_partition.c	2010-11-11 15:02:26.471574791 -0600
@@ -439,18 +439,23 @@ xpc_discovery(void)
 	 * nodes that can comprise an access protection grouping. The access
 	 * protection is in regards to memory, IOI and IPI.
 	 */
-	max_regions = 64;
 	region_size = xp_region_size;
 
-	switch (region_size) {
-	case 128:
-		max_regions *= 2;
-	case 64:
-		max_regions *= 2;
-	case 32:
-		max_regions *= 2;
-		region_size = 16;
-		DBUG_ON(!is_shub2());
+	if (is_uv())
+		max_regions = 256;
+	else {
+		max_regions = 64;
+
+		switch (region_size) {
+		case 128:
+			max_regions *= 2;
+		case 64:
+			max_regions *= 2;
+		case 32:
+			max_regions *= 2;
+			region_size = 16;
+			DBUG_ON(!is_shub2());
+		}
 	}
 
 	for (region = 0; region < max_regions; region++) {


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

end of thread, other threads:[~2010-11-18 19:41 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20101118194132.866093909@gulag1.americas.sgi.com>
2010-11-18 19:41 ` [Patch] XPC fails to discover partitions with all nasids above 128 Robin Holt
     [not found] <20101111210506.081564086@gulag1.americas.sgi.com>
2010-11-11 21:05 ` Robin, Holt <holt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.