yahoo-eng-team team mailing list archive
-
yahoo-eng-team team
-
Mailing list archive
-
Message #56395
[Bug 1402709] Re: Report an error when booting an instance with a flavor which has NUMA nodes is set to 0 (hw:numa_nodes=0)
Reviewed: https://review.openstack.org/337380
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=47d8aa5e7fe0c82ed00017aa2185de1ed5e51a86
Submitter: Jenkins
Branch: master
commit 47d8aa5e7fe0c82ed00017aa2185de1ed5e51a86
Author: Gábor Antal <antal@xxxxxxxxxxxxxxx>
Date: Tue Jul 5 00:13:25 2016 +0200
Throw exception if numa_nodes is not set to integer greater than 0
As [1] is abandoned, I used that patchset to create a new one.
This patchset is freshened to the current master branch.
This patch introduces InvalidNUMANodesNumber exception, which is
thrown when trying to boot an instance with a flavor that has
hw:numa_nodes=0 extra spec set. That means that NUMA nodes is set to 0,
which is incorrect.
[1]: https://review.openstack.org/#/c/190267
Change-Id: I6bd8f69e582c537a5fec40064638a8887a08cac4
Co-Authored-By: Karim Boumedhel <karimboumedhel@xxxxxxxxx>
Closes-Bug: #1402709
** Changed in: nova
Status: In Progress => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1402709
Title:
Report an error when booting an instance with a flavor which has NUMA
nodes is set to 0 (hw:numa_nodes=0)
Status in OpenStack Compute (nova):
Fix Released
Bug description:
Booting a Nova instance successfully with hw:numa_nodes=0, with a Nova
guest XML like that[*]. This bug came out of this RDO bug --
https://bugzilla.redhat.com/show_bug.cgi?id=1154152.
But, talking with Daniel Berrnage and Nikola Dipanov on IRC, they suggest we should default to 1 node if nothing is specified:
. . .
<danpb> hmm, i'm not convinced we should allow nodes=0 at all
<danpb> we should default 1 node if nothing is specified
<danpb> We should refuse a vlaue of 0, in case we wish to make use
of that as a special value at a later date
<danpb> we don't want people relying on numa_nodes=0 accidentally
working for them now
<nikola> danpb, correct
. . .
Simple test
-------------
NUMA setup instructions here:
https://review.openstack.org/#/c/131818/1/doc/source/devref/testing
/libvirt-numa.rst
$ nova flavor-key m1.tiny set hw:numa_nodes=0
$ nova flavor-show m1.tiny
+----------------------------+------------------------+
| Property | Value |
+----------------------------+------------------------+
| OS-FLV-DISABLED:disabled | False |
| OS-FLV-EXT-DATA:ephemeral | 0 |
| disk | 1 |
| extra_specs | {"hw:numa_nodes": "0"} |
| id | 1 |
| name | m1.tiny |
| os-flavor-access:is_public | True |
| ram | 512 |
| rxtx_factor | 1.0 |
| swap | |
| vcpus | 1 |
+----------------------------+------------------------+
$ nova boot --image cirros-0.3.1-x86_64-disk --flavor m1.tiny cirrvm4
[*] Nova guest XML with an instance booted with hw:numa_nodes=0
-----------------------------------------------------------------------------
<domain type='kvm' id='3'>
<name>instance-00000004</name>
<uuid>593f8388-ac9c-4673-b1c7-aa49b1ce83f0</uuid>
<metadata>
<nova:instance xmlns:nova="http://openstack.org/xmlns/libvirt/nova/1.0">
<nova:package version="2015.1"/>
<nova:name>cirrvm4</nova:name>
<nova:creationTime>2014-12-15 14:41:43</nova:creationTime>
<nova:flavor name="m1.tiny">
<nova:memory>512</nova:memory>
<nova:disk>1</nova:disk>
<nova:swap>0</nova:swap>
<nova:ephemeral>0</nova:ephemeral>
<nova:vcpus>1</nova:vcpus>
</nova:flavor>
<nova:owner>
<nova:user uuid="0d5623bdae83445ba3a6209ea849fffe">admin</nova:user>
<nova:project uuid="f9ecf22769cf4ab98543f5ade1454664">admin</nova:project>
</nova:owner>
<nova:root type="image" uuid="5bc9a92b-6cda-4916-9bb0-dd9751880cde"/>
</nova:instance>
</metadata>
<memory unit='KiB'>524288</memory>
<currentMemory unit='KiB'>524288</currentMemory>
<vcpu placement='static'>1</vcpu>
<cputune>
<vcpupin vcpu='0' cpuset='0-3'/>
<emulatorpin cpuset='0-3'/>
</cputune>
<numatune>
<memory mode='strict' nodeset='0'/>
<memnode cellid='0' mode='strict' nodeset='0'/>
</numatune>
<resource>
<partition>/machine</partition>
</resource>
<sysinfo type='smbios'>
<system>
<entry name='manufacturer'>OpenStack Foundation</entry>
<entry name='product'>OpenStack Nova</entry>
<entry name='version'>2015.1</entry>
<entry name='serial'>bf6b5391-2390-df4f-b3dc-aa80d05468bb</entry>
<entry name='uuid'>593f8388-ac9c-4673-b1c7-aa49b1ce83f0</entry>
</system>
</sysinfo>
<os>
<type arch='x86_64' machine='pc-i440fx-2.2'>hvm</type>
<boot dev='hd'/>
<smbios mode='sysinfo'/>
</os>
<features>
<acpi/>
<apic/>
</features>
<cpu>
<topology sockets='1' cores='1' threads='1'/>
<numa>
<cell id='0' cpus='0' memory='524288' unit='KiB'/>
</numa>
</cpu>
<clock offset='utc'>
<timer name='pit' tickpolicy='delay'/>
<timer name='rtc' tickpolicy='catchup'/>
<timer name='hpet' present='no'/>
</clock>
<on_poweroff>destroy</on_poweroff>
<on_reboot>restart</on_reboot>
<on_crash>destroy</on_crash>
<devices>
<emulator>/usr/bin/qemu-kvm</emulator>
<disk type='file' device='disk'>
<driver name='qemu' type='qcow2' cache='none'/>
<source file='/home/kashyapc/src/cloud/data/nova/instances/593f8388-ac9c-4673-b1c7-aa49b1ce83f0/disk'/>
<backingStore type='file' index='1'>
<format type='raw'/>
<source file='/home/kashyapc/src/cloud/data/nova/instances/_base/03a663c2a1c649fe0854f01c82c0ddb3871cf691'/>
<backingStore/>
</backingStore>
<target dev='vda' bus='virtio'/>
<alias name='virtio-disk0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</disk>
<disk type='file' device='cdrom'>
<driver name='qemu' type='raw' cache='none'/>
<source file='/home/kashyapc/src/cloud/data/nova/instances/593f8388-ac9c-4673-b1c7-aa49b1ce83f0/disk.config'/>
<backingStore/>
<target dev='hdd' bus='ide'/>
<readonly/>
<alias name='ide0-1-1'/>
<address type='drive' controller='0' bus='1' target='0' unit='1'/>
</disk>
<controller type='usb' index='0'>
<alias name='usb0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x2'/>
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<controller type='ide' index='0'>
<alias name='ide0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x01' function='0x1'/>
</controller>
<interface type='bridge'>
<mac address='fa:16:3e:79:6c:b8'/>
<source bridge='qbr7584d9fb-e1'/>
<target dev='tap7584d9fb-e1'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
</interface>
<serial type='file'>
<source path='/home/kashyapc/src/cloud/data/nova/instances/593f8388-ac9c-4673-b1c7-aa49b1ce83f0/console.log'/>
<target port='0'/>
<alias name='serial0'/>
</serial>
<serial type='pty'>
<source path='/dev/pts/19'/>
<target port='1'/>
<alias name='serial1'/>
</serial>
<console type='file'>
<source path='/home/kashyapc/src/cloud/data/nova/instances/593f8388-ac9c-4673-b1c7-aa49b1ce83f0/console.log'/>
<target type='serial' port='0'/>
<alias name='serial0'/>
</console>
<memballoon model='virtio'>
<alias name='balloon0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
<stats period='10'/>
</memballoon>
</devices>
<seclabel type='dynamic' model='selinux' relabel='yes'>
<label>system_u:system_r:svirt_t:s0:c79,c658</label>
<imagelabel>system_u:object_r:svirt_image_t:s0:c79,c658</imagelabel>
</seclabel>
</domain>
-----------------------------------------------------------------------------
To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1402709/+subscriptions
References