Bug 1041373

Summary: [RFE][nova]: NUMA Aware CPU Binding
Product: Red Hat OpenStack Reporter: RHOS Integration <rhos-integ>
Component: openstack-novaAssignee: RHOS Maint <rhos-maint>
Status: CLOSED UPSTREAM QA Contact: Ami Jeain <ajeain>
Severity: unspecified Docs Contact:
Priority: high    
Version: unspecifiedCC: markmc, ndipanov, sgordon, yeylon
Target Milestone: ---Keywords: FutureFeature
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
URL: https://blueprints.launchpad.net/nova/+spec/numa-aware-cpu-binding
Whiteboard: upstream_milestone_none upstream_status_unknown upstream_definition_new
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-04-15 14:54:20 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 1038706    

Description RHOS Integration 2013-12-12 15:38:31 UTC
Cloned from launchpad blueprint https://blueprints.launchpad.net/nova/+spec/numa-aware-cpu-binding.

Description:

We  can first do this for KVM.

The current cpu binding will bind the physical cores in sequential order based on the core id.  On some of the in house NUMA machines, for example, physical cores 0, 2, 4 and 6 are one one NUMA node and cores 1, 3, 5 and 7 are on the other NUMA node.  Binding a 2 vcpu VM on this machine will result in the two vcpus being bound to different nodes, this will impact the performance of the VM instances.

•	If the NEWVM request more vcpus than any single NUMA node or the NEWVM request more memory than the free memory size on any single NUMA node: exit (FAIL). The VM will float across all physical CPUs.
•	If there is a NUMA node that has enough unbound cores and has enough memory, do the binding.  Try to pack Vms on a node to make other other node available for a large VM that may start in the future.



Specification URL (additional information):

None