projects
/
sdk
/
emulator
/
qemu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Don't look up pid/tid on YAGL_LOG_FUNC_SET
[sdk/emulator/qemu.git]
/
numa.c
diff --git
a/numa.c
b/numa.c
index
da27bf8
..
9c09e45
100644
(file)
--- a/
numa.c
+++ b/
numa.c
@@
-217,20
+217,20
@@
static int parse_numa(void *opaque, QemuOpts *opts, Error **errp)
Error *err = NULL;
{
Error *err = NULL;
{
-
OptsVisitor *o
v = opts_visitor_new(opts);
- visit_type_NumaOptions(
opts_get_visitor(ov)
, NULL, &object, &err);
-
opts_visitor_cleanup(o
v);
+
Visitor *
v = opts_visitor_new(opts);
+ visit_type_NumaOptions(
v
, NULL, &object, &err);
+
visit_free(
v);
}
if (err) {
}
if (err) {
- goto e
rror
;
+ goto e
nd
;
}
switch (object->type) {
case NUMA_OPTIONS_KIND_NODE:
}
switch (object->type) {
case NUMA_OPTIONS_KIND_NODE:
- numa_node_parse(object->u.node, opts, &err);
+ numa_node_parse(object->u.node
.data
, opts, &err);
if (err) {
if (err) {
- goto e
rror
;
+ goto e
nd
;
}
nb_numa_nodes++;
break;
}
nb_numa_nodes++;
break;
@@
-238,13
+238,14
@@
static int parse_numa(void *opaque, QemuOpts *opts, Error **errp)
abort();
}
abort();
}
- return 0;
-
-error:
- error_report_err(err);
+end:
qapi_free_NumaOptions(object);
qapi_free_NumaOptions(object);
+ if (err) {
+ error_report_err(err);
+ return -1;
+ }
- return
-1
;
+ return
0
;
}
static char *enumerate_cpus(unsigned long *cpus, int max_cpus)
}
static char *enumerate_cpus(unsigned long *cpus, int max_cpus)
@@
-463,6
+464,7
@@
void memory_region_allocate_system_memory(MemoryRegion *mr, Object *owner,
exit(1);
}
exit(1);
}
+ host_memory_backend_set_mapped(backend, true);
memory_region_add_subregion(mr, addr, seg);
vmstate_register_ram_global(seg);
addr += size;
memory_region_add_subregion(mr, addr, seg);
vmstate_register_ram_global(seg);
addr += size;
@@
-482,7
+484,7
@@
static void numa_stat_memory_devices(uint64_t node_mem[])
if (value) {
switch (value->type) {
case MEMORY_DEVICE_INFO_KIND_DIMM:
if (value) {
switch (value->type) {
case MEMORY_DEVICE_INFO_KIND_DIMM:
- node_mem[value->u.dimm
->node] += value->u.dimm
->size;
+ node_mem[value->u.dimm
.data->node] += value->u.dimm.data
->size;
break;
default:
break;
break;
default:
break;
@@
-548,3
+550,15
@@
MemdevList *qmp_query_memdev(Error **errp)
object_child_foreach(obj, query_memdev, &list);
return list;
}
object_child_foreach(obj, query_memdev, &list);
return list;
}
+
+int numa_get_node_for_cpu(int idx)
+{
+ int i;
+
+ for (i = 0; i < nb_numa_nodes; i++) {
+ if (test_bit(idx, numa_info[i].node_cpu)) {
+ break;
+ }
+ }
+ return i;
+}