WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] x86/numa: fix c/s 20120 (Fix SRAT check f

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86/numa: fix c/s 20120 (Fix SRAT check for discontig memory)
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Mon, 31 Aug 2009 03:00:23 -0700
Delivery-date: Mon, 31 Aug 2009 03:01:09 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1251709817 -3600
# Node ID 27b3bd0a47fd8b020ce06567658237f3d25227f9
# Parent  cf95641ba1d0a6a868f161a45a48f8aac9dd54d3
x86/numa: fix c/s 20120 (Fix SRAT check for discontig memory)

That change converted the (wrong) assumption of contiguous nodes'
memory to a similarly wrong one of assuming discontiguous memory (i.e.
each node having separate E820 table entries). The code ought to be
able to deal with both, though, and I hope this change makes it so.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>
Acked-by: Alex Williamson <alex.williamson@xxxxxx>
---
 xen/arch/x86/srat.c |   26 +++++++++++++++++---------
 1 files changed, 17 insertions(+), 9 deletions(-)

diff -r cf95641ba1d0 -r 27b3bd0a47fd xen/arch/x86/srat.c
--- a/xen/arch/x86/srat.c       Mon Aug 31 10:09:12 2009 +0100
+++ b/xen/arch/x86/srat.c       Mon Aug 31 10:10:17 2009 +0100
@@ -249,15 +249,23 @@ static int nodes_cover_memory(void)
                start = e820.map[i].addr;
                end = e820.map[i].addr + e820.map[i].size - 1;
 
-               found = 0;
-               for_each_node_mask(j, nodes_parsed) {
-                       if (start >= nodes[j].start && end <= nodes[j].end) {
-                               found = 1;
-                               break;
-                       }
-               }
-
-               if (!found) {
+               do {
+                       found = 0;
+                       for_each_node_mask(j, nodes_parsed)
+                               if (start < nodes[j].end
+                                   && end > nodes[j].start) {
+                                       if (start >= nodes[j].start) {
+                                               start = nodes[j].end;
+                                               found = 1;
+                                       }
+                                       if (end <= nodes[j].end) {
+                                               end = nodes[j].start;
+                                               found = 1;
+                                       }
+                               }
+               } while (found && start < end);
+
+               if (start < end) {
                        printk(KERN_ERR "SRAT: No PXM for e820 range: "
                                "%016Lx - %016Lx\n", start, end);
                        return 0;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86/numa: fix c/s 20120 (Fix SRAT check for discontig memory), Xen patchbot-unstable <=