Skip to content

Commit

Permalink
numa: Keep track of NUMA nodes present on the command-line
Browse files Browse the repository at this point in the history
Based on "enable sparse node numbering" patch from Nishanth Aravamudan,
but without the code to actually support sparse node IDs. This just adds
the code to keep track of present/non-present nodes on the command-line,
without changing any behavior.

Signed-off-by: Nishanth Aravamudan <nacc@linux.vnet.ibm.com>
[Rename max_numa_node to max_numa_nodeid -Eduardo]
[Initialize max_numa_nodeid to 0 -Eduardo]
[Use MAX() macro when setting max_numa_nodeid -Eduardo]
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Hu Tao <hutao@cn.fujitsu.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
  • Loading branch information
ehabkost authored and mstsirkin committed Jun 29, 2014
1 parent 2f5732e commit 1af878e
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 1 deletion.
7 changes: 6 additions & 1 deletion include/sysemu/sysemu.h
Expand Up @@ -146,11 +146,16 @@ extern int mem_prealloc;
*/
#define MAX_CPUMASK_BITS 255

extern int nb_numa_nodes;
extern int nb_numa_nodes; /* Number of NUMA nodes */
extern int max_numa_nodeid; /* Highest specified NUMA node ID, plus one.
* For all nodes, nodeid < max_numa_nodeid
*/

typedef struct node_info {
uint64_t node_mem;
DECLARE_BITMAP(node_cpu, MAX_CPUMASK_BITS);
struct HostMemoryBackend *node_memdev;
bool present;
} NodeInfo;
extern NodeInfo numa_info[MAX_NODES];
void set_numa_nodes(void);
Expand Down
2 changes: 2 additions & 0 deletions numa.c
Expand Up @@ -106,6 +106,8 @@ static void numa_node_parse(NumaNodeOptions *node, QemuOpts *opts, Error **errp)
numa_info[nodenr].node_mem = object_property_get_int(o, "size", NULL);
numa_info[nodenr].node_memdev = MEMORY_BACKEND(o);
}
numa_info[nodenr].present = true;
max_numa_nodeid = MAX(max_numa_nodeid, nodenr + 1);
}

int numa_init_func(QemuOpts *opts, void *opaque)
Expand Down
3 changes: 3 additions & 0 deletions vl.c
Expand Up @@ -196,6 +196,7 @@ static QTAILQ_HEAD(, FWBootEntry) fw_boot_order =
QTAILQ_HEAD_INITIALIZER(fw_boot_order);

int nb_numa_nodes;
int max_numa_nodeid;
NodeInfo numa_info[MAX_NODES];

uint8_t qemu_uuid[16];
Expand Down Expand Up @@ -2984,10 +2985,12 @@ int main(int argc, char **argv, char **envp)

for (i = 0; i < MAX_NODES; i++) {
numa_info[i].node_mem = 0;
numa_info[i].present = false;
bitmap_zero(numa_info[i].node_cpu, MAX_CPUMASK_BITS);
}

nb_numa_nodes = 0;
max_numa_nodeid = 0;
nb_nics = 0;

bdrv_init_with_whitelist();
Expand Down

0 comments on commit 1af878e

Please sign in to comment.