Skip to content

NUMA series, and hostmem improvements

Hu Tao qemu-devel 1 version In review

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest31 patches 16 repliesIn review

Changes from v3 from the cover letter

- 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.

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/31NUMA: move numa related code to new file numa.cMakefile.target cpus.c include/exec/cpu-all.h +5 more+193 -1560 replies
2/31NUMA: check if the total numa memory size is equal to ram_sizenuma.c+14 -00 replies
3/31NUMA: Add numa_info structure to contain numa nodes infohw/i386/pc.c hw/ppc/spapr.c include/sysemu/sysemu.h +3 more+36 -270 replies
4/31NUMA: convert -numa option to use OptsVisitorinclude/sysemu/sysemu.h numa.c qapi-schema.json +1 more+114 -770 replies
5/31NUMA: expand MAX_NODES from 64 to 128include/sysemu/sysemu.h+1 -10 replies
6/31man: improve -numa docqemu-options.hx+7 -30 replies
7/31vl: redo -object parsingvl.c+35 -520 replies
8/31qmp: allow object-add completion handler to get canonical pathqmp.c+8 -30 replies
9/31qmp: improve error reporting for -object and object-addqmp.c+2 -10 replies
10/31pc: pass QEMUMachineInitArgs to pc_memory_inithw/i386/pc.c hw/i386/pc_piix.c hw/i386/pc_q35.c +1 more+12 -181 reply
11/31numa: introduce memory_region_allocate_system_memoryhw/i386/pc.c include/hw/boards.h include/sysemu/sysemu.h +1 more+16 -40 replies
12/31add memdev backend infrastructurebackends/Makefile.objs backends/hostmem-ram.c backends/hostmem.c +1 more+223 -00 replies
13/31numa: add -numa node, memdev= optioninclude/sysemu/sysemu.h numa.c qapi-schema.json +1 more+77 -90 replies
14/31memory: reorganize file-based allocationexec.c include/exec/cpu-all.h include/exec/ram_addr.h +2 more+73 -460 replies
15/31memory: move mem_path handling to memory_region_allocate_system_memoryexec.c include/exec/memory.h memory.c +1 more+46 -140 replies
16/31memory: add error propagation to file-based RAM allocationexec.c include/exec/memory.h include/exec/ram_addr.h +2 more+44 -170 replies
17/31memory: move preallocation code out of exec.cexec.c include/qemu/osdep.h util/oslib-posix.c+76 -430 replies
18/31memory: move RAM_PREALLOC_MASK to exec.c, renameexec.c include/exec/cpu-all.h+6 -60 replies
19/31hostmem: add file-based HostMemoryBackendbackends/Makefile.objs backends/hostmem-file.c+109 -00 replies
20/31hostmem: separate allocation from UserCreatable complete methodbackends/hostmem-file.c backends/hostmem-ram.c backends/hostmem.c +1 more+19 -110 replies
21/31hostmem: add merge and dump propertiesbackends/hostmem.c include/qemu/osdep.h include/sysemu/hostmem.h+95 -10 replies
22/31hostmem: allow preallocation of any memory regionbackends/hostmem-file.c backends/hostmem.c exec.c +4 more+75 -00 replies
23/31hostmem: add property to map memory with MAP_SHAREDbackends/hostmem-file.c exec.c include/exec/memory.h +3 more+42 -120 replies
24/31configure: add Linux libnuma detectionconfigure+33 -02 replies
25/31hostmem: add properties for NUMA memory policybackends/hostmem.c include/sysemu/hostmem.h qapi-schema.json+132 -16 replies
26/31Introduce signed range.include/qemu/range.h+124 -00 replies
27/31qapi: make string input visitor parse int listqapi/string-input-visitor.c tests/test-string-input-visitor.c+212 -80 replies
28/31qapi: make string output visitor parse int listqapi/string-output-visitor.c tests/test-string-output-visitor.c+254 -100 replies
29/31qom: introduce object_property_get_enum and object_property_get_uint16Listinclude/qom/object.h qom/object.c+63 -00 replies
30/31qmp: add query-memdevnuma.c qapi-schema.json qmp-commands.hx+138 -00 replies
31/31hmp: add info memdevhmp.c hmp.h monitor.c+44 -00 replies

Reviews trailers per patch

6 of 31 patches have a Reviewed-by or Acked-by.

PatchEduardo HabkostMichael S. Tsirkin
1/31R-b
2/31R-b
3/31R-b
4/31T-b R-b
5/31R-b
6/31
7/31
8/31
9/31
10/31R-b
11/31
12/31
13/31
14/31
15/31
16/31
17/31
18/31
19/31
20/31
21/31
22/31
23/31
24/31
25/31
26/31
27/31
28/31
29/31
30/31
31/31

Trailers given in replies are filled; those carried in the patches from earlier versions are outlined with dashes.

Read the v1 thread

Cover letter [Qemu-devel] [PATCH v3.1 00/31] NUMA series, and hostmem improvements

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
Signature · 1 line
1.8.5.2.229.g4448466