diff options
author | Jan Beulich <jbeulich@suse.com> | 2013-09-30 15:28:12 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2013-09-30 15:28:12 +0200 |
commit | ca145fe70bad3a25ad54c6ded1ef237e45a2311e (patch) | |
tree | 8f8d0777a9dd4d77ce09d239632b30de8f81d75c /xen/arch/x86/srat.c | |
parent | 28b706efb6abb637fabfd74cde70a50935a5640b (diff) | |
download | xen-ca145fe70bad3a25ad54c6ded1ef237e45a2311e.tar.gz xen-ca145fe70bad3a25ad54c6ded1ef237e45a2311e.tar.bz2 xen-ca145fe70bad3a25ad54c6ded1ef237e45a2311e.zip |
x86: don't blindly create L3 tables for the direct map
Now that the direct map area can extend all the way up to almost the
end of address space, this is wasteful.
Also fold two almost redundant messages in SRAT parsing into one.
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Tested-by: Malcolm Crossley <malcolm.crossley@citrix.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'xen/arch/x86/srat.c')
-rw-r--r-- | xen/arch/x86/srat.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/xen/arch/x86/srat.c b/xen/arch/x86/srat.c index ff73881652..2b052721c4 100644 --- a/xen/arch/x86/srat.c +++ b/xen/arch/x86/srat.c @@ -113,6 +113,7 @@ static __init void bad_srat(void) apicid_to_node[i] = NUMA_NO_NODE; for (i = 0; i < ARRAY_SIZE(pxm2node); i++) pxm2node[i] = NUMA_NO_NODE; + mem_hotplug = 0; } /* @@ -257,13 +258,6 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) return; } /* It is fine to add this area to the nodes data it will be used later*/ - if (ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) - { - printk(KERN_INFO "SRAT: hot plug zone found %"PRIx64" - %"PRIx64" \n", - start, end); - mem_hotplug = 1; - } - i = conflicting_memblks(start, end); if (i == node) { printk(KERN_WARNING @@ -287,8 +281,11 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) if (nd->end < end) nd->end = end; } - printk(KERN_INFO "SRAT: Node %u PXM %u %"PRIx64"-%"PRIx64"\n", node, pxm, - start, end); + if ((ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE) && end > mem_hotplug) + mem_hotplug = end; + printk(KERN_INFO "SRAT: Node %u PXM %u %"PRIx64"-%"PRIx64"%s\n", + node, pxm, start, end, + ma->flags & ACPI_SRAT_MEM_HOT_PLUGGABLE ? " (hotplug)" : ""); node_memblk_range[num_node_memblks].start = start; node_memblk_range[num_node_memblks].end = end; |