Re: Hugepages -- "Memory backend 'pc.ram' not found"

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2/22/22 00:25, Michal Prívozník wrote:
On 2/21/22 17:12, Charles Polisher wrote:

Hey, please the list on CC for benefit of others, e.g. when somebody
runs into the same problem they can find the discussion in the archive.
Oops... unintentional.
On 2/21/22 01:54, Michal Prívozník wrote:
On 2/20/22 04:07, Charles Polisher wrote:
Hello,

After defining hugepages, as documented at
https://libvirt.org/formatdomain.html#memory-backing ,
when I start the guest, I get a dialogue
box that says:

      Error starting domain: internal error: qemu unexpectedly
      closed the monitor: 2022-02-20T01:10:36.520955Z
      qemu-system-x86_64: Memory backend 'pc.ram' not found
      Traceback (most recent call last):
        File "/usr/share/virt-manager/virtManager/asyncjob.py", line 65,
in cb_wrapper
          callback(asyncjob, *args, **kwargs)
        File "/usr/share/virt-manager/virtManager/asyncjob.py", line 101,
in tmpcb
          callback(*args, **kwargs)
        File
"/usr/share/virt-manager/virtManager/object/libvirtobject.py", line 57,
in newfn
          ret = fn(self, *args, **kwargs)
        File "/usr/share/virt-manager/virtManager/object/domain.py", line
1329, in startup
          self._backend.create()
        File "/usr/lib64/python3.9/site-packages/libvirt.py", line 1353,
in create
          raise libvirtError('virDomainCreate() failed'

After backing out changes, guest starts normally.
I searched online for the error message, but found nothing useful.
The hypervisor is running libvirtd (libvirt) 7.8.0 and QEMU emulator
version 6.1.0,
both build from source. I've got plenty of hugepages available.
The domain's XML definition is attached.
Hey, can you share your domain XML and the generated cmd line? The
latter should be found in /var/log/libvirt/qemu/$domain.log

Thanks,
Michal
Thanks for your reply. As requested, the domain XML:

     <domain type="kvm">
       <name>slacky-0</name>
       <uuid>4a67eb39-9b92-8b8a-97ba-7e1250d56b07</uuid>
       <title>slacky-0</title>
       <description>elided</description>
       <memory unit="KiB">4194304</memory>
       <currentMemory unit="KiB">4194304</currentMemory>
       <memoryBacking>
         <hugepages>
           <page size="4194304" unit="KiB"/>

This does not look correct. This is on x86_64 and there is no such size
for hugepages, only 2MiB and 1GiB.

Interesting. I had originally specified a different page size
and units (probably GiB), but "virsh edit" rewrote the value
after I completed the edit, with the result above.

         </hugepages>
       </memoryBacking>
       <vcpu placement="static">2</vcpu>
       <os>
         <type arch="x86_64" machine="pc-i440fx-5.1">hvm</type>
         <bootmenu enable="no"/>
       </os>
       <features>
         <acpi/>
         <apic/>
         <pae/>
       </features>
       <cpu mode="custom" match="exact" check="none">
         <model fallback="forbid">kvm64</model>
       </cpu>
       <clock offset="utc"/>
       <on_poweroff>destroy</on_poweroff>
       <on_reboot>restart</on_reboot>
       <on_crash>restart</on_crash>
       <devices>
         <emulator>/usr/bin/qemu-system-x86_64</emulator>
         <disk type="file" device="cdrom">
           <driver name="qemu" type="raw"/>
           <target dev="hdc" bus="ide"/>
           <readonly/>
           <address type="drive" controller="0" bus="1" target="0"
unit="0"/>
         </disk>
         <disk type="file" device="disk">
           <driver name="qemu" type="qcow2" cache="writethrough"/>
           <source file="/mnt/nvme1/VIRTUAL_MACHINES/slacky-0.qcow2"/>
           <target dev="vda" bus="virtio"/>
           <boot order="1"/>
           <address type="pci" domain="0x0000" bus="0x00" slot="0x09"
function="0x0"/>
         </disk>
         <controller type="usb" index="0" model="ich9-ehci1">
           <address type="pci" domain="0x0000" bus="0x00" slot="0x05"
function="0x7"/>
         </controller>
         <controller type="usb" index="0" model="ich9-uhci1">
           <master startport="0"/>
           <address type="pci" domain="0x0000" bus="0x00" slot="0x05"
function="0x0" multifunction="on"/>
         </controller>
         <controller type="usb" index="0" model="ich9-uhci2">
           <master startport="2"/>
           <address type="pci" domain="0x0000" bus="0x00" slot="0x05"
function="0x1"/>
         </controller>
         <controller type="usb" index="0" model="ich9-uhci3">
           <master startport="4"/>
           <address type="pci" domain="0x0000" bus="0x00" slot="0x05"
function="0x2"/>
         </controller>
         <controller type="ide" index="0">
           <address type="pci" domain="0x0000" bus="0x00" slot="0x01"
function="0x1"/>
         </controller>
         <controller type="virtio-serial" index="0">
           <address type="pci" domain="0x0000" bus="0x00" slot="0x07"
function="0x0"/>
         </controller>
         <controller type="scsi" index="0" model="virtio-scsi">
           <address type="pci" domain="0x0000" bus="0x00" slot="0x08"
function="0x0"/>
         </controller>
         <controller type="pci" index="0" model="pci-root"/>
         <interface type="network">
           <mac address="52:54:00:c3:93:40"/>
           <source network="default"/>
           <model type="virtio"/>
           <address type="pci" domain="0x0000" bus="0x00" slot="0x03"
function="0x0"/>
         </interface>
         <serial type="file">
           <source path="/tmp/myconsoleoutput.txt"/>
           <target type="isa-serial" port="0">
             <model name="isa-serial"/>
           </target>
         </serial>
         <console type="file">
           <source path="/tmp/myconsoleoutput.txt"/>
           <target type="serial" port="0"/>
         </console>
         <input type="tablet" bus="usb">
           <address type="usb" bus="0" port="1"/>
         </input>
         <input type="mouse" bus="ps2"/>
         <input type="keyboard" bus="ps2"/>
         <graphics type="spice" autoport="yes" listen="127.0.0.1">
           <listen type="address" address="127.0.0.1"/>
         </graphics>
         <sound model="ich9">
           <address type="pci" domain="0x0000" bus="0x00" slot="0x04"
function="0x0"/>
         </sound>
         <audio id="1" type="spice"/>
         <video>
           <model type="qxl" ram="65536" vram="65536" vgamem="16384"
heads="1" primary="yes"/>
           <address type="pci" domain="0x0000" bus="0x00" slot="0x02"
function="0x0"/>
         </video>
         <memballoon model="virtio">
           <address type="pci" domain="0x0000" bus="0x00" slot="0x06"
function="0x0"/>
         </memballoon>
       </devices>
     </domain>


And the guest log with the generated command line:

     2022-02-20 01:13:12.985+0000: starting up libvirt version: 7.8.0,
qemu version: 6.1.0, kernel: 5.15.19, hostname: godzilla.peecee3.com
     LC_ALL=C \
     PATH=/sbin:/usr/sbin:/bin:/usr/bin \
     HOME=/var/lib/libvirt/qemu/domain-34-slacky-0 \
XDG_DATA_HOME=/var/lib/libvirt/qemu/domain-34-slacky-0/.local/share \
     XDG_CACHE_HOME=/var/lib/libvirt/qemu/domain-34-slacky-0/.cache \
XDG_CONFIG_HOME=/var/lib/libvirt/qemu/domain-34-slacky-0/.config \
     /usr/bin/qemu-system-x86_64 \
     -name guest=slacky-0,process=qemu:slacky-0,debug-threads=on \
     -S \
     -object
'{"qom-type":"secret","id":"masterKey0","format":"raw","file":"/var/lib/libvirt/qemu/domain-34-slacky-0/master-key.aes"}'
\
     -machine
pc-i440fx-5.1,accel=kvm,usb=off,dump-guest-core=off,memory-backend=pc.ram \
So this instructs qemu to use a memory device wih id='pc.ram' as the
default/generic memory for the guest..

     -cpu kvm64 \
     -m 4096 \
     -overcommit mem-lock=off \
.. but we never generate such device. Here libvirt should have generated
-object memory-backend-file,id=pc.ram,path=/hugepages/...

And I think I know why. Let me post a patch.

     -smp 2,sockets=2,cores=1,threads=1 \
     -uuid 4a67eb39-9b92-8b8a-97ba-7e1250d56b07 \
     -no-user-config \
     -nodefaults \
     -chardev socket,id=charmonitor,fd=34,server=on,wait=off \
     -mon chardev=charmonitor,id=monitor,mode=control \
     -rtc base=utc \
     -no-shutdown \
     -boot menu=off,strict=on \
     -device ich9-usb-ehci1,id=usb,bus=pci.0,addr=0x5.0x7 \
     -device
ich9-usb-uhci1,masterbus=usb.0,firstport=0,bus=pci.0,multifunction=on,addr=0x5
\
     -device
ich9-usb-uhci2,masterbus=usb.0,firstport=2,bus=pci.0,addr=0x5.0x1 \
     -device
ich9-usb-uhci3,masterbus=usb.0,firstport=4,bus=pci.0,addr=0x5.0x2 \
     -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x8 \
     -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x7 \
     -device ide-cd,bus=ide.1,unit=0,id=ide0-1-0 \
     -blockdev
'{"driver":"file","filename":"/mnt/nvme1/VIRTUAL_MACHINES/slacky-0.qcow2","node-name":"libvirt-1-storage","cache":{"direct":false,"no-flush":false},"auto-read-only":true,"discard":"unmap"}'
\
     -blockdev
'{"node-name":"libvirt-1-format","read-only":false,"cache":{"direct":false,"no-flush":false},"driver":"qcow2","file":"libvirt-1-storage","backing":null}'
\
     -device
virtio-blk-pci,bus=pci.0,addr=0x9,drive=libvirt-1-format,id=virtio-disk0,bootindex=1,write-cache=off
\
     -netdev tap,fd=58,id=hostnet0,vhost=on,vhostfd=60 \
     -device
virtio-net-pci,netdev=hostnet0,id=net0,mac=52:54:00:c3:93:40,bus=pci.0,addr=0x3
\
     -add-fd set=3,fd=62 \
     -chardev file,id=charserial0,path=/dev/fdset/3,append=on \
     -device isa-serial,chardev=charserial0,id=serial0 \
     -device usb-tablet,id=input0,bus=usb.0,port=1 \
     -audiodev id=audio1,driver=spice \
     -spice
port=5901,addr=127.0.0.1,disable-ticketing=on,seamless-migration=on \
     -device
qxl-vga,id=video0,ram_size=67108864,vram_size=67108864,vram64_size_mb=0,vgamem_mb=16,max_outputs=1,bus=pci.0,addr=0x2
\
     -device ich9-intel-hda,id=sound0,bus=pci.0,addr=0x4 \
     -device
hda-duplex,id=sound0-codec0,bus=sound0.0,cad=0,audiodev=audio1 \
     -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x6 \
     -msg timestamp=on
     2022-02-20T01:13:13.136602Z qemu-system-x86_64: Memory backend
'pc.ram' not found
     2022-02-20 01:13:13.186+0000: shutting down, reason=failed

Again, thank you!

Michal
Many thanks!




[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux