Bug 1327499
| Summary: | guest have broken settings after use setvcpus --maximum to make vcpu number < vcpu number in numa | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Luyao Huang <lhuang> |
| Component: | libvirt | Assignee: | Peter Krempa <pkrempa> |
| Status: | CLOSED ERRATA | QA Contact: | Virtualization Bugs <virt-bugs> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 7.3 | CC: | dyuan, rbalakri |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | x86_64 | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | libvirt-1.3.4-1.el7 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2016-11-03 18:42:15 UTC | Type: | Bug |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
commit b527e7c8e2e13c194cf32fee76d3be3d89365524
Author: Peter Krempa <pkrempa>
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 |
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: