Uploaded image for project: 'RHEL'
  1. RHEL
  2. RHEL-131968

virtio-mem-pci initialization fails with "Failed to set RamDiscardManager" when sev-snp-guest is enabled

Linking RHIVOS CVEs to...Migration: Automation ...RHELPRIO AssignedTeam ...SWIFT: POC ConversionSync from "Extern...XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: Undefined Undefined
    • None
    • rhel-10.2
    • qemu-kvm / Devices
    • None
    • None
    • None
    • rhel-virt-confidential-virt
    • None
    • False
    • False
    • Hide

      None

      Show
      None
    • None
    • None
    • None
    • None
    • Unspecified
    • Unspecified
    • Unspecified
    • x86_64
    • None

      What were you trying to do that didn't work?

      Launch a VM configured with AMD SEV-SNP enabled, while simultaneously using virtio-mem-pci for dynamic memory management.

      What is the impact of this issue to you?

      The VM fails to boot entirely. This prevents the usage of virtio-mem (dynamic memory sizing) within an SEV-SNP confidential computing environment.

      Please provide the package NVR for which the bug is seen:

      Host kernel: 6.12.0-164.el10.x86_64

      QEMU version: qemu-kvm-10.1.0-6.el10

      How reproducible is this bug?:

      always

      Steps to reproduce

      1. Launch a guest with the following QEMU command line
        [stdlog] MALLOC_PERTURB_=1  /usr/libexec/qemu-kvm \
        [stdlog]     -S  \
        [stdlog]     -name 'avocado-vt-vm1'  \
        [stdlog]     -sandbox on,elevateprivileges=deny,obsolete=deny,resourcecontrol=deny,spawn=deny \
        [stdlog]     -machine q35,confidential-guest-support=lsec0,memory-backend=mem-machine_mem \
        [stdlog]     -device '{"id": "pcie-root-port-0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x1", "chassis": 1}' \
        [stdlog]     -device '{"id": "pcie-pci-bridge-0", "driver": "pcie-pci-bridge", "addr": "0x0", "bus": "pcie-root-port-0"}' \
        [stdlog]     -object '{"id": "lsec0", "policy": 196608, "cbitpos": 51, "reduced-phys-bits": 5, "qom-type": "sev-snp-guest"}'  \
        [stdlog]     -nodefaults \
        [stdlog]     -device '{"driver": "VGA", "bus": "pcie.0", "addr": "0x2"}' \
        [stdlog]     -m 4096,maxmem=24G \
        [stdlog]     -object '{"size": 4294967296, "id": "mem-vmem0", "qom-type": "memory-backend-ram"}' \
        [stdlog]     -device '{"id": "pcie-root-port-1", "port": 1, "driver": "pcie-root-port", "addr": "0x1.0x1", "bus": "pcie.0", "chassis": 2}' \
        [stdlog]     -device '{"memdev": "mem-vmem0", "driver": "virtio-mem-pci", "id": "virtio_mem-vmem0", "bus": "pcie-root-port-1", "addr": "0x0"}' \
        [stdlog]     -object '{"size": 4294967296, "id": "mem-machine_mem", "qom-type": "memory-backend-ram"}'  \
        [stdlog]     -smp 48,maxcpus=48,cores=24,threads=1,dies=1,sockets=2  \
        [stdlog]     -cpu 'EPYC-Milan',x2apic=on,tsc-deadline=on,hypervisor=on,tsc-adjust=on,vaes=on,vpclmulqdq=on,stibp=on,ssbd=on,cmp-legacy=on,overflow-recov=on,succor=on,stibp-always-on=on,virt-ssbd=on,amd-psfd=on,lbrv=on,tsc-scale=on,vmcb-clean=on,flushbyasid=on,pause-filter=on,pfthreshold=on,v-vmsave-vmload=on,vgif=on,no-nested-data-bp=on,lfence-always-serializing=on,null-sel-clr-base=on,sbpb=on,ibpb-brtype=on,kvm_pv_unhalt=on \
        [stdlog]     -chardev socket,server=on,path=/var/tmp/avocado_us7nwlzy/monitor-qmpmonitor1-20251128-041543-ogyvlGB9,id=qmp_id_qmpmonitor1,wait=off  \
        [stdlog]     -mon chardev=qmp_id_qmpmonitor1,mode=control \
        [stdlog]     -chardev socket,server=on,path=/var/tmp/avocado_us7nwlzy/monitor-catch_monitor-20251128-041543-ogyvlGB9,id=qmp_id_catch_monitor,wait=off  \
        [stdlog]     -mon chardev=qmp_id_catch_monitor,mode=control \
        [stdlog]     -device '{"ioport": 1285, "driver": "pvpanic", "id": "idK8vNlq"}' \
        [stdlog]     -chardev socket,server=on,path=/var/tmp/avocado_us7nwlzy/serial-serial0-20251128-041543-ogyvlGB9,id=chardev_serial0,wait=off \
        [stdlog]     -device '{"id": "serial0", "driver": "isa-serial", "chardev": "chardev_serial0"}'  \
        [stdlog]     -chardev socket,id=seabioslog_id_20251128-041543-ogyvlGB9,path=/var/tmp/avocado_us7nwlzy/seabios-20251128-041543-ogyvlGB9,server=on,wait=off \
        [stdlog]     -device isa-debugcon,chardev=seabioslog_id_20251128-041543-ogyvlGB9,iobase=0x402 \
        [stdlog]     -device '{"id": "pcie-root-port-2", "port": 2, "driver": "pcie-root-port", "addr": "0x1.0x2", "bus": "pcie.0", "chassis": 3}' \
        [stdlog]     -device '{"driver": "qemu-xhci", "id": "usb1", "bus": "pcie-root-port-2", "addr": "0x0"}' \
        [stdlog]     -device '{"driver": "usb-tablet", "id": "usb-tablet1", "bus": "usb1.0", "port": "1"}' \
        [stdlog]     -device '{"id": "pcie-root-port-3", "port": 3, "driver": "pcie-root-port", "addr": "0x1.0x3", "bus": "pcie.0", "chassis": 4}' \
        [stdlog]     -device '{"id": "virtio_scsi_pci0", "driver": "virtio-scsi-pci", "bus": "pcie-root-port-3", "addr": "0x0"}' \
        [stdlog]     -blockdev '{"node-name": "file_image1", "driver": "file", "auto-read-only": true, "discard": "unmap", "aio": "threads", "filename": "/home/kvm_autotest_root/images/rhel102-64-virtio-scsi-ovmf.qcow2", "cache": {"direct": true, "no-flush": false}}' \
        [stdlog]     -blockdev '{"node-name": "drive_image1", "driver": "qcow2", "read-only": false, "cache": {"direct": true, "no-flush": false}, "file": "file_image1"}' \
        [stdlog]     -device '{"driver": "scsi-hd", "id": "image1", "drive": "drive_image1", "write-cache": "on"}' \
        [stdlog]     -device '{"id": "pcie-root-port-4", "port": 4, "driver": "pcie-root-port", "addr": "0x1.0x4", "bus": "pcie.0", "chassis": 5}' \
        [stdlog]     -device '{"driver": "virtio-net-pci", "mac": "9a:e2:f3:d8:4c:1d", "id": "idCdCYrG", "netdev": "idm0LclT", "bus": "pcie-root-port-4", "addr": "0x0"}' \
        [stdlog]     -netdev  '{"id": "idm0LclT", "type": "tap", "vhost": true, "vhostfd": "16", "fd": "10"}'  \
        [stdlog]     -vnc :0  \
        [stdlog]     -rtc base=utc,clock=host,driftfix=slew  \
        [stdlog]     -boot menu=off,order=cdn,once=c,strict=off \
        [stdlog]     -bios /usr/share/edk2/ovmf/OVMF.amdsev.fd \
        [stdlog]     -chardev socket,id=char_vtpm_avocado-vt-vm1_tpm0,path=/root/avocado/data/avocado-vt/swtpm/avocado-vt-vm1_tpm0_swtpm.sock \
        [stdlog]     -tpmdev emulator,chardev=char_vtpm_avocado-vt-vm1_tpm0,id=emulator_vtpm_avocado-vt-vm1_tpm0 \
        [stdlog]     -device '{"id": "tpm-crb_vtpm_avocado-vt-vm1_tpm0", "tpmdev": "emulator_vtpm_avocado-vt-vm1_tpm0", "driver": "tpm-crb"}' \
        [stdlog]     -enable-kvm \
        [stdlog]     -device '{"id": "pcie_extra_root_port_0", "driver": "pcie-root-port", "multifunction": true, "bus": "pcie.0", "addr": "0x3", "chassis": 6}' 

      Expected results

      The VM should boot successfully, and the virtio-mem device should be operational within the guest.

      Actual results

      qemu-kvm: -device {"memdev": "mem-vmem0", "driver": "virtio-mem-pci", "id": "virtio_mem-vmem0", "bus": "pcie-root-port-1", "addr": "0x0"}: Failed to set RamDiscardManager

              virt-maint virt-maint
              rhn-support-yihyu Yihuang Yu
              virt-maint virt-maint
              Jin Liu Jin Liu
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated: