History log of /frameworks/base/services/java/com/android/server/Watchdog.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
5df1d871feabee23b16a69ee48695fd892017517 29-Nov-2012 Colin Cross <ccross@android.com> trigger kernel blocked stack trace on system server watchdog

Bug b/7638530 may be caused by a kernel deadlock when killing
processes under low memory conditions. Write to /proc/sysrq-trigger
to get a kernel log of blocked tasks before killing the system server.

Bug: 7638530
Change-Id: I60df324ad4affdadbf13650099dc4dfb38722420
/frameworks/base/services/java/com/android/server/Watchdog.java
c428aae6429c3fd5e2037c3793af399d9f6e23bf 04-Oct-2012 Dianne Hackborn <hackbod@google.com> Fix issue #7267494, issue #7212347

7267494 Calendar is not syncing
Check for whether a content provider is dead before returning
it. This is kind-of a band-aid, but probably the right thing
to do; I'm just not sure exactly the full details of why this
problem is happening. Hopefully this "fixes" it, though I don't
have a way to repro to tell.

7212347 System power off dialog is only visible to user 0
Make it visible. Also turn on some battery debugging stuff and
clean it up so we can just keep it.

Change-Id: I5add25bf2a763c8dfe1df23bc5c753a9ea5d157a
/frameworks/base/services/java/com/android/server/Watchdog.java
a4d8204e3068b9d8d6908d4cf3440e81967867a3 03-Oct-2012 Jeff Brown <jeffbrown@google.com> Fix some synchronization issues in BatteryService.

Some of the BatteryService state was being locked
sometimes and it wasn't at all consistent.

Bug: 7158734
Change-Id: I46e75f66fde92c5a577a80a6bd99c9573066f3c1
/frameworks/base/services/java/com/android/server/Watchdog.java
4de9936e85696208dfe91d1c40e3e5226e57634a 27-Sep-2012 Jeff Sharkey <jsharkey@android.com> Remove unused Secure settings.

Carefully leave default values intact in Watchdog for now.

Bug: 7232007, 7232230
Change-Id: Id944181109305aed41e0766fdd39625b43cb1d19
/frameworks/base/services/java/com/android/server/Watchdog.java
0b5a4a15132a9367b6bbff62781e9ad3441b6c1d 05-Sep-2012 Jean-Baptiste Queru <jbq@google.com> am 11626a91: am 9eb3bd88: am 42a58ecd: Merge "Revert "Watchdog: Improvement of debuggability""

* commit '11626a91b6e695e7a8fa9e9a9f1a37df11cfb4e2':
Revert "Watchdog: Improvement of debuggability"
784827b27cf4cd82bf074b571e63cb5e660c54af 04-Sep-2012 Jean-Baptiste Queru <jbq@google.com> Revert "Watchdog: Improvement of debuggability"

This reverts commit 9211b13c3268035b0da0c51ed2d6d5a578d45ff3.
/frameworks/base/services/java/com/android/server/Watchdog.java
4698e36db68273b556867522b1aaffabb8099518 30-Aug-2012 Jean-Baptiste Queru <jbq@google.com> am 6ab3ea5f: am 147ef944: am 60d1e1a0: Merge "Watchdog: Improvement of debuggability"

* commit '6ab3ea5f48abfd777d5bd18d92acc3bc766f78ce':
Watchdog: Improvement of debuggability
9211b13c3268035b0da0c51ed2d6d5a578d45ff3 28-Aug-2012 rikard dahlman <rikard.dahlman@sonymobile.com> Watchdog: Improvement of debuggability

If the watchdog detects a problem the system server process
is killed, that is followed by a crash. Because the crash is
done after the system server process is killed, the crash
don't contain info about the system server.
This improvement will make sure that the system is crashed
before the system server process is killed.
Behavior is only changed for eng and userdebug builds.

Change-Id: I9f1c8fd8b03d0114032ed44fb582705ad0b49733
/frameworks/base/services/java/com/android/server/Watchdog.java
9630704ed3b265f008a8f64ec60a33cf9dcd3345 28-Jul-2012 Jeff Brown <jeffbrown@google.com> Power manager rewrite.

