qemu/stubs
David Hildenbrand b430b51395 util/vfio-helpers.c: Use ram_block_discard_disable() in qemu_vfio_open_pci()
Currently, when using "nvme://" for a block device, like
    -drive file=nvme://0000:01:00.0/1,if=none,id=drive0 \
    -device virtio-blk,drive=drive0 \

VFIO may pin all guest memory, and discarding of RAM no longer works as
expected. I was able to reproduce this easily with my
    01:00.0 Non-Volatile memory controller: Samsung Electronics Co Ltd
            NVMe SSD Controller SM981/PM981/PM983

Similar to common VFIO, we have to disable it, making sure that:
a) virtio-balloon won't discard any memory ("silently disabled")
b) virtio-mem and nvme:// run mutually exclusive

Cc: Paolo Bonzini <pbonzini@redhat.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Alex Williamson <alex.williamson@redhat.com>
Cc: Wei Yang <richardw.yang@linux.intel.com>
Cc: Dr. David Alan Gilbert <dgilbert@redhat.com>
Cc: Igor Mammedov <imammedo@redhat.com>
Cc: Pankaj Gupta <pankaj.gupta.linux@gmail.com>
Cc: Peter Xu <peterx@redhat.com>
Signed-off-by: David Hildenbrand <david@redhat.com>
Message-Id: <20201116105947.9194-1-david@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2020-11-16 13:22:17 -05:00
..
arch_type.c stubs: Add arch_type 2020-03-06 17:15:38 +01:00
bdrv-next-monitor-owned.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
blk-commit-all.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
blk-exp-close-all.c block: move block exports to libblockdev 2020-10-23 13:42:16 +01:00
blockdev-close-all-bdrv-states.c all: Clean up includes 2016-02-16 14:29:28 +00:00
change-state-handler.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
cmos.c stubs/cmos: Use correct include 2020-09-01 09:10:58 +02:00
cpu-get-clock.c cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
cpu-synchronize-state.c cpus: prepare new CpusAccel cpu accelerator interface 2020-10-05 16:41:22 +02:00
cpus-get-virtual-clock.c cpus: prepare new CpusAccel cpu accelerator interface 2020-10-05 16:41:22 +02:00
dump.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
error-printf.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
fdset.c monitor: simplify functions for getting a dup'd fdset entry 2020-09-16 10:33:48 +01:00
fw_cfg.c hw/nvram/fw_cfg: Add fw_cfg_arch_key_name() 2019-05-23 14:10:31 +02:00
gdbstub.c Clean up includes some more 2016-03-22 22:20:16 +01:00
get-vm-name.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
icount.c icount: rename functions to be consistent with the module name 2020-10-05 16:41:22 +02:00
io_uring.c stubs: add stubs for io_uring interface 2020-01-30 20:59:41 +00:00
iothread-lock.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
iothread.c aio: introduce qemu_get_current_aio_context 2016-10-28 21:50:18 +08:00
is-daemonized.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
isa-bus.c stubs: add isa_create_simple 2020-07-06 17:01:11 +02:00
linux-aio.c linux-aio: properly bubble up errors from initialization 2018-06-27 13:06:34 +01:00
machine-init-done.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
meson.build * fix --disable-tcg builds (Claudio) 2020-10-26 15:49:11 +00:00
migr-blocker.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
monitor-core.c monitor: Make current monitor a per-coroutine property 2020-10-09 07:08:19 +02:00
monitor.c hmp: Fail gracefully if chardev is already in use 2020-03-06 17:21:28 +01:00
pci-bus.c stubs: add pci_create_simple 2020-07-06 17:01:11 +02:00
pci-host-piix.c hw/pci-host/piix: Move i440FX declarations to hw/pci-host/i440fx.h 2019-11-05 23:33:12 +01:00
qemu-timer-notify-cb.c cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
qmp_memory_device.c qom/object: Move Object typedef to 'qemu/typedefs.h' 2020-06-10 12:09:36 -04:00
qtest.c cpu-timers, icount: new modules 2020-10-05 16:41:22 +02:00
ram-block.c util/vfio-helpers.c: Use ram_block_discard_disable() in qemu_vfio_open_pci() 2020-11-16 13:22:17 -05:00
ramfb.c Revert "hw/display/ramfb: initialize fw-config space with xres/ yres" 2020-05-18 15:42:34 +02:00
replay-tools.c replay: do not build if TCG is not available 2020-10-22 11:53:54 -04:00
replay.c replay: do not build if TCG is not available 2020-10-22 11:53:54 -04:00
runstate-check.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
semihost.c semihosting: add qemu_semihosting_console_inc for SYS_READC 2020-01-09 11:41:29 +00:00
set-fd-handler.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00
sysbus.c stubs: Clean up includes 2016-02-04 17:01:04 +00:00
target-get-monitor-def.c Clean up includes some more 2016-03-22 22:20:16 +01:00
target-monitor-defs.c Clean up includes some more 2016-03-22 22:20:16 +01:00
tpm.c Revert "tpm: Clean up error reporting in tpm_init_tpmdev()" 2020-07-24 12:44:13 -04:00
trace-control.c trace: remove global 'uint16 dstate[]' array 2016-10-12 09:35:54 +02:00
uuid.c qapi: Restrict query-uuid command to machine code 2020-09-29 15:41:35 +02:00
vm-stop.c sysemu: Split sysemu/runstate.h off sysemu/sysemu.h 2019-08-16 13:37:36 +02:00
vmgenid.c qapi: Restrict query-vm-generation-id command to machine code 2020-09-29 15:41:35 +02:00
vmstate.c migration: Change SaveStateEntry.instance_id into uint32_t 2020-01-20 09:10:23 +01:00
win32-kbd-hook.c ui/win32-kbd-hook: handle AltGr in a hook procedure 2020-05-19 09:06:44 +02:00
xen-hw-stub.c stubs/xen-hw-stub: drop xenstore_store_pv_console_info stub 2020-11-16 11:07:53 +00:00