Hi all :), Can anyone suggest a good tutorial to create our own scheduler ? Sent from my HTC Excuse for typo.
On Wed, 06 Feb 2013 23:19:26 +0530, jeshkumar555@gmail.com said:
Can anyone suggest a good tutorial to create our own scheduler ?
Doing an I/O scheduler is pretty trivial, and there's a number of examples in-tree already to look at. If you mean a CPU scheduler, the major reason why there's no tutorial is because writing a non-toy scheduler is *hard*, and by and large anybody who's a good enough kernel hacker to write a working scheduler doesn't need a tutorial. Why is it hard? Lots of reasons. Even on a single-core, single-thread CPU, it's hard to go a good job of picking the next task to run, mostly because tasks are so damned good at changing behavior. You decide that it would be good to run an I/O bound task, so you pick a task that went into an I/O wait its last 12 times on the CPU - at which point the task turns around and goes CPU bound crunching all the data it read in the last 12 times. :) You also have interactions with thermal issues and frequency governors (usually, cranking to highest frequency and doing race-to-idle and then dropping to lowest freq results in the lowest total energy use, but especially for high-density applications, there may be a upper limit on watts per second that you can cool, resulting in trade-offs being needed). Then there's cache affinity issues, balancing load across cores on multi-socket systems, etc etc etc...
On Wed, Feb 06, 2013 at 01:16:22PM -0500, Valdis.Kletnieks@vt.edu wrote:
for high-density applications, there may be a upper limit on watts per second that you can cool, resulting in trade-offs being needed). Then there's cache
I'm sorry to ask, but don't you rather mean watts than watts per second? Regards, Jonathan Neuschäfer
On Wed, 06 Feb 2013 20:40:47 +0100, Jonathan Neuschäfer said:
I'm sorry to ask, but don't you rather mean watts than watts per second?
There may indeed be a second order time component involved - for instance, a cooling system that can handle 10 watts continuously, 20 watts for up to 30 seconds, or 40 watts for 10 seconds max. And of course, "40 watts steady for 10 seconds" is different from "averaging 40 watts but bouncing between 30 and 50 watts for 10 seconds" etc etc.. And of course, there's usually a per-system limit, and per-chip limits, and your power/cooling budget constraints may force you to go for a higher value on one to make the budget for the other (burn an extra 0.5 watts in chip A in order to get Chip B under 0.87 watts type stuff)....
well...u asked for it: http://abstract.cs.washington.edu/~shwetak/classes/ee472/assignments/lab2/la... http://www.cs.cmu.edu/~410-s07/p3/kernel.pdf http://web.stonehill.edu/compsci/CS314/Assignments/Assignment0.pdf http://www.cs.amherst.edu/~sfkaplan/courses/2012/spring/cs261/assignments/pr... etc...googling returned me 27000 links.... On Thu, Feb 7, 2013 at 1:49 AM, jeshkumar555@gmail.com < jeshkumar555@gmail.com> wrote:
Hi all :),
Can anyone suggest a good tutorial to create our own scheduler ?
Sent from my HTC Excuse for typo.
_______________________________________________ Kernelnewbies mailing list Kernelnewbies@kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies
-- Regards, Peter Teoh
participants (4)
-
jeshkumar555@gmail.com -
Jonathan Neuschäfer -
Peter Teoh -
Valdis.Kletnieks@vt.edu