From 676b26bb57906b7fccf813771909ee19366e81e2 Mon Sep 17 00:00:00 2001 From: Simon Marlow Date: Wed, 13 Oct 2010 18:43:00 +0000 Subject: [PATCH] comment --- rts/Threads.c | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/rts/Threads.c b/rts/Threads.c index 7344134..0dee734 100644 --- a/rts/Threads.c +++ b/rts/Threads.c @@ -284,6 +284,19 @@ unblock: // we'll block again. tso->why_blocked = NotBlocked; appendToRunQueue(cap,tso); + + // We used to set the context switch flag here, which would + // trigger a context switch a short time in the future (at the end + // of the current nursery block). The idea is that we have just + // woken up a thread, so we may need to load-balance and migrate + // threads to other CPUs. On the other hand, setting the context + // switch flag here unfairly penalises the current thread by + // yielding its time slice too early. + // + // The synthetic benchmark nofib/smp/chan can be used to show the + // difference quite clearly. + + // cap->context_switch = 1; } /* ---------------------------------------------------------------------------- -- 1.7.10.4