Tuesday, October 16, 2007

Integrating Concurrency Control and Energy Management in Device Drivers

Authors: Kevin Klues (Stanford University, Washington University in St. Louis, Technical University of Berlin), Vlado Handziski (Technical University of Berlin), Chenyang Lu (Washington University in St. Louis), Adam Wolisz (Technical University of Berlin, University of California Berkeley), David Culler (Arch Rock Co., University of California Berkeley), David Gay (Intel Research Berkeley), and Philip Levis (Stanford University)

Paper: http://www.sosp2007.org/papers/sosp186-klues.pdf

(SOSP presentation)

Existing embedded devices usually rely on application for power savings. Manually shut off/turn on pieces = bleh. ICEM: Split-phase I/O operations. = make asynchronous. 3 types of device driver:
  • virtualized
    • only a functional interface
    • assume multiple users
    • buffer I/O requests for energy savings
    • must be able to tolerate longer latencies
  • dedicated
    • assume single user
    • no concurrency control
    • explicit energy management
  • shared
    • functional and lock interface
    • multiple user
    • explicit concurrency control through split-phase lock
    • implicit energy management based on pending requests
    • used for stringent timing requests
Power locks: split phase lock with integrated energy/configuration management. (wtf does that mean?). Hook down into dedicated driver. Locking mechanism to grant exclusive access to device. Lock takes care of powering on and off device.

Q: Doesn't it ultimately boil down to application decisions no matter what?
A: Thinking of letting application send hints to system

Q: Does any of this apply to mainstream OSes?
A: Not yet...where we'd really like to see this is in mobile phone OSes.

Q: How does the programming model change for app writers?
A: Very much like async I/O.

Q: Can any of the transaction work apply here? You're sort of grouping operations into a transaction.
A: Hadn't thought about it.

Q: Send is bottleneck. Done anything about that?
A: We're just specifying an architecture. You can specify policy.

No comments: