[GHC] #7606: Stride scheduling for Haskell threads with priorities
GHC
cvs-ghc at haskell.org
Fri Jan 18 21:00:57 CET 2013
#7606: Stride scheduling for Haskell threads with priorities
---------------------------------+------------------------------------------
Reporter: ezyang | Owner: ezyang
Type: feature request | Status: new
Priority: normal | Milestone: 7.8.1
Component: Runtime System | Version: 7.7
Keywords: | Os: Unknown/Multiple
Architecture: Unknown/Multiple | Failure: None/Unknown
Difficulty: Unknown | Testcase:
Blockedby: | Blocking:
Related: |
---------------------------------+------------------------------------------
Comment(by ezyang):
Replying to [comment:2 simonpj]:
> * What the goal of this change is.
The goal of the change is to allow Haskell programmers to change how
frequently threads they create are being run; in case there are some
threads that are important and should be run as frequently as possible, or
threads are being created by an untrusted user who should not be allowed
to thread-bomb the system.
> * Roughly how the new scheduling algorithm achieves the goal.
Stride scheduling operates by replacing our old doubly linked list run
queue with a priority queue. The priorities are 'passes' which increment
by their stride (computed based on their priority) every time they run;
thus, a task with a low stride will run multiple times before their pass
catches up.
> * There seems to be something about priorities involved. Who sets
those priorities? The programmer? The runtime system?
The priorities are set by the programmer using setTickets and related
functions.
> * What about priority inversion?
Without any change to priorities, scheduling behavior is intended to be
identical to what it was previously. Priority inversion can occur when a
thread blocks on another; this patch doesn't address that yet (though I've
mentioned about how to do it for BLACKHOLES).
--
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/7606#comment:4>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list