qemu/include/hw
David Hildenbrand 195784a0cf numa: Auto-enable NUMA when any memory devices are possible
Let's auto-enable it also when maxmem is specified but no slots are
defined. This will result in us properly creating ACPI srat tables,
indicating the maximum possible PFN to the guest OS. Based on this, e.g.,
Linux will enable the swiotlb properly.

This avoids having to manually force the switolb on (swiotlb=force) in
Linux in case we're booting only using DMA memory (e.g., 2GB on x86-64),
and virtio-mem adds memory later on that really needs the swiotlb to be
used for DMA.

Let's take care of backwards compatibility if somebody has a setup that
specifies "maxram" without "slots".

Reported-by: Alex Shi <alex.shi@linux.alibaba.com>
Cc: Peter Maydell <peter.maydell@linaro.org>
Cc: Eduardo Habkost <ehabkost@redhat.com>
Cc: Marcel Apfelbaum <marcel.apfelbaum@gmail.com>
Cc: Sergio Lopez <slp@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: Richard Henderson <rth@twiddle.net>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: qemu-arm@nongnu.org <qemu-arm@nongnu.org>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20200626072248.78761-22-david@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2020-07-03 07:57:04 -04:00
..
acpi acpi: Some build_tpm2() code reshape 2020-06-24 17:18:28 -04:00
adc
arm hw/arm/aspeed: QOM'ify AspeedMachineState 2020-06-26 14:30:28 +01:00
audio isa: Convert uses of isa_create() with Coccinelle 2020-06-15 22:05:28 +02:00
block virtio,acpi,pci: fixes, cleanups. 2020-06-25 16:52:42 +01:00
char hw/char: RX62N serial communication interface (SCI) 2020-06-22 18:37:12 +02:00
core cpu: convert queued work to a QSIMPLEQ 2020-06-16 14:49:05 +01:00
cpu
cris sysbus: Convert to sysbus_realize() etc. with Coccinelle 2020-06-15 22:05:28 +02:00
display qom/object: Move Object typedef to 'qemu/typedefs.h' 2020-06-10 12:09:36 -04:00
dma
firmware
gpio
hyperv hyperv: vmbus: Remove the 2nd IRQ 2020-06-26 09:39:40 -04:00
i2c hw/i2c/core: Add i2c_try_create_slave() and i2c_realize_and_unref() 2020-06-26 14:30:28 +01:00
i386 floppy: move cmos_get_fd_drive_type() from pc 2020-06-24 17:18:28 -04:00
ide hw/ide: Make IDEDMAOps handlers take a const IDEDMA pointer 2020-06-17 14:53:39 +02:00
input adb: add autopoll_blocked variable to block autopoll 2020-06-26 10:13:51 +01:00
intc hw/intc: RX62N interrupt controller (ICUa) 2020-06-22 18:37:12 +02:00
ipack
ipmi
isa isa: isa_create(), isa_try_create() are now unused, drop 2020-06-15 22:05:28 +02:00
kvm
lm32
m68k
mem hw/acpi/nvdimm: add a helper to augment SRAT generation 2020-06-09 11:17:59 -04:00
mips
misc hw/misc/pca9552: Model qdev output GPIOs 2020-06-26 14:30:28 +01:00
net net: cadence_gem: Add support for jumbo frames 2020-06-18 21:05:51 +08:00
nubus
nvram
pci virtio-pci: Proxy for virtio-mem 2020-07-03 07:57:04 -04:00
pci-bridge
pci-host
ppc spapr: Fix typos in comments and macro indentation 2020-06-26 09:22:30 +10:00
rdma
riscv hw/riscv: sifive_u: Add a dummy DDR memory controller device 2020-06-19 08:25:27 -07:00
rtc
rx hw/rx: Add RX GDB simulator 2020-06-22 18:37:12 +02:00
s390x s390x/css: Refactor the css_queue_crw() routine 2020-06-18 12:13:54 +02:00
scsi
sd sd: sdhci: Implement basic vendor specific register support 2020-06-16 10:32:29 +01:00
semihosting
sh4 hw/sh4: Extract timer definitions to 'hw/timer/tmu012.h' 2020-06-22 18:37:12 +02:00
southbridge
sparc
ssi ssi: ssi_create_slave_no_init() is now unused, drop 2020-06-15 22:05:28 +02:00
timer hw/timer: RX62N compare match timer (CMT) 2020-06-22 18:37:12 +02:00
tricore
unicore32
usb exec/cpu-common: Move MUSB specific typedefs to 'hw/usb/hcd-musb.h' 2020-06-12 11:20:15 -04:00
vfio vfio: Convert to ram_block_discard_disable() 2020-07-02 05:54:59 -04:00
virtio virtio-mem: Exclude unplugged memory during migration 2020-07-03 07:57:04 -04:00
watchdog
xen accel: Move Xen accelerator code under accel/xen/ 2020-06-10 12:09:56 -04:00
xtensa
boards.h numa: Auto-enable NUMA when any memory devices are possible 2020-07-03 07:57:04 -04:00
clock.h
elf_ops.h hw/elf_ops: Do not ignore write failures when loading ELF 2020-06-10 12:10:23 -04:00
fw-path-provider.h
hotplug.h
hw.h
ide.h
irq.h
loader-fit.h
loader.h
nmi.h
or-irq.h
pcmcia.h
platform-bus.h
ptimer.h
qdev-clock.h
qdev-core.h qdev: qdev_init_nofail() is now unused, drop 2020-06-15 22:06:04 +02:00
qdev-dma.h
qdev-properties.h qdev: Make qdev_prop_set_drive() match the other helpers 2020-06-23 16:07:07 +02:00
register.h
registerfields.h
resettable.h
stream.h
sysbus.h sysbus: sysbus_init_child_obj() is now unused, drop 2020-06-15 22:06:04 +02:00
usb.h usb: usb_create() is now unused, drop 2020-06-15 22:05:28 +02:00
vmstate-if.h