This series includes work on QOMifying the memory backends. the idea is to delegate all properties of the memory backend to a new QOM class hierarchy, in which the concrete classes are hostmem-ram and hostmem-file. The backend is passed to the machine via "-numa node,memdev=foo" where "foo" is the id of the backend object.
Changes from v3: - address comment by Paolo - fix bugs in string input visitor - no conversion to memory_region_allocate_system_memory of all boards I had patch for it but don't know how to test it for all boards. Hu Tao (7): hostmem: add properties for NUMA memory policy Introduce signed range. qapi: make string input visitor parse int list qapi: make string output visitor parse int list qom: introduce object_property_get_enum and object_property_get_uint16List qmp: add query-memdev hmp: add info memdev Igor Mammedov (2): qmp: allow object-add completion handler to get canonical path add memdev backend infrastructure Luiz Capitulino (1): man: improve -numa doc Paolo Bonzini (15): vl: redo -object parsing qmp: improve error reporting for -object and object-add pc: pass QEMUMachineInitArgs to pc_memory_init numa: introduce memory_region_allocate_system_memory numa: add -numa node,memdev= option memory: reorganize file-based allocation memory: move mem_path handling to memory_region_allocate_system_memory memory: add error propagation to file-based RAM allocation memory: move preallocation code out of exec.c memory: move RAM_PREALLOC_MASK to exec.c, rename hostmem: add file-based HostMemoryBackend hostmem: separate allocation from UserCreatable complete method hostmem: add merge and dump properties hostmem: allow preallocation of any memory region hostmem: add property to map memory with MAP_SHARED Wanlong Gao (6): NUMA: move numa related code to new file numa.c NUMA: check if the total numa memory size is equal to ram_size NUMA: Add numa_info structure to contain numa nodes info NUMA: convert -numa option to use OptsVisitor NUMA: expand MAX_NODES from 64 to 128 configure: add Linux libnuma detection Makefile.target | 2 +- backends/Makefile.objs | 3 + backends/hostmem-file.c | 134 ++++++++++++++ backends/hostmem-ram.c | 53 ++++++ backends/hostmem.c | 349 ++++++++++++++++++++++++++++++++++++ configure | 33 ++++ cpus.c | 14 -- exec.c | 211 +++++++++++----------- hmp.c | 36 ++++ hmp.h | 1 + hw/i386/pc.c | 27 +-- hw/i386/pc_piix.c | 8 +- hw/i386/pc_q35.c | 4 +- hw/ppc/spapr.c | 11 +- include/exec/cpu-all.h | 8 - include/exec/cpu-common.h | 2 + include/exec/memory.h | 33 ++++ include/exec/ram_addr.h | 4 + include/hw/boards.h | 6 +- include/hw/i386/pc.h | 7 +- include/qemu/osdep.h | 12 ++ include/qemu/range.h | 124 +++++++++++++ include/qom/object.h | 28 +++ include/sysemu/cpus.h | 1 - include/sysemu/hostmem.h | 66 +++++++ include/sysemu/sysemu.h | 18 +- memory.c | 29 +++ monitor.c | 9 +- numa.c | 355 +++++++++++++++++++++++++++++++++++++ qapi-schema.json | 91 ++++++++++ qapi/string-input-visitor.c | 181 ++++++++++++++++++- qapi/string-output-visitor.c | 230 ++++++++++++++++++++++-- qemu-options.hx | 16 +- qmp-commands.hx | 32 ++++ qmp.c | 14 +- qom/object.c | 35 ++++ tests/test-string-input-visitor.c | 39 ++++ tests/test-string-output-visitor.c | 34 ++++ util/oslib-posix.c | 73 ++++++++ vl.c | 238 +++++-------------------- 40 files changed, 2187 insertions(+), 384 deletions(-) create mode 100644 backends/hostmem-file.c create mode 100644 backends/hostmem-ram.c create mode 100644 backends/hostmem.c create mode 100644 include/sysemu/hostmem.h create mode 100644 numa.c -- 1.8.5.2.229.g4448466