Commit Graph

1315 Commits

Author SHA1 Message Date
Dianne Hackborn
390517be2d Clean up some temporary allocations.
Yay to ArrayMap, letting me get rid of a bunch of temporary
iterators in core code paths like updateOomAdj.  (Now I definitely
need an ArraySet to finish that up.)

Also clean up various other things that are doing unnecessary
allocations, clean up some debug output, make more of the debug
output respect package filtering.

Change-Id: Ib4979faf4de8c7912739bc0937c3fa9e7bfcde67
2013-05-30 19:26:42 -07:00
Romain Guy
80b12fcaae Disable the AssetAtlas when running under valgrind
Bug #9191438

When running under valgrind, the ppid will be different from the ppid
of the system server (which always gets forked from zygote.)

Change-Id: I42cbf99fd0084aeab76c30de9beb7c49ed1fc7d8
2013-05-29 16:01:36 -07:00
Tim Murray
df6f42394b Merge "Add support to Java for RS tracing." 2013-05-24 21:06:40 +00:00
Tim Murray
6d7a53cbdd Add support to Java for RS tracing.
Change-Id: I95c365345fea3a1e132a7eb2270d541be0745d02
2013-05-24 13:36:32 -07:00
Dianne Hackborn
64770d16b0 Some improvements to meminfo output.
- Rename "Swappable PSS" to "PSS Clean" which I think is what it
  means and is consistent with the other memory metrics.
- Split at the top level the dalvik heap from other dalvik allocations,
  so when you look on the dalvik allocations line things are consistent
  with the allocator's data and it is clear what are app allocations vs.
  other data in dalvik.
- Don't print lines that are all 0.
- Don't print the detailed Dalvik allocation data by default; add a new
  option to have it printed.

Here's what a typical system process dump now looks like:

** MEMINFO in pid 6358 [system] **
                   Pss      Pss   Shared  Private   Shared  Private     Heap     Heap     Heap
                 Total    Clean    Dirty    Dirty    Clean    Clean     Size    Alloc     Free
                ------   ------   ------   ------   ------   ------   ------   ------   ------
  Native Heap        0        0        0        0        0        0     6964     3599     2048
  Dalvik Heap     7541        0     4344     7356        0        0    11768    11194      574
 Dalvik Other     3553        0     2792     3448        0        0
        Stack       28        0        8       28        0        0
       Cursor        4        0        0        4        0        0
       Ashmem        5        0       12        0        0        0
    Other dev     4004        0       24     4000        0        4
     .so mmap     3959      684     2500     2280     5468      684
    .apk mmap      173       68        0        0      692       68
    .dex mmap     4358     3068        0        0     9276     3068
   Other mmap       60        0        8        8      244       36
      Unknown     4387        0      508     4380        0        0
        TOTAL    28072     3820    10196    21504    15680     3860    18732    14793     2622

 Objects
               Views:       10         ViewRootImpl:        1
         AppContexts:        8           Activities:        0
              Assets:        3        AssetManagers:        3
       Local Binders:      176        Proxy Binders:      341
    Death Recipients:      141
     OpenSSL Sockets:        0

 SQL
         MEMORY_USED:      473
  PAGECACHE_OVERFLOW:       98          MALLOC_SIZE:       62

 DATABASES
      pgsz     dbsz   Lookaside(b)          cache  Dbname
         4       68             49         7/21/7  /data/data/com.android.providers.settings/databases/settings.db
         4       20             17         0/13/1  /data/system/locksettings.db
         4       20             21        96/14/2  /data/system/locksettings.db (1)
         4       20             21        75/13/2  /data/system/locksettings.db (2)
         4       80             29         4/17/3  /data/system/users/0/accounts.db

Change-Id: Ifd511a7baaa8808f82f39509a5a15c71c41d1bac
2013-05-24 10:47:03 -07:00
Anwar Ghuloum
3c61506b71 Add more memory usage stats
Added support for teasing apart different parts of the dalvik heap.

Note this adds more public api and we should talk to hackbod before going into master with this.

(cherry picked from commit 73407daf3f6110e933d8614605b21586c4c5fde2)

Change-Id: If4431f50e67e18bcc42e00694c97805477bd6815
2013-05-23 12:30:42 -07:00
Anwar Ghuloum
3a8ce1bec8 More stats for meminfo
Added shared clean tracking (for pageable stuff).  Renamed .oat and .art mmap.

(cherry picked from commit 967d53b17b6010c3a675ca9c3bbd0e9dd2f2f092)

Change-Id: I741e0dbe0d3f9aee6975c6fad8af9905942962d4
2013-05-23 12:29:59 -07:00
Anwar Ghuloum
88887d0a53 break out boot.art
breaking out boot.art mapped pages

(cherry picked from commit eaa3f2d59adaeb87cd8d1726b696521f984659c4)

Change-Id: Ie89477bd3a93a15de3a4db76ef5eae497c3087e3
2013-05-23 12:29:37 -07:00
Anwar Ghuloum
8884ef4fe8 Break out Oat footprint for ram
Breaking out oat footprint in meminfo.

(cherry picked from commit c92f177d96b5952e0bfde01597972fc607aed93a)

Change-Id: I7b0452045c265b7544c41d3a5953e10a081c5315
2013-05-23 12:28:08 -07:00
Dianne Hackborn
713df150b9 Add app ops for wake locks.
Currently only supports auditing, not disabling.

Change-Id: Ie85f02c29b490d96e073f54d59e165d48c7c00c9
2013-05-20 16:49:46 -07:00
Dianne Hackborn
b14e42f121 Merge "Cleanup some of the thread merging." 2013-05-09 22:30:30 +00:00
Daniel Sandler
fa98345745 am 617055d7: am 5d6dc425: Merge "Filter out dangerous CharSequences in Notification." into jb-mr2-dev
* commit '617055d7a9e2c30d1a99bf7e596f8d9e32fab723':
  Filter out dangerous CharSequences in Notification.
2013-05-08 17:32:50 -07:00
Daniel Sandler
5d6dc42528 Merge "Filter out dangerous CharSequences in Notification." into jb-mr2-dev 2013-05-09 00:28:11 +00:00
Jamie Gennis
8afcf4411e am 211eae98: am d28653df: Merge "Add the trace tag for Dalvik." into jb-mr2-dev
* commit '211eae98fce88c7c502eb8f59d956c1a249d77bc':
  Add the trace tag for Dalvik.
2013-05-08 15:03:58 -07:00
Daniel Sandler
dcbaf661bf Filter out dangerous CharSequences in Notification.
If an app mistakenly puts some Parcelable implementation of
CharSequence in here, Bundle will try to marshal the derived
class, which is going to be bad news when we try to unparcel
it in another process.

Additionally add a proper stack trace to unparceling
failures (otherwise you have no idea where the bad parcel
was being used).

Bug: 8725271
Change-Id: Ide19b986d65c7f47929cf2dde4e62b762c469fee
2013-05-08 17:06:35 -04:00
Jamie Gennis
d28653df65 Merge "Add the trace tag for Dalvik." into jb-mr2-dev 2013-05-08 01:21:33 +00:00
Dianne Hackborn
efa92b2182 Cleanup some of the thread merging.
Adds an optimization for checking whether a looper is stuck,
with a new Looper method to see if its thread is currently
idle.  This will allow us to put a large number of loopers
in the monitor efficiently, since we generally won't have to
do a context switch on each of them (since most looper threads
spend most of their time idle waiting for work).

Also change things so the system process's main thread
is actually running on the main thread.  Because Jeff
asked for this, and who am I to argue? :)

Change-Id: I12999e6f9c4b056c22dd652cb78c2453c391061f
2013-05-07 15:33:26 -07:00
Jamie Gennis
0cc84cefdd Add the trace tag for Dalvik.
Bug: 8856374
Change-Id: Id0fbdb8f7a487c5831edcd2c6c64a7da63aec03d
2013-05-07 15:23:06 -07:00
Dianne Hackborn
3aa49b6fec New UndoManager.
Basic implementation of an undo manager.  Supports
multi-level undo/redo, building on the top undo state
as edits occur, managing multiple distinct entities in
the undo state (such as embedded objects in a document),
and saving/restoring the full undo state.  Still some
work remaining on correctly dealing with dependencies
between undo states that hold multiple owners.

Also do a simple implementation of undo state in TextView
to see how things actually work.  The implementation here
is very primitive: it needs a lot more work to correctly
identify when to merge undo ops, is not trying to do
anything smart with style spans, etc.

Change-Id: Ie30f4e133351e2f569ffb48c6c44a2b19cadee27
2013-05-07 15:05:09 -07:00
Kenny Root
add582122d resolved conflicts for merge of 485d7a31 to master
Change-Id: I058e19af8732df44457bdc614ee810a642dc25e4
2013-05-07 09:51:31 -07:00
Dianne Hackborn
5b88a2fd7b Debugging help for issue #8734824: WATCHDOG KILLING SYSTEM PROCESS
IActivityController has a new callback which the Watchdog calls
when it detects that the system process is hung.  This may be
use full monkey.  All hail the monkey!

Also add a new private feature to Binder to be able to turn off
all incoming dump() calls to a process.  The watchdog uses this
when it reports it is hung, so that if someone, say, wants to
collect a bug report at this point they won't get stuck waiting
for things that are all busted.

Change-Id: Ib514d97451cf3b93f29e194c1954e29f948c13b1
2013-05-06 11:16:18 -07:00
Jeff Sharkey
ec43a6bc17 Better --unplugged support when dumping battery.
Also fixes logBatteryStatsLocked() to output valid dump data, instead
of just a usage message.

Bug: 8708665
Change-Id: Ie0d8d90e1a470b7e1e902643333309c2cf7bdb72
2013-04-30 13:33:18 -07:00
Amith Yamasani
fe9270712e am 83a61421: am bbd90f8e: Merge "Hide isLinkedUser()" into jb-mr2-dev
* commit '83a6142173fbd3ddf5c4285e2b6359e44beaddb0':
  Hide isLinkedUser()
2013-04-25 21:26:59 -07:00
Jeff Sharkey
3e013e85b0 Track foreground activities in battery stats.
To help correlate battery usage against actual foreground app usage,
start tracking time on a per UID basis.  It uses the nesting feature
of StopwatchTimer to track multiple PIDs inside the same UID.

Improves units on docs, and persists foreground CPU time with a
consistent ordering.  Reports foreground activities time and
foreground CPU time.

Change-Id: I95d12963923e3fd421730f6fbfc842dfd8d3a055
2013-04-25 17:01:37 -07:00
Amith Yamasani
2555dafce8 Hide isLinkedUser()
It's not the best API to use to determine anything. Defer to other
APIs such as UserManager.getUserRestrictions()

Bug: 8720520
Change-Id: Ie49589056ab52b4fdbcc736f8cdefadb8ba5d9d8
2013-04-25 13:39:27 -07:00
Ian Rogers
023c1f4a1e am 896ee5b6: am be4536d2: Merge "Adding matching @deprecated."
* commit '896ee5b6f8354567464a371025088156ed49bc32':
  Adding matching @deprecated.
2013-04-23 15:01:30 -07:00
Ian Rogers
282a7e1b1d Adding matching @deprecated.
Bug: 8657266

(Cherry-pick of c2a3adbd56)

Change-Id: Idbd22dc647f11441d15da12eb23723539768cf4c
2013-04-23 11:36:28 -07:00
Dianne Hackborn
eadbcd3352 resolved conflicts for merge of 8c3cb811 to master
Change-Id: I1cd4186b6b2dcb3d1d7d21c346384dbcc6e6a8df
2013-04-23 10:56:23 -07:00
Ian Rogers
896ee5b6f8 am be4536d2: Merge "Adding matching @deprecated."
* commit 'be4536d214eedc3d12b50f0f30b47bba773b8dbc':
  Adding matching @deprecated.
2013-04-23 09:15:58 -07:00
Dianne Hackborn
d2eeed635d JB MR2 == API 18.
Change-Id: Ia62a81f8ebc79ae0e01b181f4ef47ef192c71592
2013-04-22 13:28:47 -07:00
Jeff Sharkey
94e602d7b5 am 1b50e4ea: am ca2a6374: Merge "Environment should only warn when asked." into jb-mr2-dev
* commit '1b50e4ead5463f4dcc03f9c5ed64963af0d4d9eb':
  Environment should only warn when asked.
2013-04-19 14:38:36 -07:00
Jeff Sharkey
48749fc78a Environment should only warn when asked.
Instead of warning on Process.SYSTEM_UID, which is also used by the
Settings app, change to have the parent process explicitly ask for
warnings.

Bug: 8667286
Change-Id: Ib26676694a4041ff4e6d3ffdcc14055b7eba13c7
2013-04-19 13:27:43 -07:00
Jeff Sharkey
50474f91e3 am dde9559b: am 24b55f25: Merge "Deprecate StatFs methods returning small values." into jb-mr2-dev
* commit 'dde9559b78a93344ec0b568c2bac7329621de31f':
  Deprecate StatFs methods returning small values.
2013-04-19 12:49:34 -07:00
Ian Rogers
c2a3adbd56 Adding matching @deprecated.
Bug: 8657266
Change-Id: Idbd22dc647f11441d15da12eb23723539768cf4c
2013-04-19 11:31:48 -07:00
Jeff Sharkey
b81440bd9b Deprecate StatFs methods returning small values.
Bug: 8656794
Change-Id: Ic904bd1bc016ef48b5a304b7c68250afe23e98bc
2013-04-19 10:52:42 -07:00
Jeff Brown
8844892a88 am ba8fdcac: am 6f575bb3: Merge "Fix change of behavior in Looper.quit()." into jb-mr2-dev
* commit 'ba8fdcac4cc4ae3d9dcac8fa6a64c55facd6f25f':
  Fix change of behavior in Looper.quit().
2013-04-18 19:14:54 -07:00
Jeff Brown
8b60e45147 Fix change of behavior in Looper.quit().
It seems some applications rely on Looper.quit() terminating the
loop immediately without processing all messages.  Rather than
risk breaking them, make the safer behavior optional.

Also take care to properly drain the message queue before quitting
so that all of the Message instances are recycled.  This may
help release storage sooner in case the Looper doesn't get GC'd
promptly and its remaining queue of undelivered messages sticks
around.

Improve docs on runWithScissors.

Bug: 8596303
Change-Id: I8cbeb6f7a5f6b8e618b5109f87a03defc1486b9f
2013-04-18 19:04:39 -07:00
Amith Yamasani
c1ce6e1a79 am ac16c21d: am a0042742: Merge "Modify restrictions bundle per api council recommendations" into jb-mr2-dev
* commit 'ac16c21d11c1545efb8deafbcb7c120a5e0821a1':
  Modify restrictions bundle per api council recommendations
2013-04-17 11:34:28 -07:00
Amith Yamasani
7e99bc02c8 Modify restrictions bundle per api council recommendations
Use a Bundle for persisting and passing to the application, but use a
list to return data back from an application that's exposing restrictions.

Changed the xml reading/writing code to store the value type in the Bundle
so that it can be reproduced when reading. Earlier we were assuming only
String and String[].

Bug: 8633967

Change-Id: I523d5553728edcf28a1e9d432f490b4956f34215
2013-04-17 10:44:44 -07:00
Jamie Gennis
a720a87fde am a0b28ca7: am 95a869f9: Merge "Disable tracing from Zygote" into jb-mr2-dev
* commit 'a0b28ca74806dcf46300d82ebb689b002bd36955':
  Disable tracing from Zygote
2013-04-16 17:01:12 -07:00
Doug Zongker
057d3eb1bd Merge "RecoverySystem: update comment to reflect signature changes" 2013-04-16 23:56:28 +00:00
Jamie Gennis
6ad0452e63 Disable tracing from Zygote
This change disables all atrace tracing in Zygote immediately after it is
initialized.  This is necessary because Zygote has no way to receive
notifications that the enabled trace tags have been changed.  Tracing is
re-enabled when other processes fork from Zygote.

Change-Id: If2983858fb0c4890ba9ab041849b1c4d98f66c13
2013-04-16 22:15:21 +00:00
Amith Yamasani
6011355635 am 6064c5cf: am e1375908: Rename isUserLimited to isLinkedUser
* commit '6064c5cf22b16464a82f04f0a9560f412ba2a90a':
  Rename isUserLimited to isLinkedUser
2013-04-13 17:25:16 -07:00
Amith Yamasani
e1375908a5 Rename isUserLimited to isLinkedUser
A linked user is derived from another user and shares their accounts.

Change-Id: Ia2e63d573ccb635495ec54f31ac7b174725ad7a8
2013-04-13 16:48:35 -07:00
Dianne Hackborn
11dc37686f am 18e99d1d: am 15fed390: Merge "Add new resources trace, also trace apk dex loading." into jb-mr2-dev
* commit '18e99d1d5f7bb2e35fb9f5c3edbb4265d66e3d93':
  Add new resources trace, also trace apk dex loading.
2013-04-12 17:06:37 -07:00
Dianne Hackborn
15fed390c4 Merge "Add new resources trace, also trace apk dex loading." into jb-mr2-dev 2013-04-12 23:58:50 +00:00
Amith Yamasani
8c176b2513 am b0511d47: am e107aa43: Merge "Rename isUserRestricted to isUserLimited" into jb-mr2-dev
* commit 'b0511d47eb15f4f7941d278467964f2cd6dd2871':
  Rename isUserRestricted to isUserLimited
2013-04-12 15:39:15 -07:00
Amith Yamasani
e107aa4386 Merge "Rename isUserRestricted to isUserLimited" into jb-mr2-dev 2013-04-12 22:33:05 +00:00
Amith Yamasani
46bc4ebb87 Rename isUserRestricted to isUserLimited
Avoid confusion with user restrictions which can be applied to
non-limited users as well.

Updated the java docs.

Change-Id: I4097c50b528b01a49cebcb0832d09f2b06998faa
2013-04-12 15:13:53 -07:00
Dianne Hackborn
f7be4800df Add new resources trace, also trace apk dex loading.
Change-Id: Ia48566efb21ee018659bd976ddb3a0f4997b9a3a
2013-04-12 14:53:10 -07:00