Red Hat Bugzilla – Bug 1327499
guest have broken settings after use setvcpus --maximum to make vcpu number < vcpu number in numa
Last modified: 2016-11-03 14:42:15 EDT
Description of problem: guest have broken settings after use setvcpus --maximum to make vcpu number < vcpu number in numa Version-Release number of selected component (if applicable): libvirt-1.3.3-2.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1.prepare a guest which have numa element in xml # virsh dumpxml rhel7.0-rhel --inactive <vcpu placement='static'>20</vcpu> ... <cpu> <numa> <cell id='0' cpus='0,2' memory='512000' unit='KiB'/> <cell id='1' cpus='1,3' memory='512000' unit='KiB'/> <cell id='2' cpus='4-19' memory='512000' unit='KiB'/> </numa> </cpu> ... 2. use setvcpus --maximum to change max vcpu: # virsh setvcpus rhel7.0-rhel 10 --maximum --config 3. recheck xml: <vcpu placement='static'>10</vcpu> ... <cpu> <numa> <cell id='0' cpus='0,2' memory='512000' unit='KiB'/> <cell id='1' cpus='1,3' memory='512000' unit='KiB'/> <cell id='2' cpus='4-19' memory='512000' unit='KiB'/> </numa> </cpu> ... 4. restart libvirtd # service libvirtd restart Redirecting to /bin/systemctl restart libvirtd.service # virsh list --all Id Name State ---------------------------------------------------- 5. check libvirtd log internal error: Number of CPUs in <numa> exceeds the <vcpu> count Actual results: guest have broken settings after use setvcpus --maximum to make vcpu number < vcpu number in numa, and guest will disappear after restart libvirtd Expected results: report error when use setvcpus --maximum or guest won't have broken settings Additional info:
commit b527e7c8e2e13c194cf32fee76d3be3d89365524 Author: Peter Krempa <pkrempa@redhat.com> Date: Wed Apr 27 16:39:41 2016 +0200 qemu: Error out if setting vcpu count would lead to invalid config When the domain definition describes a machine with NUMA, setting the maximum vCPU count via the API might lead to an invalid config. Add a check that will forbid this until we add more advanced cpu config capabilities.
Verify this bug with libvirt-2.0.0-4.el7.x86_64: 1. prepare a guest have numa settings: <vcpu placement='static' current='6'>9</vcpu> ... <cpu> <numa> <cell id='0' cpus='0-4' memory='524288' unit='KiB'/> <cell id='1' cpus='5-8' memory='524288' unit='KiB'/> </numa> </cpu> 2. change max vcpu number: # virsh setvcpus r7 1 --config --maximum error: invalid argument: Number of CPUs in <numa> exceeds the desired maximum vcpu count 3. recheck xml: <vcpu placement='static' current='6'>9</vcpu> ... <cpu> <numa> <cell id='0' cpus='0-4' memory='524288' unit='KiB'/> <cell id='1' cpus='5-8' memory='524288' unit='KiB'/> </numa> </cpu> ...
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, 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://rhn.redhat.com/errata/RHSA-2016-2577.html