Hide Forgot
I've just merged patches upstream: b8d6ecc70c (origin/master, origin/HEAD, prealloc_threads, master) qemu_command: Generate prealloc-threads property 75a4e0165e qemu_validate: Validate prealloc threads against qemuCpas a30dac15dc qemu_capabilities: Detect memory-backend-*.prealloc-threads property ba7f98126f conf: Introduce memory allocation threads v8.1.0-212-gb8d6ecc70c
Preverified with scratch build on rhel8.7: libvirt-8.0.0-6.el8_rc.af6ccc6655.x86_64 qemu-kvm-6.2.0-9.module+el8.7.0+14737+6552dcb8.x86_64 Test steps: 1. Setup host hugepages sysctl vm.nr_hugepages=1024 2. Define domain xml with memorybacking with below: <memoryBacking> <hugepages/> <allocation threads='8'/> </memoryBacking> 3. Start the guest vm 4. Check the guest vm can boot up and works well. 5. Check the qemu cmdline, that multithread pass through libvirt layer to qemu: object {"qom-type":"memory-backend-file","id":"pc.ram","mem-path":"/dev/hugepages/libvirt/qemu/3-vm1","x-use-canonical-path-for-ramblock-id":false,"prealloc":true,"prealloc-threads":8,"size":2147483648} 6. Also checked other scenarios, and did not find issue: 6.1 no huge page 6.2 no multi-thread setting 6.3 working with memfd,anonymous,file source 6.4 working with immdiate, ondemand mode 6.5 negative thread setting with minus, zero, not number, too big number, null 6.6 working with big thread number 6.7 virsh define --validate
verified with: libvirt-8.0.0-6.module+el8.7.0+15026+c30823f5.x86_64 qemu-kvm-6.2.0-9.module+el8.7.0+14737+6552dcb8.x86_64 Test steps: 1. Setup host hugepages sysctl vm.nr_hugepages=1024 2. Define domain xml with memorybacking with below: <memoryBacking> <hugepages/> <allocation threads='4'/> </memoryBacking> 3. Start the guest vm 4. Check the guest vm can boot up and works well. 5. Check the qemu cmdline, that multithread pass through libvirt layer to qemu: -object {"qom-type":"memory-backend-file","id":"pc.ram","mem-path":"/dev/hugepages/libvirt/qemu/17-vm1","x-use-canonical-path-for-ramblock-id":false,"prealloc":true,"prealloc-threads":4,"size":2147483648} 6. Also checked other scenarios, and did not find issue: 6.1 no huge page 6.2 no multi-thread setting 6.3 working with memfd,anonymous,file source 6.4 working with immdiate, ondemand mode 6.5 negative thread setting with minus, zero, not number, too big number, null 6.6 working with big thread number 6.7 virsh define --validate
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory (Low: virt:rhel and virt-devel:rhel security, bug fix, and enhancement update), and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHSA-2022:7472