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 <an...@inf.u-szeged.hu>
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 <karimboumed...@gmail.com>
    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

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to