[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 2.1 00/28] Current state of NUMA series, and hostmem
From: |
Paolo Bonzini |
Subject: |
[Qemu-devel] [PATCH 2.1 00/28] Current state of NUMA series, and hostmem improvements |
Date: |
Tue, 4 Mar 2014 15:00:28 +0100 |
This series includes all the pending work on QOMifying the memory
backends. Some of the patches posted so far didn't correctly build
all targets, so I'm posting it as the basis for further work
(including memory hotplug!). It's available at branch numa on
my github repository.
To recap, 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.
Patches 1-6: generic numa improvements
Patches 7-8: convert -m to QemuOpts, from the memory hotplug series
Patches 9-11: improvements to object-add and -object
Patches 12-15: infrastructure for QOM memory backends
Patches 16-20: preparation for replacing -mem-path with a QOM backend
Patches 21-24: new-style replacement for -mem-path, -mem-prealloc and madvise
Patch 25: support for MAP_SHARED (requested by vhost-user)
Patches 26-28: rest of Wanlong Gao and Hu Tao's NUMA policy work
New patches are patch 9, patch 11, patches 16-25. Please review
them.
Missing, needed before merge:
1. conversion to memory_region_allocate_system_memory of all boards
2. more documentation
Missing, nice to have:
1. improvements to string visitors for ranges
2. HMP "info memdev" command
If anyone wants to pick up management of this series from now on,
just shout.
Paolo
Hu Tao (2):
hostmem: add properties for NUMA memory policy
qmp: add query-memdev
Igor Mammedov (3):
vl: convert -m to QemuOpts
qmp: allow object-add completion handler to get canonical path
add memdev backend infrastructure
Luiz Capitulino (1):
man: improve -numa doc
Paolo Bonzini (16):
qemu-option: introduce qemu_find_opts_singleton
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 | 50 +++++++
backends/hostmem.c | 346 ++++++++++++++++++++++++++++++++++++++++++++
configure | 33 +++++
cpus.c | 14 --
exec.c | 206 +++++++++++++--------------
hw/i386/pc.c | 27 ++--
hw/i386/pc_piix.c | 8 +-
hw/i386/pc_q35.c | 4 +-
hw/ppc/spapr.c | 10 +-
include/exec/cpu-all.h | 8 --
include/exec/cpu-common.h | 2 +
include/exec/memory.h | 33 +++++
include/exec/ram_addr.h | 3 +
include/hw/boards.h | 4 +
include/hw/i386/pc.h | 7 +-
include/qemu/config-file.h | 2 +
include/qemu/osdep.h | 12 ++
include/sysemu/cpus.h | 1 -
include/sysemu/hostmem.h | 68 +++++++++
include/sysemu/sysemu.h | 18 ++-
memory.c | 29 ++++
monitor.c | 2 +-
numa.c | 347 +++++++++++++++++++++++++++++++++++++++++++++
qapi-schema.json | 89 ++++++++++++
qemu-options.hx | 25 +++-
qmp-commands.hx | 32 +++++
qmp.c | 15 +-
util/oslib-posix.c | 73 ++++++++++
util/qemu-config.c | 14 ++
vl.c | 323 ++++++++++++++---------------------------
33 files changed, 1549 insertions(+), 395 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.3
- [Qemu-devel] [PATCH 2.1 00/28] Current state of NUMA series, and hostmem improvements,
Paolo Bonzini <=
- [Qemu-devel] [PATCH 2.1 01/28] NUMA: move numa related code to new file numa.c, Paolo Bonzini, 2014/03/04
- [Qemu-devel] [PATCH 2.1 02/28] NUMA: check if the total numa memory size is equal to ram_size, Paolo Bonzini, 2014/03/04
- [Qemu-devel] [PATCH 2.1 03/28] NUMA: Add numa_info structure to contain numa nodes info, Paolo Bonzini, 2014/03/04
- [Qemu-devel] [PATCH 2.1 04/28] NUMA: convert -numa option to use OptsVisitor, Paolo Bonzini, 2014/03/04
- [Qemu-devel] [PATCH 2.1 05/28] NUMA: expand MAX_NODES from 64 to 128, Paolo Bonzini, 2014/03/04
- [Qemu-devel] [PATCH 2.1 06/28] man: improve -numa doc, Paolo Bonzini, 2014/03/04
- [Qemu-devel] [PATCH 2.1 07/28] qemu-option: introduce qemu_find_opts_singleton, Paolo Bonzini, 2014/03/04