diff options
Diffstat (limited to 'rts/Schedule.c')
-rw-r--r-- | rts/Schedule.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/rts/Schedule.c b/rts/Schedule.c index 8a08e35cc3..fca276dc08 100644 --- a/rts/Schedule.c +++ b/rts/Schedule.c @@ -726,7 +726,8 @@ schedulePushWork(Capability *cap USED_IF_THREADS, } while (n_wanted_caps < n_capabilities-1); } - // Grab free capabilities, starting from cap->no+1. + // First grab as many free Capabilities as we can. ToDo: we should use + // capabilities on the same NUMA node preferably, but not exclusively. for (i = (cap->no + 1) % n_capabilities, n_free_caps=0; n_free_caps < n_wanted_caps && i != cap->no; i = (i + 1) % n_capabilities) { @@ -1134,7 +1135,7 @@ scheduleHandleHeapOverflow( Capability *cap, StgTSO *t ) // nursery has only one // block. - bd = allocGroup_lock(blocks); + bd = allocGroupOnNode_lock(cap->node,blocks); cap->r.rNursery->n_blocks += blocks; // link the new group after CurrentNursery |