From d969a40b6e9790f4866d4fe3e8aa875a6a5a0b77 Mon Sep 17 00:00:00 2001 From: Daniel Clavijo Coca Date: Thu, 4 Jul 2019 09:40:23 -0500 Subject: [PATCH] F #3256: Add LXD CPU pinning --- src/vmm_mad/remotes/lib/lxd/opennebula_vm.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/vmm_mad/remotes/lib/lxd/opennebula_vm.rb b/src/vmm_mad/remotes/lib/lxd/opennebula_vm.rb index b1c7dadf76..47df5c64b8 100644 --- a/src/vmm_mad/remotes/lib/lxd/opennebula_vm.rb +++ b/src/vmm_mad/remotes/lib/lxd/opennebula_vm.rb @@ -118,7 +118,18 @@ class OpenNebulaVM hash['limits.cpu.allowance'] = "#{(cpu.to_f * 100).to_i}%" vcpu = @xml['//TEMPLATE/VCPU'] - hash['limits.cpu'] = vcpu unless vcpu.empty? + return if vcpu.empty? + + numa = @xml.element('//TEMPLATE//NUMA_NODE') + + if numa.nil? + hash['limits.cpu'] = vcpu + else # pin CPU + cores = numa['CPUS'] + cores += "-#{cores}" if cores.length == 1 + + hash['limits.cpu'] = cores + end end #---------------------------------------------------------------------------