Skip to content

Commit fd7ee35

Browse files
committed
xFix scheduling when NUMA pinnning
In scheduling loop HostShareCapacity object contained numa nodes from previous virtual machine. This caused scheduling to fail sometimes even if there would be a suiteable host. Fixed by recreating the object inside the loop for every virtual machine. Signed-off-by: Tony Sarajärvi <tony.sarajarvi@qt.io>
1 parent 485c3c4 commit fd7ee35

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

src/scheduler/src/sched/Scheduler.cc

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -873,8 +873,6 @@ void Scheduler::match_schedule()
873873
{
874874
VirtualMachineXML * vm;
875875

876-
HostShareCapacity sr;
877-
878876
int n_resources;
879877
int n_matched;
880878
int n_auth;
@@ -905,6 +903,7 @@ void Scheduler::match_schedule()
905903

906904
for (auto vm_it=pending_vms.begin(); vm_it != pending_vms.end(); vm_it++)
907905
{
906+
HostShareCapacity sr{};
908907
vm = static_cast<VirtualMachineXML*>(vm_it->second);
909908

910909
vm->get_capacity(sr);
@@ -1319,8 +1318,6 @@ void Scheduler::dispatch()
13191318
ostringstream dss;
13201319
string error;
13211320

1322-
HostShareCapacity sr;
1323-
13241321
int hid, dsid, cid, netid;
13251322

13261323
unsigned int dispatched_vms = 0;
@@ -1355,6 +1352,7 @@ void Scheduler::dispatch()
13551352
for (k = vm_rs.rbegin(); k != vm_rs.rend() &&
13561353
( dispatch_limit == 0 || dispatched_vms < dispatch_limit ); ++k)
13571354
{
1355+
HostShareCapacity sr{};
13581356
dispatched = false;
13591357

13601358
vm = vmpool->get((*k)->oid);

0 commit comments

Comments
 (0)