The major goal of this rewrite is to make it easier to implement
power management policies correctly. According, the new
implementation primarily uses state-based rather than event-based
triggers for applying changes to the current power state.

For example, when an application requests that the proximity
sensor be used to manage the screen state (by way of a wake lock),
the power manager makes note of the fact that the set of
wake locks changed. Then it executes a common update function
that recalculates the entire state, first looking at wake locks,
then considering user activity, and eventually determining whether
the screen should be turned on or off. At this point it may
make a request to a component called the DisplayPowerController
to asynchronously update the display's powe state. Likewise,
DisplayPowerController makes note of the updated power request
and schedules its own update function to figure out what needs
to be changed.

The big benefit of this approach is that it's easy to mutate
multiple properties of the power state simultaneously then
apply their joint effects together all at once. Transitions
between states are detected and resolved by the update in
a consistent manner.

The new power manager service has is implemented as a set of
loosely coupled components. For the most part, information
only flows one way through these components (by issuing a
request to that component) although some components support
sending a message back to indicate when the work has been
completed. For example, the DisplayPowerController posts
a callback runnable asynchronously to tell the PowerManagerService
when the display is ready. An important feature of this
approach is that each component neatly encapsulates its
state and maintains its own invariants. Moreover, we do
not need to worry about deadlocks or awkward mutual exclusion
semantics because most of the requests are asynchronous.

The benefits of this design are especially apparent in
the implementation of the screen on / off and brightness
control animations which are able to take advantage of
framework features like properties, ObjectAnimator
and Choreographer.

The screen on / off animation is now the responsibility
of the power manager (instead of surface flinger). This change
makes it much easier to ensure that the animation is properly
coordinated with other power state changes and eliminates
the cause of race conditions in the older implementation.

The because of the userActivity() function has been changed
so that it never wakes the device from sleep. This change
removes ambiguity around forcing or disabling user activity
for various purposes. To wake the device, use wakeUp().
To put it to sleep, use goToSleep(). Simple.

The power manager service interface and API has been significantly
simplified and consolidated. Also fixed some inconsistencies
related to how the minimum and maximum screen brightness setting
was presented in brightness control widgets and enforced behind
the scenes.

At present the following features are implemented:

- Wake locks.
- User activity.
- Wake up / go to sleep.
- Power state broadcasts.
- Battery stats and event log notifications.
- Dreams.
- Proximity screen off.
- Animated screen on / off transitions.
- Auto-dimming.
- Auto-brightness control for the screen backlight with
different timeouts for ramping up versus ramping down.
- Auto-on when plugged or unplugged.
- Stay on when plugged.
- Device administration maximum user activity timeout.
- Application controlled brightness via window manager.

The following features are not yet implemented:

- Reduced user activity timeout for the key guard.
- Reduced user activity timeout for the phone application.
- Coordinating screen on barriers with the window manager.
- Preventing auto-rotation during power state changes.
- Auto-brightness adjustment setting (feature was disabled
in previous version of the power manager service pending
an improved UI design so leaving it out for now).
- Interpolated brightness control (a proposed new scheme
for more compactly specifying auto-brightness levels
in config.xml).
- Button / keyboard backlight control.
- Change window manager to associated WorkSource with
KEEP_SCREEN_ON_FLAG wake lock instead of talking
directly to the battery stats service.
- Optionally support animating screen brightness when
turning on/off instead of playing electron beam animation
(config_animateScreenLights).

Change-Id: I1d7a52e98f0449f76d70bf421f6a7f245957d1d7
/frameworks/base/services/java/com/android/server/Watchdog.java
4f8ecd80296508a1dc69d3f3a23fd91e962c2784 19-Jun-2012 Jeff Brown <jeffbrown@google.com> Move power manager to a new package.

