Bug 1196235 - Run vm with one cpu and two numa nodes failed
Summary: Run vm with one cpu and two numa nodes failed
Keywords:
Status: CLOSED CURRENTRELEASE
Alias: None
Product: Red Hat Enterprise Virtualization Manager
Classification: Red Hat
Component: ovirt-engine
Version: 3.5.0
Hardware: x86_64
OS: Linux
unspecified
high
Target Milestone: ovirt-3.6.0-rc
: 3.6.0
Assignee: Dudi Maroshi
QA Contact: Artyom
URL:
Whiteboard:
Depends On:
Blocks: 1220122
TreeView+ depends on / blocked
 
Reported: 2015-02-25 14:37 UTC by Artyom
Modified: 2016-04-20 01:10 UTC (History)
12 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Previously, verification for NUMA nodes correlation to CPUs were missing and resulted in an inefficient NUMA architecture. This update adds validation for NUMA nodes correlation to CPUs in both the GUI and REST API.
Clone Of:
: 1220122 (view as bug list)
Environment:
Last Closed: 2016-04-20 01:10:12 UTC
oVirt Team: SLA
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)
engine log (821.02 KB, text/plain)
2015-02-25 14:37 UTC, Artyom
no flags Details


Links
System ID Private Priority Status Summary Last Updated
oVirt gerrit 39317 0 master MERGED engine: validate (vm NUMA nodes) <= (vm CPU cores) Never

Description Artyom 2015-02-25 14:37:46 UTC
Created attachment 995229 [details]
engine log

Description of problem:
Via UI create vm with one cpu and two numa nodes, because we have more cpu's that numa nodes, UI will fail to add cpu's to numa nodes, and when I start vm it fail with message:
"VM test_one_numa is down with error. Exit message: invalid argument: Failed to parse bitmap ''"

Version-Release number of selected component (if applicable):
rhevm-3.5.0-0.31.el6ev.noarch

How reproducible:
Always

Steps to Reproduce:
1. Create vm with one cpu and two numa nodes
2. Start vm
3.

Actual results:
Start of vm failed with error message

Expected results:
Start of vm success

Additional info:
Under org.ovirt.engine.core.vdsbroker.vdsbroker.CreateVDSCommand
I see that: guestNumaNodes=[{cpus=, nodeIndex=0, memory=512}, {cpus=, nodeIndex=1, memory=512}]
so numa nodes not received any cpus

Comment 1 Roy Golan 2015-02-26 13:49:44 UTC
we'll supply a CandoAction and a validation whenever setting the # of nodes we want to create

# of nodes <= # of cpus

its best if UI validation will be 2 ways - on number of cpus and on number of nodes. that way we'll make sure the numa tunning dialog is initiated with right values.


Doron - need Z flags probably

Comment 2 Dudi Maroshi 2015-03-26 10:33:51 UTC
Problem verified and recreated.

Diagnostics.
-----------
The command sent to vdsm is valid and correct.
Using REST api, the stored vm_numa_nodes state is valid:
<vm_numa_nodes>
<vm_numa_node href= "/api/vms/5684a623-1f2f-46db-8570-945469314ac1/numanodes/cccbe0e8-b495-4c0c-85fa-75049243df2c" id="cccbe0e8-b495-4c0c-85fa-75049243df2c">
<index>0</index>
<memory>256</memory>
<vm href= "/api/vms/5684a623-1f2f-46db-8570-945469314ac1" id="5684a623-1f2f-46db-8570-945469314ac1"/>
<numa_node_pins>
<numa_node_pin pinned="true" index="1">
<host_numa_node id="6216e294-eaff-4ac4-a13f-612696729b98"/>
</numa_node_pin>
</numa_node_pins>
</vm_numa_node>
<vm_numa_node href= "/api/vms/5684a623-1f2f-46db-8570-945469314ac1/numanodes/4eb89f0f-47cb-46aa-9901-30f71fc13a66" id="4eb89f0f-47cb-46aa-9901-30f71fc13a66">
<index>1</index>
<memory>256</memory>
<vm href= "/api/vms/5684a623-1f2f-46db-8570-945469314ac1" id="5684a623-1f2f-46db-8570-945469314ac1"/>
<numa_node_pins>
<numa_node_pin pinned="true" index="1">
<host_numa_node id="6216e294-eaff-4ac4-a13f-612696729b98"/>
</numa_node_pin>
</numa_node_pins>
</vm_numa_node>
</vm_numa_nodes>

Looking at vdsm logs. The problem is found as invalid section in domain.xml
        <cpu match="exact">
                <model>Nehalem</model>
                <topology cores="1" sockets="16" threads="1"/>
                <numa>
                        <cell cpus="" memory="262144"/>
                        <cell cpus="" memory="262144"/>
                </numa>
        </cpu>
Notice cpus="" which should be cpus="0" and cputs="1"

conclusion:
-----------
We need to fix this bug at vdsm level.

Comment 3 Dudi Maroshi 2015-03-26 13:27:18 UTC
Following discussion with dfediuk.
We will prevent such configuration in canDoAction() method, and GUI.

Comment 5 Artyom 2015-05-26 14:02:26 UTC
Verified on ovirt-engine-3.6.0-0.0.master.20150519172219.git9a2e2b3.el6.noarch
Receive message:
Cannot edit VM. Assigned 2 NUMA nodes for 1 CPU cores. Cannot assign more NUMA nodes than CPU cores.


Note You need to log in before you can comment on or make changes to this bug.