blob: e816e496224061a97c738b89938d784700fbf0ce [file] [log] [blame]
The power manager makes power-related policy decisions via C++ code running
in userspace. This repository contains the following directories:
common: Code shared between powerd and tools.
dbus: D-Bus policy configuration files.
default_prefs: Default pref files installed to /usr/share/power_manager.
init: Upstart config files installed to /etc/init.
optional_prefs: Pref files conditionally installed based on USE flags.
powerd: Power manager daemon running as the "power" user.
powerd/policy: High-level parts of powerd that make policy decisions.
powerd/system: Low-level parts of powerd that communicate with the kernel.
tools: Utility programs; may depend on powerd code.
udev: udev configuration files and scripts.
A note about logging: powerd receives input (e.g. user/video/audio activity, lid
events, etc.) and performs actions sporadically; thirty-second intervals where
nothing happens are common for an idle system. Having logs of these events is
essential to reconstruct the past when investigating user feedback reports.
powerd's unit tests, on the other hand, send a bunch of input very quickly.
Logging all events drowns out the rest of the testing output.
To produce useful output when running in production while producing readable
output from tests, powerd logs messages at the LOG(INFO) level and above by
default, while unit tests use LOG(WARNING) and above.
Please use logging directives as follows within powerd:
VLOG(1) Debugging info that is hidden by default but can be selectively
enabled by developers.
LOG(INFO) Input from other systems or actions performed by powerd (i.e.
things that would be useful when trying to figure out what
powerd was thinking when investigating a bug report).
LOG(WARNING) Minor errors (e.g. bad input from other daemons).
LOG(ERROR) Major errors (e.g. problems communicating with the kernel).
LOG(FATAL) Critical problems that make powerd unusable or that indicate
problems in the readonly system image (e.g. malformed preference
CHECK(...) Same as LOG(FATAL).