[xen stable-4.9] xen/arm: Correctly report the memory region in the dummy NUMA helpers
Author: Julien Grall <[hidden email]>
AuthorDate: Fri Oct 6 14:59:38 2017 +0200
Commit: Jan Beulich <[hidden email]>
CommitDate: Fri Oct 6 14:59:38 2017 +0200
xen/arm: Correctly report the memory region in the dummy NUMA helpers
NUMA is currently not supported on Arm. Because common code is
NUMA-aware, dummy helpers are instead provided to expose a single node.
Those helpers are for instance used to know the region to scrub.
However the memory region is not reported correctly. Indeed, the
frametable may not be at the beginning of the memory and there might be
multiple memory banks. This will lead to not scrub some part of the
The memory information can be found using:
* first_valid_mfn as the start of the memory
* max_page - first_valid_mfn as the spanned pages
Note that first_valid_mfn is now been exported. The prototype has been
added in asm-arm/numa.h and not in a common header because I would
expect the variable to become static once NUMA is fully supported on
-static unsigned long __initdata first_valid_mfn = ~0UL;
+ * first_valid_mfn is exported because it is use in ARM specific NUMA
+ * helpers. See comment in asm-arm/numa.h.
+unsigned long first_valid_mfn = ~0UL;
+ * TODO: make first_valid_mfn static when NUMA is supported on Arm, this
+ * is required because the dummy helpers are using it.
+extern unsigned long first_valid_mfn;
/* XXX: implement NUMA support */
-#define node_spanned_pages(nid) (total_pages)
-#define node_start_pfn(nid) (pdx_to_pfn(frametable_base_pdx))
+#define node_spanned_pages(nid) (max_page - first_valid_mfn)
+#define node_start_pfn(nid) (first_valid_mfn)
#define __node_distance(a, b) (20)
static inline unsigned int arch_get_dma_bitsize(void)
generated by git-patchbot for /home/xen/git/xen.git#stable-4.9