Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1670855 > unrolled thread
| Started by | Michael Bringmann <mwb@linux.vnet.ibm.com> |
|---|---|
| First post | 2017-06-20 17:20 +0200 |
| Last post | 2017-06-21 16:30 +0200 |
| Articles | 3 — 2 participants |
Back to article view | Back to linux.kernel
This discussion starts older than the indexed window; earlier articles aren't shown. The article labeled Started by
below is the oldest one visible, not the original post.
[PATCH V6 1/2] powerpc/hotplug: Ensure enough nodes avail for operations Michael Bringmann <mwb@linux.vnet.ibm.com> - 2017-06-20 17:20 +0200
Re: [PATCH V6 1/2] powerpc/hotplug: Ensure enough nodes avail for operations Michael Ellerman <mpe@ellerman.id.au> - 2017-06-21 12:00 +0200
Re: [PATCH V6 1/2] powerpc/hotplug: Ensure enough nodes avail for operations Michael Bringmann <mwb@linux.vnet.ibm.com> - 2017-06-21 16:30 +0200
| From | Michael Bringmann <mwb@linux.vnet.ibm.com> |
|---|---|
| Date | 2017-06-20 17:20 +0200 |
| Subject | [PATCH V6 1/2] powerpc/hotplug: Ensure enough nodes avail for operations |
| Message-ID | <tUt6G-1QX-29@gated-at.bofh.it> |
powerpc/hotplug: On systems like PowerPC which allow 'hot-add' of CPU
or memory resources, it may occur that the new resources are to be
inserted into nodes that were not used for these resources at bootup.
In the kernel, any node that is used must be defined and initialized
at boot. In order to meet both needs, this patch adds a new kernel
command line option (numnodes=<int>) for use by the PowerPC architecture-
specific code that defines the maximum number of nodes that the kernel
will ever need in its current hardware environment. The boot code that
initializes nodes for PowerPC will read this value and use it to ensure
that all of the desired nodes are setup in the 'node_possible_map', and
elsewhere.
Signed-off-by: Michael Bringmann <mwb@linux.vnet.ibm.com>
---
---
arch/powerpc/mm/numa.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/arch/powerpc/mm/numa.c b/arch/powerpc/mm/numa.c
index e6f742d..0746d93 100644
--- a/arch/powerpc/mm/numa.c
+++ b/arch/powerpc/mm/numa.c
@@ -60,10 +60,27 @@
static int n_mem_addr_cells, n_mem_size_cells;
static int form1_affinity;
+#define TOPOLOGY_DEF_NUM_NODES 0
#define MAX_DISTANCE_REF_POINTS 4
static int distance_ref_points_depth;
static const __be32 *distance_ref_points;
static int distance_lookup_table[MAX_NUMNODES][MAX_DISTANCE_REF_POINTS];
+static int topology_num_nodes = TOPOLOGY_DEF_NUM_NODES;
+
+/*
+ * Topology-related early parameters
+ */
+static int __init early_num_nodes(char *p)
+{
+ if (!p)
+ return 1;
+
+ topology_num_nodes = memparse(p, &p);
+ dbg("topology num nodes = 0x%d\n", topology_num_nodes);
+
+ return 0;
+}
+early_param("numnodes", early_num_nodes);
/*
* Allocate node_to_cpumask_map based on number of available nodes
@@ -892,6 +909,18 @@ static void __init setup_node_data(int nid, u64 start_pfn, u64 end_pfn)
NODE_DATA(nid)->node_spanned_pages = spanned_pages;
}
+static void __init setup_min_nodes(void)
+{
+ int i, l = topology_num_nodes;
+
+ for (i = 0; i < l; i++) {
+ if (!node_possible(i)) {
+ setup_node_data(i, 0, 0);
+ node_set(i, node_possible_map);
+ }
+ }
+}
+
void __init initmem_init(void)
{
int nid, cpu;
@@ -911,6 +940,8 @@ void __init initmem_init(void)
*/
nodes_and(node_possible_map, node_possible_map, node_online_map);
+ setup_min_nodes();
+
for_each_online_node(nid) {
unsigned long start_pfn, end_pfn;
[toc] | [next] | [standalone]
| From | Michael Ellerman <mpe@ellerman.id.au> |
|---|---|
| Date | 2017-06-21 12:00 +0200 |
| Subject | Re: [PATCH V6 1/2] powerpc/hotplug: Ensure enough nodes avail for operations |
| Message-ID | <tUKAz-4rR-27@gated-at.bofh.it> |
| In reply to | #1670855 |
Michael Bringmann <mwb@linux.vnet.ibm.com> writes: > powerpc/hotplug: On systems like PowerPC which allow 'hot-add' of CPU > or memory resources, it may occur that the new resources are to be > inserted into nodes that were not used for these resources at bootup. > In the kernel, any node that is used must be defined and initialized > at boot. In order to meet both needs, this patch adds a new kernel > command line option (numnodes=<int>) for use by the PowerPC architecture- Sorry, that's a hack. I thought you were going to use firmware properties to find the set of possible nodes. Did that not work? cheers
[toc] | [prev] | [next] | [standalone]
| From | Michael Bringmann <mwb@linux.vnet.ibm.com> |
|---|---|
| Date | 2017-06-21 16:30 +0200 |
| Message-ID | <tUONQ-7dN-19@gated-at.bofh.it> |
| In reply to | #1671578 |
On 06/21/2017 04:52 AM, Michael Ellerman wrote: > Michael Bringmann <mwb@linux.vnet.ibm.com> writes: > >> powerpc/hotplug: On systems like PowerPC which allow 'hot-add' of CPU >> or memory resources, it may occur that the new resources are to be >> inserted into nodes that were not used for these resources at bootup. >> In the kernel, any node that is used must be defined and initialized >> at boot. In order to meet both needs, this patch adds a new kernel >> command line option (numnodes=<int>) for use by the PowerPC architecture- > > Sorry, that's a hack. It is an intermediate step pending the provision of the firmware properties under discussion that were mentioned by Nathan Fontenot last week. > I thought you were going to use firmware properties to find the set of > possible nodes. Did that not work? Inference based on the current set of firmware properties for associativity is insufficient. That is partly the reason for the properties mentioned by Nathan last week. The current firmware properties only cover what is known at boot time. They do not cover expansions from DLPAR / hot-add operations which can add up to everything else on the system. > cheers Regards, -- Michael W. Bringmann Linux Technology Center IBM Corporation Tie-Line 363-5196 External: (512) 286-5196 Cell: (512) 466-0650 mwb@linux.vnet.ibm.com
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web