Annotation of wikisrc/projects/project/tickless.mdwn, revision 1.1

1.1     ! riastrad    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 is 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