[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 03/12] numa: split out NumaOptions parsing into set_n
From: |
Eduardo Habkost |
Subject: |
[Qemu-devel] [PULL 03/12] numa: split out NumaOptions parsing into set_numa_options() |
Date: |
Wed, 30 May 2018 20:05:19 -0300 |
From: Igor Mammedov <address@hidden>
it will allow to reuse set_numa_options() for parsing
configuration commands received via QMP interface
Signed-off-by: Igor Mammedov <address@hidden>
Message-Id: <address@hidden>
Signed-off-by: Eduardo Habkost <address@hidden>
---
include/sysemu/numa.h | 1 +
numa.c | 46 +++++++++++++++++++++++++------------------
2 files changed, 28 insertions(+), 19 deletions(-)
diff --git a/include/sysemu/numa.h b/include/sysemu/numa.h
index 21713b7e2f..7a0ae751aa 100644
--- a/include/sysemu/numa.h
+++ b/include/sysemu/numa.h
@@ -22,6 +22,7 @@ struct NumaNodeMem {
};
extern NodeInfo numa_info[MAX_NODES];
+int parse_numa(void *opaque, QemuOpts *opts, Error **errp);
void parse_numa_opts(MachineState *ms);
void numa_complete_configuration(MachineState *ms);
void query_numa_node_mem(NumaNodeMem node_mem[]);
diff --git a/numa.c b/numa.c
index ad1d7934f2..53bd65a05d 100644
--- a/numa.c
+++ b/numa.c
@@ -169,28 +169,11 @@ static void parse_numa_distance(NumaDistOptions *dist,
Error **errp)
have_numa_distance = true;
}
-static int parse_numa(void *opaque, QemuOpts *opts, Error **errp)
+static
+void set_numa_options(MachineState *ms, NumaOptions *object, Error **errp)
{
- NumaOptions *object = NULL;
- MachineState *ms = opaque;
Error *err = NULL;
- {
- Visitor *v = opts_visitor_new(opts);
- visit_type_NumaOptions(v, NULL, &object, &err);
- visit_free(v);
- }
-
- if (err) {
- goto end;
- }
-
- /* Fix up legacy suffix-less format */
- if ((object->type == NUMA_OPTIONS_TYPE_NODE) && object->u.node.has_mem) {
- const char *mem_str = qemu_opt_get(opts, "mem");
- qemu_strtosz_MiB(mem_str, NULL, &object->u.node.mem);
- }
-
switch (object->type) {
case NUMA_OPTIONS_TYPE_NODE:
parse_numa_node(ms, &object->u.node, &err);
@@ -223,6 +206,31 @@ static int parse_numa(void *opaque, QemuOpts *opts, Error
**errp)
abort();
}
+end:
+ error_propagate(errp, err);
+}
+
+int parse_numa(void *opaque, QemuOpts *opts, Error **errp)
+{
+ NumaOptions *object = NULL;
+ MachineState *ms = MACHINE(opaque);
+ Error *err = NULL;
+ Visitor *v = opts_visitor_new(opts);
+
+ visit_type_NumaOptions(v, NULL, &object, &err);
+ visit_free(v);
+ if (err) {
+ goto end;
+ }
+
+ /* Fix up legacy suffix-less format */
+ if ((object->type == NUMA_OPTIONS_TYPE_NODE) && object->u.node.has_mem) {
+ const char *mem_str = qemu_opt_get(opts, "mem");
+ qemu_strtosz_MiB(mem_str, NULL, &object->u.node.mem);
+ }
+
+ set_numa_options(ms, object, &err);
+
end:
qapi_free_NumaOptions(object);
if (err) {
--
2.17.1
- [Qemu-devel] [PULL 00/12] NUMA queue, 2018-05-30, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 01/12] numa: clarify error message when node index is out of range in -numa dist, ..., Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 02/12] numa: postpone options post-processing till machine_run_board_init(), Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 03/12] numa: split out NumaOptions parsing into set_numa_options(),
Eduardo Habkost <=
- [Qemu-devel] [PULL 04/12] qapi: introduce preconfig runstate, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 05/12] hmp: disable monitor in preconfig state, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 06/12] qapi: introduce new cmd option "allow-preconfig", Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 07/12] tests: qapi-schema tests for allow-preconfig, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 09/12] tests: extend qmp test with preconfig checks, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 08/12] cli: add --preconfig option, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 10/12] qmp: permit query-hotpluggable-cpus in preconfig state, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 11/12] qmp: add set-numa-node command, Eduardo Habkost, 2018/05/30
- [Qemu-devel] [PULL 12/12] tests: functional tests for QMP command set-numa-node, Eduardo Habkost, 2018/05/30
- Re: [Qemu-devel] [PULL 00/12] NUMA queue, 2018-05-30, Peter Maydell, 2018/05/31