qemu/system
Paolo Bonzini 44a7e0aaf7 physmem: replace assertion with error
It is possible to start QEMU with a confidential-guest-support object
even in TCG mode.  While there is already a check in qemu_machine_creation_done:

    if (machine->cgs && !machine->cgs->ready) {
        error_setg(errp, "accelerator does not support confidential guest %s",
                   object_get_typename(OBJECT(machine->cgs)));
        exit(1);
    }

the creation of RAMBlocks happens earlier, in qemu_init_board(), if
the command line does not override the default memory backend with
-M memdev.  Then the RAMBlock will try to use guest_memfd (because
machine_require_guest_memfd correctly returns true; at least correctly
according to the current implementation) and trigger the assertion
failure for kvm_enabled().  This happend with a command line as
simple as the following:

    qemu-system-x86_64 -m 512 -nographic -object sev-snp-guest,reduced-phys-bits=48,id=sev0 \
       -M q35,kernel-irqchip=split,confidential-guest-support=sev0
    qemu-system-x86_64: ../system/physmem.c:1871: ram_block_add: Assertion `kvm_enabled()' failed.

Cc: Xiaoyao Li <xiaoyao.li@intel.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: David Hildenbrand <david@redhat.com>
Reviewed-by: Pankaj Gupta <pankaj.gupta@amd.com>
Reviewed-by: Xiaoyao Li <xiaoyao.li@intel.com>
Link: https://lore.kernel.org/r/20250217120812.396522-1-pbonzini@redhat.com
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
(cherry picked from commit 6debfb2cb1)
Signed-off-by: Michael Tokarev <mjt@tls.msk.ru>
2025-03-18 09:02:47 +03:00
..
arch_init.c system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
async-teardown.c qemu/osdep: Add excluded fd parameter to qemu_close_all_open_fd() 2024-08-05 08:21:59 +10:00
balloon.c balloon: Fix a misleading error message 2023-11-17 10:07:52 +01:00
bootdevice.c system/bootdevice: Don't unregister reset handler in restore_boot_order() 2024-02-27 13:01:42 +00:00
cpu-timers.c migration: Move cpu-throttle.c from system to migration 2024-10-31 15:48:18 -04:00
cpus.c qmp: Fix higher half vaddrs for [p]memsave 2024-08-05 09:34:34 +02:00
datadir.c system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
device_tree-stub.c kconfig: allow compiling out QEMU device tree code per target 2024-05-10 15:45:15 +02:00
device_tree.c kconfig: allow compiling out QEMU device tree code per target 2024-05-10 15:45:15 +02:00
dirtylimit.c migration: migration_thread_is_self 2024-03-11 16:28:59 -04:00
dma-helpers.c system/dma-helpers.c: Move trace events to system/trace-events 2024-11-19 14:14:13 +00:00
globals.c vl.c: Remove pxa2xx-specific -portrait and -rotate options 2024-10-15 15:16:17 +01:00
ioport.c exec/ioport: Add portio_list_set_enabled() 2024-02-14 06:09:32 -05:00
main.c softmmu: pass the main loop status to gdb "Wxx" packet 2023-10-12 12:33:24 +10:00
memory.c memory: notify hypervisor of all eventfds during listener (de)registration 2024-10-08 15:28:55 -04:00
memory_ldst.c.inc system: Move memory_ldst.c.inc to system 2024-02-13 10:59:25 +03:00
memory_mapping.c system/memory_mapping: make range overlap check more readable 2024-07-23 20:30:36 +02:00
meson.build migration: Move cpu-throttle.c from system to migration 2024-10-31 15:48:18 -04:00
physmem.c physmem: replace assertion with error 2025-03-18 09:02:47 +03:00
qdev-monitor.c qdev-monitor: avoid QemuOpts in QMP device_add 2024-11-25 11:03:42 +01:00
qemu-seccomp.c seccomp: Remove check for CRIS host 2024-09-13 20:11:13 +02:00
qtest.c qtest: move qtest_{get, set}_virtual_clock to accel/qtest/qtest.c 2024-06-24 10:14:56 +01:00
rtc.c system: replace assert(0) with g_assert_not_reached() 2024-09-13 20:12:16 +02:00
runstate-action.c system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
runstate-hmp-cmds.c system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
runstate.c reset: Use ResetType for qemu_devices_reset() and MachineClass::reset() 2024-09-24 11:33:34 +02:00
tpm-hmp-cmds.c system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
tpm.c * util/log: re-allow switching away from stderr log file 2023-10-09 10:11:18 -04:00
trace-events system/dma-helpers.c: Move trace events to system/trace-events 2024-11-19 14:14:13 +00:00
trace.h system: Rename softmmu/ directory as system/ 2023-10-08 21:08:08 +02:00
vl.c system: Select HVF by default when no other accelerator is available 2024-12-03 12:28:06 +01:00
watchpoint.c system/watchpoint: Move TCG specific code to accel/tcg/ 2024-01-19 12:28:59 +01:00