qemu/include/sysemu
Paolo Bonzini ca6155c0f2 Merge tag 'patchew/20200219160953.13771-1-imammedo@redhat.com' of https://github.com/patchew-project/qemu into HEAD
This series removes ad hoc RAM allocation API (memory_region_allocate_system_memory)
and consolidates it around hostmem backend. It allows to

* resolve conflicts between global -mem-prealloc and hostmem's "policy" option,
  fixing premature allocation before binding policy is applied

* simplify complicated memory allocation routines which had to deal with 2 ways
  to allocate RAM.

* reuse hostmem backends of a choice for main RAM without adding extra CLI
  options to duplicate hostmem features.  A recent case was -mem-shared, to
  enable vhost-user on targets that don't support hostmem backends [1] (ex: s390)

* move RAM allocation from individual boards into generic machine code and
  provide them with prepared MemoryRegion.

* clean up deprecated NUMA features which were tied to the old API (see patches)
  - "numa: remove deprecated -mem-path fallback to anonymous RAM"
  - (POSTPONED, waiting on libvirt side) "forbid '-numa node,mem' for 5.0 and newer machine types"
  - (POSTPONED) "numa: remove deprecated implicit RAM distribution between nodes"

Introduce a new machine.memory-backend property and wrapper code that aliases
global -mem-path and -mem-alloc into automatically created hostmem backend
properties (provided memory-backend was not set explicitly given by user).
A bulk of trivial patches then follow to incrementally convert individual
boards to using machine.memory-backend provided MemoryRegion.

Board conversion typically involves:

* providing MachineClass::default_ram_size and MachineClass::default_ram_id
  so generic code could create default backend if user didn't explicitly provide
  memory-backend or -m options

* dropping memory_region_allocate_system_memory() call

* using convenience MachineState::ram MemoryRegion, which points to MemoryRegion
   allocated by ram-memdev

On top of that for some boards:

* missing ram_size checks are added (typically it were boards with fixed ram size)

* ram_size fixups are replaced by checks and hard errors, forcing user to
  provide correct "-m" values instead of ignoring it and continuing running.

After all boards are converted, the old API is removed and memory allocation
routines are cleaned up.
2020-02-25 09:19:00 +01:00
..
accel.h accel: Introduce the current_accel() wrapper 2020-01-24 20:59:11 +01:00
arch_init.h Include generated QAPI headers less 2019-08-16 13:31:51 +02:00
balloon.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
block-backend.h block: Add @exact parameter to bdrv_co_truncate() 2019-10-28 12:00:07 +01:00
blockdev.h blockdev: Convert drive_new() to Error 2018-10-19 14:51:34 +02:00
cpus.h tcg: convert "-accel threads" to a QOM property 2019-12-17 19:32:27 +01:00
cryptodev-vhost-user.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
cryptodev-vhost.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
cryptodev.h Include qemu/queue.h slightly less 2019-08-16 13:31:52 +02:00
device_tree.h device_tree: Add qemu_fdt_node_unit_path 2018-06-29 15:11:01 +01:00
dma.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
dump-arch.h
dump.h qapi: Split dump.json off misc.json 2019-07-02 13:37:00 +02:00
hax.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
hostmem.h hostmem: fix strict bind policy 2020-02-19 16:50:02 +00:00
hvf.h Include hw/hw.h exactly where needed 2019-08-16 13:31:52 +02:00
hw_accel.h hw/core: Move cpu.c, cpu.h from qom/ to hw/core/ 2019-08-21 13:24:01 +02:00
iothread.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00
kvm_int.h kvm: split too big memory section on several memslots 2019-09-30 13:51:50 +02:00
kvm.h hw/i386: De-duplicate gsi_handler() to remove kvm_pc_gsi_handler() 2019-12-17 19:33:51 +01:00
memory_mapping.h Clean up inclusion of exec/cpu-common.h 2019-08-16 13:31:52 +02:00
numa.h initialize MachineState::ram in NUMA case 2020-02-19 16:49:53 +00:00
os-posix.h util: drop old utimensat() compat code 2017-05-25 10:30:14 +02:00
os-win32.h glib: use portable g_setenv() 2019-12-17 09:05:23 +01:00
qtest.h qtest: add in-process incoming command handler 2020-02-22 08:26:48 +00:00
replay.h replay: record and replay random number sources 2020-01-07 12:08:39 +01:00
reset.h hw: move reset handlers from vl.c to hw/core 2017-01-16 17:52:35 +01:00
rng-random.h
rng.h virtio-rng: change default backend to rng-builtin 2019-09-04 06:32:51 -04:00
runstate.h pvpanic: implement crashloaded event handling 2020-01-24 20:59:07 +01:00
seccomp.h sandbox: disable -sandbox if CONFIG_SECCOMP undefined 2018-06-01 13:44:15 +02:00
sev.h kvm: introduce memory encryption APIs 2018-03-13 12:04:03 +01:00
sysemu.h Merge tag 'patchew/20200219160953.13771-1-imammedo@redhat.com' of https://github.com/patchew-project/qemu into HEAD 2020-02-25 09:19:00 +01:00
tcg.h qemu-common: Move tcg_enabled() etc. to sysemu/tcg.h 2019-06-11 20:22:09 +02:00
tpm_backend.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
tpm.h tpm_spapr: Support TPM for ppc64 using CRQ based interface 2020-02-02 14:07:57 +11:00
vhost-user-backend.h Add vhost-user-backend 2019-05-10 12:48:35 +02:00
watchdog.h Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
whpx.h Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
xen-mapcache.h include: Make headers more self-contained 2019-08-16 13:31:51 +02:00