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. |
||
|---|---|---|
| .. | ||
| fuzz | ||
| libqos | ||
| ac97-test.c | ||
| acpi-utils.c | ||
| acpi-utils.h | ||
| ahci-test.c | ||
| arm-cpu-features.c | ||
| bios-tables-test-allowed-diff.h | ||
| bios-tables-test.c | ||
| boot-order-test.c | ||
| boot-sector.c | ||
| boot-sector.h | ||
| boot-serial-test.c | ||
| cdrom-test.c | ||
| cpu-plug-test.c | ||
| dbus-vmstate-test.c | ||
| dbus-vmstate1.xml | ||
| device-introspect-test.c | ||
| device-plug-test.c | ||
| display-vga-test.c | ||
| drive_del-test.c | ||
| ds1338-test.c | ||
| e1000-test.c | ||
| e1000e-test.c | ||
| eepro100-test.c | ||
| endianness-test.c | ||
| es1370-test.c | ||
| fdc-test.c | ||
| fw_cfg-test.c | ||
| hd-geo-test.c | ||
| hexloader-test.c | ||
| i440fx-test.c | ||
| i82801b11-test.c | ||
| ide-test.c | ||
| intel-hda-test.c | ||
| ioh3420-test.c | ||
| ipmi-bt-test.c | ||
| ipmi-kcs-test.c | ||
| ipoctal232-test.c | ||
| ivshmem-test.c | ||
| libqtest-single.h | ||
| libqtest.c | ||
| libqtest.h | ||
| m25p80-test.c | ||
| m48t59-test.c | ||
| machine-none-test.c | ||
| Makefile.include | ||
| megasas-test.c | ||
| microbit-test.c | ||
| migration-helpers.c | ||
| migration-helpers.h | ||
| migration-test.c | ||
| modules-test.c | ||
| ne2000-test.c | ||
| numa-test.c | ||
| nvme-test.c | ||
| pca9552-test.c | ||
| pci-test.c | ||
| pcnet-test.c | ||
| pflash-cfi02-test.c | ||
| pnv-xscom-test.c | ||
| prom-env-test.c | ||
| pvpanic-test.c | ||
| pxe-test.c | ||
| q35-test.c | ||
| qmp-cmd-test.c | ||
| qmp-test.c | ||
| qom-test.c | ||
| qos-test.c | ||
| rtas-test.c | ||
| rtc-test.c | ||
| rtl8139-test.c | ||
| sdhci-test.c | ||
| spapr-phb-test.c | ||
| tco-test.c | ||
| test-arm-mptimer.c | ||
| test-filter-mirror.c | ||
| test-filter-redirector.c | ||
| test-hmp.c | ||
| test-netfilter.c | ||
| test-x86-cpuid-compat.c | ||
| tmp105-test.c | ||
| tpm-crb-swtpm-test.c | ||
| tpm-crb-test.c | ||
| tpm-emu.c | ||
| tpm-emu.h | ||
| tpm-tests.c | ||
| tpm-tests.h | ||
| tpm-tis-swtpm-test.c | ||
| tpm-tis-test.c | ||
| tpm-util.c | ||
| tpm-util.h | ||
| usb-hcd-ehci-test.c | ||
| usb-hcd-ohci-test.c | ||
| usb-hcd-uhci-test.c | ||
| usb-hcd-xhci-test.c | ||
| vhost-user-test.c | ||
| virtio-9p-test.c | ||
| virtio-blk-test.c | ||
| virtio-ccw-test.c | ||
| virtio-net-test.c | ||
| virtio-rng-test.c | ||
| virtio-scsi-test.c | ||
| virtio-serial-test.c | ||
| virtio-test.c | ||
| vmgenid-test.c | ||
| vmxnet3-test.c | ||
| wdt_ib700-test.c | ||