File:  [NetBSD Developer Wiki] / wikisrc / projects / project / tickless.mdwn
Revision 1.2: download - view: text, annotated - select for diffs
Mon Feb 22 20:52:49 2016 UTC (4 years, 1 month ago) by riastradh
Branches: MAIN
CVS tags: HEAD
Fix subject/verb plural agreement.

    1: [[!template id=project
    2: 
    3: title="Tickless NetBSD with high-resolution timers"
    4: 
    5: contact="""
    6: [tech-kern](mailto:tech-kern@NetBSD.org)
    7: """
    8: 
    9: mentors="""
   10: [Taylor R Campbell](mailto:riastradh@NetBSD.org)
   11: """
   12: 
   13: category="kernel"
   14: difficulty="hard"
   15: duration="2-3 months"
   16: 
   17: description="""
   18: NetBSD configures a timer device to deliver a periodic timer interrupt,
   19:  usually every 10 ms, in order to count time, wake threads that are
   20:  sleeping, etc.
   21: This made sense when timer devices were expensive to program and CPUs
   22:  ran at MHz.
   23: But today, CPUs run at GHz; timers on modern x86, arm, mips,
   24:  etc. hardware are cheap to reprogram; programs expect greater than
   25:  10 ms resolution for sleep times; and mandatory periodic activity on
   26:  idle machines wastes power.
   27: 
   28: There are three main miletones to this project:
   29: 
   30: 1. Design a machine-independent high-resolution timer API, implement it
   31:  on a couple machines, and develop tests to confirm that it works, in
   32:  order to enable high-resolution sleeps.
   33: 
   34: 2. Convert all the functions of the periodic 10 ms timer, `hardclock',
   35:  to schedule activity only when needed.
   36: 
   37: 3. Convert the various software subsystems that rely on periodic timer
   38:  interrupts every tick, or every second, via
   39:  [callouts](http://netbsd.gw.com/cgi-bin/man-cgi?callout++NetBSD-current),
   40:  either to avoid periodic work altogether, or to batch it up only when
   41:  the machine is about to go idle, in order to reduce the number of
   42:  wakeups and thereby reduce power consumption.
   43: """
   44: ]]
   45: 
   46: [[!tag gsoc]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb