Commit Graph

3484 Commits

Author SHA1 Message Date
John Reck
6e4f930457 Merge "Fix a bunch of repeated reads of a ro.* property" am: 4265991701 am: e4c2e8f303
am: 3c2837e77e

Change-Id: Idbcb9dfeac57036d3621474ee65ba967cc7bc499
2017-01-27 23:05:52 +00:00
Treehugger Robot
4265991701 Merge "Fix a bunch of repeated reads of a ro.* property" 2017-01-27 22:49:04 +00:00
John Reck
ed065024a5 Fix a bunch of repeated reads of a ro.* property
SystemProperties.get() is not particularly fast,
especially if a string is returned. Since ro.* values
are unable to be changed, there's no need to
continously re-query them. Cache the value at
static init time to trivially fix this.

Test: refactoring CL.
Change-Id: Iccb021d3cb2ba3a4a1d0048ddec6811bb7409eec
(cherry picked from commit aa67f684ff)
2017-01-27 11:04:39 -08:00
Shukang Zhou
6ec0b7e21d [Frameworks] Add an 'am' cmd option to enable streaming in profiling.
Add option '--streaming' to 'am start' and 'am profile' commands.
If the option is given, the output of method trace profiling
will be streamed into the specified file, so the output is no
longer limited by the buffer size.

Test: m -j48 test-art-host;
m -j48 ART_TEST_TRACE=true ART_TEST_TRACE_STREAM=true test-art-host;
I also tested manually. Tried all 8 combinations of
    sampling/instrumention
    streaming/non-streaming
    'am start --start-profiler' / 'am profile start'
The output files are all in expected shape.

Bug: 33300765

Merged-In: I8a5136a1c7330c8260b7c6c8da63f42a73aee275

Change-Id: I8a5136a1c7330c8260b7c6c8da63f42a73aee275
2017-01-25 16:53:41 -08:00
Jesse Hall
e8a5df8530 Don't lower priority of EGL Init thread
am: 37e63c705e

Change-Id: Icd21c9243558f4427d48f967f4ea4ae7aa1e2b02
2017-01-24 18:13:07 +00:00
Jesse Hall
37e63c705e Don't lower priority of EGL Init thread
The EGL Init thread spends a lot of time loading shared libraries,
which involves reading pages and adjusting VM pages. Previously it was
a low priority thread, which meant that when it blocked while holding
a VM lock, it might take a while to be scheduled again once ready, so
it would hold the VM lock longer than necessary, blocking other
threads waiting on soft faults, etc. Classic priority inversion.
Leaving the thread at normal priority causes it to interfere *less*
with critical-path Activity launch work.

Bug: 34611670
Test: go/platform-startup, specifically:
    ./tradefed.sh run google/template/local --template:map test
    google/test/performance/app-launch-perf
    --post-boot-command "service call persistent_data_block 6 i32 1"
    --post-boot-command "service call persistent_data_block 7 i32 1"
    --apps Clock alarmclock --trial-launch --launch-iteration 10
    --launch-order cyclic --drop-cache --trace-directory sdcard
    --trace-iteration 2 --simple-perf-cmd "simpleperf stat -a"
    --report-metrics all --force-skip-system-props --alt-dir `pwd`

Change-Id: I17647c657da64d15f40f8f2b97ee3400e1f0be7f
2017-01-24 00:09:27 -08:00
Jesse Hall
fd104e7fde Load EGL early in Activity launch, instead of in Zygote
Preloading EGL in Zygote was originally a memory footprint
optimization, but it turns out to be an important app startup time
optimization as well. Preloading EGL in Zygote is incompatible with
updatable graphics drivers, but we don't want to do it on-demand as
part of drawing the first frame either, since that increases
first-frame latency unacceptably.

This change removes Zygote preload, and instead loads EGL on a
low-priority background thread immediately after choosing which
graphics driver to use. This means it is usually done well before
drawing the first frame, without significantly disrupting other
activity launch work.

Test: observe systrace of Calculator launch on bullhead
Bug: 34404021
Change-Id: I6a0f6b90ade21848a10d51ddae62c936f70151b5
Merged-In: I887aa09bd35b088b16f53a89838a0c7c98f15761
2017-01-20 15:58:20 -08:00
Jesse Hall
0d3537c67b Merge "Load EGL early in Activity launch, instead of in Zygote" into nyc-mr2-dev-plus-aosp 2017-01-20 23:57:34 +00:00
Jeff Sharkey
7bb9ccc1e5 Merge "Add Binder support for Parcelable exceptions." am: a2ef6b5741 am: c3fbf32011
am: 4a0a4664b9

Change-Id: I9b5667ca6e5497a4eedaaf88979a1a3d0e22c174
2017-01-20 23:03:40 +00:00
Jeff Sharkey
a2ef6b5741 Merge "Add Binder support for Parcelable exceptions." 2017-01-20 22:45:04 +00:00
Jesse Hall
5fa7fb1d9f Load EGL early in Activity launch, instead of in Zygote
Preloading EGL in Zygote was originally a memory footprint
optimization, but it turns out to be an important app startup time
optimization as well. Preloading EGL in Zygote is incompatible with
updatable graphics drivers, but we don't want to do it on-demand as
part of drawing the first frame either, since that increases
first-frame latency unacceptably.

This change removes Zygote preload, and instead loads EGL on a
low-priority background thread immediately after choosing which
graphics driver to use. This means it is usually done well before
drawing the first frame, without significantly disrupting other
activity launch work.

Test: observe systrace of Calculator launch on bullhead
Bug: 34404021
Change-Id: I887aa09bd35b088b16f53a89838a0c7c98f15761
2017-01-20 13:50:41 -08:00
Tao Bao
0770c86e5c Merge "Revert "RecoverySystem: Fix the issue in installPackage()."" am: 9311dbf9e4 am: 731445ebf7
am: b20ce70cca

Change-Id: I931ce2f47714032b27cb092699ae3fbc69563fc0
2017-01-19 02:04:18 +00:00
Tao Bao
cc76991f37 Revert "RecoverySystem: Fix the issue in installPackage()."
This reverts commit 9f7a0acd2d.

Bug: 34350643
Bug: 34396955
Test: installPackage() doesn't cause deadlock if it doesn't call
      processPackage() prior to that.
Change-Id: I1da055c86a3326ae341da1b4d5dc79ab4be256fb
2017-01-19 01:31:57 +00:00
Jeff Sharkey
e628b7d446 Add Binder support for Parcelable exceptions.
If an Exception thrown by a Binder call implements the Parcelable
interface, then parcel it and rethrow back at the caller.  There is
strict requirement that these Parcelable exceptions must be defined
by the system (as determined by checking the ClassLoader).  We prefix
the Parcelable contents with a length so that native code can skip
over the blobs.

Define a new ParcelableException class that can be used to transport
exceptions that cannot be modified to add Parcelable behavior, and
switch ExceptionUtils to use this new class for sending IOExceptions.

Test: builds, boots, wrapped exceptions work
Bug: 33749182
Change-Id: I1352ea1566ddf01120d9d0e819ba6f70fc407e11
2017-01-17 14:22:07 -07:00
Lorenzo Colitti
bb79257dbf Merge "Delete dead code." am: cf59ff79c5 am: d305a7c894
am: 8cf7169564

Change-Id: Ia662fd845fcfb4ade631d8aacf6bcff3c92a1543
2017-01-17 06:08:28 +00:00
Treehugger Robot
cf59ff79c5 Merge "Delete dead code." 2017-01-17 05:44:58 +00:00
Tao Bao
448716eec1 Merge "RecoverySystem: Fix the issue in installPackage()." am: 3b2fe9f7b9 am: 6bb3a9e6df
am: 5c610492c8

Change-Id: Ic9fa3bb8c7d4c04fa6e55b600cd7cccc9b186db1
2017-01-16 18:36:43 +00:00
Tao Bao
3b2fe9f7b9 Merge "RecoverySystem: Fix the issue in installPackage()." 2017-01-16 18:19:25 +00:00
Martijn Coenen
098bbc455d Merge "Add nullable parameter to readEmbeddedBuffer." am: c5e5442acd am: b529858c0b
am: 714c8596ad

Change-Id: I792c4ac6a20e4665b152a5ebea1227b549cca7ef
2017-01-16 15:06:01 +00:00
Jesse Hall
17ee3aac28 Create GraphicsEnvironment for communicating with driver loaders
The GraphicsEnvironment class is given information during application
start, and makes it available to EGL/GLES/Vulkan loaders that don't
have easy access to the VM or to the application Context. Currently
only the driver path is handled, but the existing support for setting
library paths (for Vulkan extensions) and cache directory information
should move here.

Bug: 33531483
Test: various apps w/ and w/o driver package installed
Change-Id: I5820d3d1301d5461e10706f551b268c54d4f8926
(cherry picked from commit b12249b671)
2017-01-15 05:55:46 +00:00
Jesse Hall
79bf392dc6 Create GraphicsEnvironment for communicating with driver loaders
The GraphicsEnvironment class is given information during application
start, and makes it available to EGL/GLES/Vulkan loaders that don't
have easy access to the VM or to the application Context. Currently
only the driver path is handled, but the existing support for setting
library paths (for Vulkan extensions) and cache directory information
should move here.

Bug: 33531483
Change-Id: I4e4e7fb21f1bcc67122e9173514af5f18c063991
Merged-In: I5820d3d1301d5461e10706f551b268c54d4f8926
2017-01-14 19:19:28 -08:00
Tao Bao
9f7a0acd2d RecoverySystem: Fix the issue in installPackage().
Commit 794c8b0b3f fixed the race condition
when requesting data wipes via uncrypt. We have similar issue with
RecoverySystem.installPackage(). It first requests to set up the BCB,
then triggers a reboot. These two steps should finish atomically.

This CL switches to calling
RecoverySystemService.rebootRecoveryWithCommand(), which guards the two
steps with synchronized blocks.

Bug: 34239871
Test: Having two apps: one calls RecoverySystem.cancelScheduledUpdate()
      continuously, and the other calls RecoverySystem.installPackage()
      just once. The install request should not be cancelled by the
      other.

Change-Id: I5ec56fcaa70eae7c33e3cc8e6cfc7472b935ce4e
2017-01-13 09:59:38 -08:00
Martijn Coenen
14fae06b60 Add nullable parameter to readEmbeddedBuffer.
To support reading embedded buffers that can be
nullptr (currently only in empty hidl_vec).

Bug: 34255213
Test: hidl_test_java
Change-Id: I72028f580b7863b6bfeb31a5c0f43deed36dfd64
2017-01-13 14:17:12 +01:00
Santos Cordon
f85ab8306f Add Brightness setting for VR Mode.
am: d6a5660a2c

Change-Id: If371f485471eb1ab0a3e07964c197cb9b8ef1c9f
2017-01-11 03:12:05 +00:00
Santos Cordon
d6a5660a2c Add Brightness setting for VR Mode.
This change saves and loads a different brightness setting when the user
goes in and out of VR Mode.

Bug: 30984614
Change-Id: If3c3e81b592e0c6fd037e5783559683e5cb58379
2017-01-09 17:33:14 -08:00
Alex Naidis
32dfe8c611 Merge "StorageManager: Improve exception handling" am: cf3a4a68bd am: 545cf37844
am: edca8aa3a8

Change-Id: Idbd8b16f0825bdcf48d2013448c767d0966434fe
2017-01-09 17:09:31 +00:00
Alex Naidis
19d9c2d03c StorageManager: Improve exception handling
When "getPrimaryStorageSize" provides a path
to "readLong", the option that the path
doesn't exist is expected, since it tries
all paths from "INTERNAL_STORAGE_SIZE_PATHS"
until there is success.

This patch makes us catch the "FileNotFoundException"
and "NumberFormatException" seperately.

For the above reason a "FileNotFoundException"
is now treated as an information only.
The "NumberFormatException" and other exceptions
are now treated as error since those are not
expected to happen.