Change-Id: I5f5a6435e64354b7d6535e8e9a63934ba7a3f448
/frameworks/base/services/java/com/android/server/Watchdog.java
f72467ad9843bf5d4b75fb308386e77ebb5c3447 09-Jun-2012 Dianne Hackborn <hackbod@google.com> Include important native processes in watchdog stacks.

Helps us track down deadlocks involving native service processes.

Bug: 6615693
Change-Id: I580047550772e29586195a8cf440141574e3f40c
/frameworks/base/services/java/com/android/server/Watchdog.java
a353d2654a98b292469d2559cb4424b13d779924 28-Oct-2011 Jeff Sharkey <jsharkey@android.com> Differentiate between system_server and unknown.

Bug: 5531966
Change-Id: I2b64b04f3f5a8760a2314729e8b90e9dd6699cb4
/frameworks/base/services/java/com/android/server/Watchdog.java
cf2317ef13e35cf1bcd5ba27be686c7f2609ac38 26-Aug-2011 Mathias Agopian <mathias@google.com> put the watchdog values back to what they should be

Change-Id: I4f394248c2f4c514f74b66fde3cb69bbed9ec796
/frameworks/base/services/java/com/android/server/Watchdog.java
2370d0a14f09d4fb5133ff48e28459ce8343bf80 26-Aug-2011 Mathias Agopian <mathias@google.com> make sure to re-initialize SurfaceTexture to its default state on disconnect

this caused problems where the NavigationBar would disapear or be
drawn in the wrong orientation.

Change-Id: I083c41338db83a4afd14f427caec2f31c180d734
/frameworks/base/services/java/com/android/server/Watchdog.java
43a17654cf4bfe7f1ec22bd8b7b32daccdf27c09 07-Apr-2011 Joe Onorato <joeo@google.com> Remove the deprecated things from Config.java. These haven't been working since before 1.0.

Change-Id: Ic2e8fa68797ea9d486f4117f3d82c98233cdab1e
/frameworks/base/services/java/com/android/server/Watchdog.java
9765c72eeaba9ed0f704dd992e7a954f38f20abd 14-Jan-2011 Brad Fitzpatrick <bradfitz@android.com> Watchdog can get deadlocked on activity manager

Bug: 3351719
Change-Id: Ie5bb39e5ff92f41c14ae59240173fab9c2491a91
/frameworks/base/services/java/com/android/server/Watchdog.java
6b1afebdaca6c27d49a243c4283e5e2e4924de8c 01-Sep-2010 Dianne Hackborn <hackbod@google.com> Improve debug output when an ANR happens.

- Collect data at better times.
- Collect per-thread CPU usage as soon as possible after the ANR, and print
in log.
- Based on new per-thread CPU usage, limit the number of processes we
collect stacks from to not include inactive not interesting procs.
- Improve the way ProcessStats compute and reports its data.

Change-Id: I12b17fb47d593d175be69bb792c1f57179bf4fdf
/frameworks/base/services/java/com/android/server/Watchdog.java
c27181c7f3e11170ec82807cfa416f0a906ff574 30-Jun-2010 Christopher Tate <ctate@google.com> Remove memory monitoring from the system watchdog

This was originally written as an in-case-we-need-it facility, but was
never actually used in production. It also soaked up a surprising amount
of cpu on occasion, as well as doing sketchy things like demoting the
system_server's primary looper thread to the background cgroup at times.

Change-Id: I9a81a8d1e9caea9e0a1277d97785fe96add438d7
/frameworks/base/services/java/com/android/server/Watchdog.java
ecaa7b41ca49154ceaa9a7504eb0a86b89a96026 04-Jun-2010 Christopher Tate <ctate@google.com> Watchdog now records kernel stacks when it fires

The kernel threads are appended to the usual /data/anr/traces.txt file
and dropboxed along with the usual Dalvik stack dumps.

Change-Id: I120f1f5ee54c965efe9ac0c7f40fdef56385f1fa
NOTE: this change depends on the kernel publishing /proc/$PID/stack
/frameworks/base/services/java/com/android/server/Watchdog.java
6ee412d51d8b601580cfb4b7be4f676b7ec76afd 28-May-2010 Christopher Tate <ctate@google.com> Also dump system process threads halfway through the watchdog interval

