summaryrefslogtreecommitdiff
path: root/rts/Schedule.c
diff options
context:
space:
mode:
Diffstat (limited to 'rts/Schedule.c')
-rw-r--r--rts/Schedule.c5
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