Change-Id: I5316f9c3108e36c31b27dc5df8bf8ac4d4257629
Signed-off-by: Alex Naidis <alex.naidis@linux.com>
2017-01-09 16:27:52 +00:00
Nick Kralevich
4429993d78 Merge "Dumps total size of primary storage." am: 55dc66dde4 am: 12b387dd87
am: a63462c794

Change-Id: I2a62442a581d89054421dd6c44c610fb7ee9a0c4
2017-01-08 15:09:21 +00:00
Felipe Leme
c0d3f0ed52 Dumps total size of primary storage.
BUG: 32069168
Test: manual verification

(cherry picked from commit 281389ac54)

Change-Id: If5dee52a99c03a00dada22736c09d953dc0b66d1
2017-01-08 03:51:37 +01:00
Steven Moreland
4d3caf3938 Merge "HwBinder: get/register checked exceptions." am: 9ec4fec5ca am: 3290ba072b
am: 94924f38fb

Change-Id: I3b871a941856fdeb0e989aeaadc5fdbc7732b681
2017-01-06 01:16:02 +00:00
Steven Moreland
c0631d0bb7 HwBinder: get/register checked exceptions.
Bug: 33673120
Test: hidl_test_java
Change-Id: Id19b61b252e756a032ae11f7b59bd8eed82edbe9
2017-01-05 09:20:44 -08:00
Steven Moreland
3b20d72697 Merge "Add checked exceptions to HwBinder transact." am: 6c5cc261f8 am: ca5d560090
am: d38478cb50

Change-Id: Ic0c6eb87c57aca798ff167a71929f1a0e3132a75
2017-01-04 05:11:06 +00:00
Steven Moreland
e62b1f32f3 Add checked exceptions to HwBinder transact.
Bug: 33673120
Test: hidl_test_java
Merged-In: I7b62eb6b066fc24c44ef7e46aaa2a3208c053d11

Change-Id: I7b62eb6b066fc24c44ef7e46aaa2a3208c053d11
2017-01-04 01:13:16 +00:00
Jeff Sharkey
7664e61885 Merge "Offer to measure disk stats using quotas." am: f8720b95be am: 4b80a4a372
am: 1e1cdbead1

Change-Id: Ic00acfb0efb6188a15357322528075d41467310b
2017-01-03 19:48:36 +00:00
Jeff Sharkey
5eb3eb58ac Offer to measure disk stats using quotas.
Now we're getting somewhere!  This CL starts measuring disk usage
using quotactl(), which is almost instant and has much lower impact
on flash memory lifetime.

We now grant the per-app cache GID to every launched app, and the
ContextImpl logic that creates cache directories matches the logic
down in installd.

Test: builds, boots, quota stats match manual stats
Bug: 27948817
Change-Id: Ie269a2958ce0e1c17cb74dbfecc791a5c12922cf
2017-01-03 10:22:39 -07:00
Martijn Coenen
c052e6c67f Merge "Add (un)linkToDeath support to HwBinder." am: 7705363166 am: 010d0be575
am: 1f8c96ca7f

Change-Id: Ic195a1f3ab2a9d318fe667ac3be0ce166119dc66
2016-12-29 09:19:55 +00:00
Martijn Coenen
727f7bf84f Add (un)linkToDeath support to HwBinder.
This is mostly copied over from binder's existing
death recipient support. The implementation keeps
a list of registered recipients, both for being
able to map a native recipient back to the corresponding
Java recipient, as well as being able to unregister
recipients correctly.

Test: mma, hidl_test_java
Bug: 31632518
Change-Id: Id313fd248be6925056c4ade8298fe5fb04e007cc
2016-12-29 04:22:30 +00:00
Selim Cinek
7e5cff0167 DO NOT MERGE Revert "Add Brightness setting for VR Mode."
am: 966045d070

Change-Id: Ib1be78a47f5947f4fcc6eabc2f6af76523690ed9
2016-12-27 19:22:04 +00:00
Selim Cinek
966045d070 DO NOT MERGE Revert "Add Brightness setting for VR Mode."
This reverts commit 84980c7a93.