This gives us a snapshot of what the system process was doing after 30 seconds
of apparent inactivity as well as after 1 minute, to help distinguishing actual
deadlocks from too-slow progress, livelock, etc.

Change-Id: I19758861d1b25f298e88788e8f1c7ec7bf828823
/frameworks/base/services/java/com/android/server/Watchdog.java
4bded0744a07152c1e7ae4cb8110c74ec89a67b1 12-Mar-2010 Dan Egnor <egnor@google.com> Dump the phone process stack (as well as the system process) on watchdog reset.

Change-Id: I3c47086f9cc010f524da7de539942ea30d0338e3
/frameworks/base/services/java/com/android/server/Watchdog.java
6ffce2e9a3c57634bb73f8ff133ca680f8070d5d 08-Mar-2010 Suchi Amalapurapu <asuchitra@google.com> Add new shutdown observer for MountService.
Use new observer before rebooting and shutting down.
Add some unit tests for unmount and shutdown code paths
Fix registering/unregistering part in MountService
Use ShutdownThread in PowerManager.reboot()
Add reboot support to ShutdownThread.
Remove MountService code from PowerManagerService.java and Power.java.
Clean shutdown/reboot is handled exclusively by ShutdownThread now.

Change-Id: Iefb157451d3d9c426cb431707b870a873c09123d
/frameworks/base/services/java/com/android/server/Watchdog.java
9bdc94b7a42a07d7dafcdf2cbadbb9c736b979d2 04-Mar-2010 Dan Egnor <egnor@google.com> Improve watchdog diagnostics.

Capture stack traces from the system process using the same
mechanism as ANRs (which will initialize traces.txt, etc).
Also record the watchdog reset in the dropbox for uploading.

Bug: 2475557
/frameworks/base/services/java/com/android/server/Watchdog.java
8a9b22056b13477f59df934928c00c58b5871c95 27-Feb-2010 Joe Onorato <joeo@android.com> Switch the services library to using the new Slog
/frameworks/base/services/java/com/android/server/Watchdog.java
f68888951ae6056f5a15a7e2a84045c067bc6ba2 07-Jan-2010 Doug Zongker <dougz@android.com> move Watchdog's settings from Gservices to Secure

Change-Id: Iac1146dafa12f9247874514c9aeefa5f8f83933d
/frameworks/base/services/java/com/android/server/Watchdog.java
ab5c49c7e7f5f61040650109a76f38a443fb852d 04-Dec-2009 Doug Zongker <dougz@android.com> move event log tags used by system server into this package

We can now locate event log tag definitions in individual packages
(and java constants for the tag numbers get auto-generated), so move
all the tags used by the system server into the package.
/frameworks/base/services/java/com/android/server/Watchdog.java
723738cfaec3dd7b0fe152c872c41bebf94074c4 26-Jun-2009 Dianne Hackborn <hackbod@google.com> Expand support for different screen sizes.

Applications can now declare that they support small, normal, or
large screens. Resource selection can also be done based on these
sizes. By default, pre-Donut apps are false for small and large,
and Donut or later apps are assumed to support all sizes. In either
case they can use <supports-screens> in their manifest to declare
what they actually support.
/frameworks/base/services/java/com/android/server/Watchdog.java
9066cfe9886ac131c34d59ed0e2d287b0e3c0087 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/services/java/com/android/server/Watchdog.java
d83a98f4ce9cfa908f5c54bbd70f03eec07e7553 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
/frameworks/base/services/java/com/android/server/Watchdog.java
b798689749c64baba81f02e10cf2157c747d6b46 10-Jan-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //branches/cupcake/...@125939
/frameworks/base/services/java/com/android/server/Watchdog.java
f013e1afd1e68af5e3b868c26a653bbfb39538f8 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
/frameworks/base/services/java/com/android/server/Watchdog.java
54b6cfa9a9e5b861a9930af873580d6dc20f773c 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution
/frameworks/base/services/java/com/android/server/Watchdog.java