Age | Commit message (Collapse) | Author |
|
Change-Id: Ief5e239a67ac08ccb615513f80cb33506f459511
|
|
Change-Id: Id9f3f01cb03f89a300ccb680559db59c47bd13d4
|
|
Change-Id: I0aba1eed5198e4da8b770f3035a2ce0876a294e5
|
|
Change-Id: Ic427f3b0720c3451f8666bf33fa3eff9e7270e1b
|
|
Change-Id: I9b5c1db209c3aed9aafd5015108679e8be41392e
|
|
Change-Id: Icd801b4575116da024d4c3c118408ee8ecce76a2
|
|
Change-Id: I4ed48c21a3c4e221a5151b7e63a8d027fab1467e
|
|
with code coverage enabled, the main object as well as each dlopen()ed
shared library include their own copies of the hooks for dumping gcov
data upon receiving signal GCOV_FLUSH_SIGNAL. Only the last one to
register was actually dumped.
Here, we chain the signal handlers together so that each one will call
the previously registered handler to ensure that each object's coverage
data is dumped.
Bug: 139313557
Test: dump gcov data via kill -37 on module with dlopen()
Change-Id: I376df2df6b65acff95ad5d135a7ba2bf0eac3695
Merged-In: I376df2df6b65acff95ad5d135a7ba2bf0eac3695
(cherry picked from commit b5d273da8824e8dd4bf9c28c50797364b0b47a05)
|
|
Bug: http://b/116873221
With https://reviews.llvm.org/D65245, the profile runtime assumes that
the directory ${GCOV_PREFIX} is already created. Before returning from
the getenv wrapper, create the per-uid ${GCOV_PREFIX}.
Test: cuttlefish builds and boots with new Clang.
Change-Id: I276e1a92b3cb18ee85bb4451159b131d8ebca4a2
Merged-In: I276e1a92b3cb18ee85bb4451159b131d8ebca4a2
(cherry picked from commit b00f2fc6bb862c1b41c33984830e93149efa339d)
|
|
Bug: http://b/116873221
Bug: http://b/134177005
adbd calls selinux_android_setcon() which will fail if there are
multiple threads in the process. The reason for boot failures with
coverage-enabled init and property-watcher thread is not clear yet.
Test: cuttlefish with coverage for init and adbd boots.
Change-Id: I0c44e76cc59d12b963e4d5b862683ead2f816cdc
Merged-In: I0c44e76cc59d12b963e4d5b862683ead2f816cdc
(cherry picked from commit 87d1a3bfba5bba715eed9d1b254bfa02282bf39f)
|
|
The coverage runtime creates coverage files with permissions 0644 and
intermediate directories with 0755. This causes conflicts and
permissions issues when multiple processes create/access the same file
or directory under $GCOV_PREFIX. Some processes also call umask, which
further complicates things.
It is possible to handle all of these in the coverage runtime library
but a foolproof alternative is to have a separate coverage directory per
effective userid (euid) by customizing GCOV_PREFIX.
This change adds a wrapper to getenv which appends the euid of the
current process for the "GCOV_PREFIX" environment variable.
Bug: 148178774
Test: Verify that coverage files are written to
/data/misc/trace/<euid>/proc/... instead of /data/misc/trace/proc/...
Change-Id: I6be1e748618d84697c354516ab1c734fb33ab5f4
Merged-In: I6be1e748618d84697c354516ab1c734fb33ab5f4
(cherry picked from commit a277ce976288ac0a35a9016970f6e49037eaeadb)
|
|
Bug: http://b/116873221
Refactor the processes without property-watch thread into a list.
Test: Build cuttlefish with coverage
Change-Id: Id8f0ceab133b961219b1cf77ae02b00eba4cfaf5
Merged-In: Id8f0ceab133b961219b1cf77ae02b00eba4cfaf5
(cherry picked from commit 5b9defd41d61b000c82c84662f02394e89192d93)
|
|
Bug: http://b/116873221
Currently, every coverage-enabled binary (the main executable or shared
library) in the process executes the init_profile_extras constructor
leading to redundant initialization.
Instead, add a weak global value that gets set once so following
constructors don't set a signal handler or create a pthread. It's ok to
do this before the constructor succeeds because if pthread creation or
signal handler registration failed once, they are unlikely to succeed
the second time.
This is thread-safe since constructor initialization is single-threaded.
The one possibility for a race - the process doesn't have any
coverage-enabled library, and multiple threads dlopen() coverage-enabled
shared libraries - seems quite unlikely.
Test: Verify that only one extra thread is created for a daemon (adbd).
Change-Id: Ie969311c2ddac147497c870b5c365b4617b3c60a
Merged-In: Ie969311c2ddac147497c870b5c365b4617b3c60a
(cherry picked from commit e76c23dc6b7bff0c7404744b9bdde0d02465acdf)
|
|
Change-Id: Ic8162b4d18befee1bf4510d74bb8223a9c9f13f6
|
|
Includes changes picked from aosp/1119783
570d20d2ac875198416dff280b7a4b7adaacac81 in platform/system/core
Bug: 140882488
Test: Booted twice, checked logs to ensure encryption
is different each time, adb created files in directory.
Cherry-Picked-From: ab3085004e35cff9517fcedb03317f3f1ac84cf9
Merged-In: I5c962edb316d160dd09c0df893912c6b257d7810
Change-Id: I5c962edb316d160dd09c0df893912c6b257d7810
|
|
am: 999afeeb3e
Change-Id: I0bd72cc643f7aee82c2fc2d2b3abc2b0d90de395
|
|
This will substantially speed up GC progress
Test: Run /vendor/bin/checkpoint_gc
Bug: 133822599
Change-Id: Ic1f064437381bce99d62dfd146088d43e08b1766
|
|
am: 5c1ad00d4b
Change-Id: Idb1e40982b8aa0edd6e6f40b4f53d1793a6a8efb
|
|
am: baedc8e881
Change-Id: I126ba230b198665a5d1113d383cf2bc5a1470b15
|
|
|
|
Bug: http://b/133322197
Fix selinux denials when reading the coverage.flush sysprop by prefixing
it with 'debug.'. Sysprops starting with 'debug.' are readable by all
processes when ro.debuggable is set.
Test: Build cuttlefish with coverage and verify that selinux denials for
sysprop reads no longer happen.
Change-Id: I76bef0a658ce881cc81e2d2d4947bef966060376
(cherry picked from commit 9d31ce99069b28d302c5487c2154fc0fd5c2f9fd)
|
|
Bug: http://b/116873221
Bug: http://b/133872559
Do not create thread running property_watch_loop for zygote (which is
essentially /system/bin/app_process invoked with a specific argument to
start the zygote).
The reason this is needed is because when the zygote forks system_server
or an app, it waits for all threads to stop. But the thread created
here doesn't know that it has to stop. So zygote gets stuck waiting and
the device doesn't boot.
This check is only needed for the platform, but can be done on any
version after Android L, when getprogname() was added.
Test: cuttlefish with coverage enabled can boot.
Change-Id: I65aa603a88bf8da1f14b5c4ada3adf3776f33275
(cherry picked from commit 4cedcc68d4dfedf96474973de1e7e22d0ce0a523)
|
|
am: 84d06f1474
Change-Id: I583f41a0c7454b950583079328d2ab899e6509ac
|
|
Adds new argument to set the size of the log ring buffer.
Bug: 132431643
Change-Id: I092924bf16950fede49f35b25dbbea7dfe2c8109
Signed-off-by: Changyeon Jo <changyeon@google.com>
|
|
After one hour, we will abandon our efforts to do checkpointing ahead of
time. At that point, it's likely that something has gone wrong with
garbage collection. Log dirty segments.
Test: Run checkpoint_gc after remounting with checkpoint=disable. This
will prevent GC from making progress. The script should exit after
one hour
Bug: 131557838
Change-Id: Ifbff5d3e889725259d7c797fe6fa1d4a84fc7cec
|
|
This tool performs the inverse of lpmake. It can extract partition
images out of a prebuilt super.img. There are a few caveats:
- lpunpack does not support retrofit/split images.
- lpunpack does not support sparse super images. They must be unsparsed
before using with lpunpack.
- Partition names will be suffixed on A/B devices, meaning,
vendor_a.img will contain vendor.img and vendor_b.img will be
0-length.
Note that lpunpack will store output files with holes for zero blocks,
as a space-saving measure.
Usage: lpunpack [options] SUPER_IMAGE [OUTPUT_DIR]
Bug: 131173010
Test: m superimage
mm lpunpack
lpunpack super.img
lpunpack super.img out/
lpunpack -p vendor_a super.img
lpunpack -p unknown super.img
sha1sum image with precursor image
Change-Id: Iad3f7362ae6ce767ddc7de2e8cfa7e4a47190e99
Merged-In: Iad3f7362ae6ce767ddc7de2e8cfa7e4a47190e99
|
|
|
|
- Change 'umount /postinstall' to a full umount_all so that
postinstall-verity device get destroyed.
- No longer set sys.cppreopt=mounted because that incurs even
more code. Just duplicate the two procedures.
Test: flash, boot, then check `dmctl list devices`, then OTA
Fixes: 129988285
Change-Id: Ic0cdf55b3639632dc5f2659c8bf36b8c3deea92d
|
|
We were incorrectly warning when a filename had 8 segments. This is
valid since we can have paths of the form
'/postinstall/product/priv-app/<app>/oat/arm64/<app>.odex' in addition
to those of the form
'/postinstall/priv-app/<app>/oat/arm64/<app>.odex'.
Test: boot, look at logcat
Bug: 123696019
Change-Id: I97c88302a3967e133421244bb132b4e8fd0812a1
(cherry picked from commit 73befcf4495616129ce484e5124e05b85277192e)
|
|
Taken from branch aosp-simpleperf-release.
Bug: http://b/128690014
(cherry picked from commit 9c8b641a6c1f21a1271d5f1fb0d220e68684ae5c)
Change-Id: I6f92c53b5537d03a0077ec08fc81404d69d7bc60
|
|
Bug: 120041578
Test: build without --sparse but with --image.
Change-Id: Iaaa8324fa1f9e8e6785f96e787c8a4ee23d37982
Merged-In: Iaaa8324fa1f9e8e6785f96e787c8a4ee23d37982
|
|
784ccdf92d
am: 885c96098b
Change-Id: Ie7e001f84d85d0384ffbde794a060506cbe47908
|
|
am: 784ccdf92d
Change-Id: I511d370eadb5b1788300cf79fd25070610c25391
|
|
am: 7ed6aabda8
Change-Id: I33a0e877ccd49127980fe0113e138189f5c16690
|
|
|
|
dfc3247d58
am: 5c73e66be5
Change-Id: Ie086639b64a774270b1d140445d4e360387f5d9c
|
|
am: dfc3247d58
Change-Id: I33d144fe33ed91941fa925c451522ffe169acba5
|
|
am: 07a8c9f8de
Change-Id: I463777238185d14bdda88ed23eaa2e1253878731
|
|
|
|
This lets us set up the aosp-simpleperf-release branch to just build
simpleperf.
Bug: http://b/128690014
Test: manual
Change-Id: Ida8c4df5f6563b050a1399028fac31e7d1737f52
|
|
d603390bed
am: 17226e5ef6
Change-Id: I4ad0e370ace2e6f24df93a8581ce753bb4a84617
|
|
If some other process decides to run a brief period of GC and then turn
it off, checkpoint_gc.sh will keep running and hold up the OTA. To
combat that, we set gc_urgent again each cycle.
Test: set gc_urgent to 0 after the script sets it to 1. Verify script
still runs
Change-Id: If361a7e6aace2b20d976d94210fc5a72c3630c72
|
|
am: d603390bed
Change-Id: I7292168b8684759512e3fb6279d3a00adaa77571
|
|
am: 654a37cd65
Change-Id: I7f31af52f578b0157007fbc728e929f4a05d7ae0
|
|
|
|
1) fsync the specific copied file instead of sync whole file system
2) boost prio/ioprio for CFQ since cpppreopt is on critical path
3) change to foreground group
Before CL:
03-29 21:49:31.450 1 1 I init : Service 'cppreopts' (pid 1662) exited with status 0 waiting took 55.175999 seconds
03-29 21:49:31.808 1440 1440 I PackageManager: cppreopts took 55591 ms
After CL:
04-01 15:47:43.841 1 1 I init : Service 'cppreopts' (pid 1871) exited with status 0 waiting took 2.007000 seconds
04-01 15:47:45.343 1549 1549 I PackageManager: cppreopts took 3709 ms
Bug: 129542240
Test: boot
Change-Id: Ia9bacabe798764084790b077abc80ae60401f9c1
|
|
am: 101b4d5d0e
Change-Id: I3e205b4883c90d1f85ac7fe5c5aed1d751c778ba
|
|
am: 7bba35096c
Change-Id: Iaf456eff56259244574dea97e58263361a891ee4
|
|
am: 9fcdb3edaf
Change-Id: I87d76100735dad338e5df31bc2e11325012da2db
|
|
am: e6eff58534
Change-Id: I8ce8124a95f930fe3e7376fb78c84c78d4a7a622
|