Bug: 33895226
Bug: 30984614
Change-Id: I2652e77512bc870190e2172a629abac9341b2c4f
2016-12-27 18:28:40 +00:00
Santos Cordon
84334e25cd Add Brightness setting for VR Mode.
am: 84980c7a93

Change-Id: I4a9c3db7bdf73e673cf8b2409404339df94086c2
2016-12-22 23:58:05 +00:00
Santos Cordon
84980c7a93 Add Brightness setting for VR Mode.
This change saves and loads a different brightness setting when the user
goes in and out of VR Mode.

Bug: 30984614
Merged-In: Ie5578bbd6ea346f0eb34fe4abbfd604a5d7c0c93
Change-Id: Ie5578bbd6ea346f0eb34fe4abbfd604a5d7c0c93
2016-12-22 23:26:49 +00:00
Kweku Adams
c9430110da Fixing issue in current and max duration calculations.
am: c6bd4243a4

Change-Id: I109e0599a631de20d28723bb9ad714c0aedb2fac
2016-12-16 23:51:17 +00:00
Tamas Berghammer
f00963c71f Enable logwrapper functionality on user builds am: 0ca16fa584 am: db05d4b4ed
am: ed8757a761

Change-Id: I0f27f6aeb58690addb1c5f7978047ccb8d73ab84
2016-12-16 19:54:58 +00:00
Tamas Berghammer
b8d0e4d9fc Zygote: Add invoke-with to zygote protocol am: b8f7c351b9 am: 45c2fffc52
am: d71bb300e6

Change-Id: Ied54640c44ade52abd6a905526ba7789be14a332
2016-12-16 19:54:11 +00:00
Tamas Berghammer
0ca16fa584 Enable logwrapper functionality on user builds
When an app is debuggable, check whether a script called "wrap.sh" exists
in the app's native library directory. If so, start the app using the
invoke-with functionality over the script. Weaken the invoke-with check
on the zygote side to allow the functionality for debuggable apps.

The goal of the functionality is to make malloc debug, strace and other
similar tools available for NDK based application developers.

Bug: 33668201
Test: manual - debug malloc can be enabled using the new feature
Change-Id: Ia4bec0854cf4dc08446f1671494200f54ef366ee
2016-12-16 09:03:06 -08:00
Tamas Berghammer
b8f7c351b9 Zygote: Add invoke-with to zygote protocol
Add "--invoke-with" to the zygote connection protocol. It was
already understood as an argument by the zygote.

Bug: 33668201
Test: m
Change-Id: I59095f2ac542aadff78a7ff1dded86cf5f192707
2016-12-16 09:03:01 -08:00
Lorenzo Colitti
319146d372 Delete dead code.
Since N, DNS servers are not set by setDnsServersForNetwork, they
they are set by setDnsConfigurationForNetwork.

Test: compiles
Bug: 30944031
Change-Id: I3a3edb9ffe9d5f9652af0b6637eb89b1b044a270
2016-12-16 00:34:49 +09:00
Kweku Adams
c6bd4243a4 Fixing issue in current and max duration calculations.
It looks like one operation was done out of order and some of the times used in
the calculations were leading to incorrect results.

BUG: 31023263
Test: bit FrameworksCoreTests:com.android.internal.os.BatteryStatsDurationTimerTest

Change-Id: I417cc28c5a55748067b6c7f682a66fe3dbc09f09
(cherry picked from commit 47db5a8bf7)
2016-12-14 21:54:48 +00:00
Josh Gao
19c4422c7c Merge "Add trace category for adb." am: 6968d90dc5 am: 15dc5951e6
am: 96446b5bd3

Change-Id: I1d354df518f19d61eaa17e03fd696193464b6f7b
2016-12-13 00:55:32 +00:00
Josh Gao
552d86b520 Add trace category for adb.
Bug: http://b/31289465
Test: systrace
Change-Id: I765c55c264329227556ff25655e3f00c5c3e8b54
2016-12-12 12:32:57 -08:00