summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2020-02-04Snap for 6179678 from 29e06f5526a2dd48c9f19ef7f238804f84c03c30 to qt-d4-releaseandroid-10.0.0_r45android-10.0.0_r44android-10.0.0_r43android-10.0.0_r42android10-d4-s1-releaseandroid10-d4-releaseandroid-build-team Robot
Change-Id: Ief5e239a67ac08ccb615513f80cb33506f459511
2020-02-03Dump coverage for all objects (a.out + dlopen()'d .so's) am: 572460c417Automerger Merge Worker
Change-Id: Id9f3f01cb03f89a300ccb680559db59c47bd13d4
2020-02-03Create per-uid GCOV_PREFIX dir in the getenv wrapper am: 466d7164cfAutomerger Merge Worker
Change-Id: I0aba1eed5198e4da8b770f3035a2ce0876a294e5
2020-02-03Opt adbd and init out of property-watcher thread am: 0fba97d295Automerger Merge Worker
Change-Id: Ic427f3b0720c3451f8666bf33fa3eff9e7270e1b
2020-02-03Wrap getenv and append euid to GCOV_PREFIX am: 6dc0cc21feAutomerger Merge Worker
Change-Id: I9b5c1db209c3aed9aafd5015108679e8be41392e
2020-02-03Refactor property-watch optout logic am: 6d9db09a45Automerger Merge Worker
Change-Id: Icd801b4575116da024d4c3c118408ee8ecce76a2
2020-02-03Do init_profile_extras constructor tasks only once am: 2b1bdd1079Automerger Merge Worker
Change-Id: I4ed48c21a3c4e221a5151b7e63a8d027fab1467e
2020-02-03Dump coverage for all objects (a.out + dlopen()'d .so's)Ray Essick
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)
2020-02-03Create per-uid GCOV_PREFIX dir in the getenv wrapperPirama Arumuga Nainar
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)
2020-02-03Opt adbd and init out of property-watcher threadPirama Arumuga Nainar
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)
2020-02-03Wrap getenv and append euid to GCOV_PREFIXPirama Arumuga Nainar
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)
2020-01-27Refactor property-watch optout logicPirama Arumuga Nainar
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)
2020-01-27Do init_profile_extras constructor tasks only oncePirama Arumuga Nainar
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)
2019-10-28Snap for 5970985 from ef17b323e8be065ed9fbcd1ea863d72e63488fc0 to qt-d4-releaseandroid-build-team Robot
Change-Id: Ic8162b4d18befee1bf4510d74bb8223a9c9f13f6
2019-09-17Add a per-boot-key policy reference, apply to per_bootandroid-mainline-10.0.0_r9android-mainline-10.0.0_r7android-mainline-10.0.0_r5android-mainline-10.0.0_r4android-mainline-10.0.0_r10android-10.0.0_r36android-10.0.0_r35android-10.0.0_r34android-10.0.0_r33android-10.0.0_r32android-10.0.0_r31android-10.0.0_r30android10-qpr2-s4-releaseandroid10-qpr2-s3-releaseandroid10-qpr2-s2-releaseandroid10-qpr2-s1-releaseandroid10-qpr2-releaseandroid10-qpr1-mainline-releaseandroid10-mainline-media-releasePaul Crowley
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
2019-06-07Lower gc_urgent_sleeptime to 50Daniel Rosenberg
am: 999afeeb3e Change-Id: I0bd72cc643f7aee82c2fc2d2b3abc2b0d90de395
2019-06-06Lower gc_urgent_sleeptime to 50android-cts-10.0_r2android10-devDaniel Rosenberg
This will substantially speed up GC progress Test: Run /vendor/bin/checkpoint_gc Bug: 133822599 Change-Id: Ic1f064437381bce99d62dfd146088d43e08b1766
2019-06-05Merge "Do not create property_watch_loop thread for zygote" into qt-devOliver Nguyen
am: 5c1ad00d4b Change-Id: Idb1e40982b8aa0edd6e6f40b4f53d1793a6a8efb
2019-06-05Prefix sysprop for flushing coverage with 'debug.'Pirama Arumuga Nainar
am: baedc8e881 Change-Id: I126ba230b198665a5d1113d383cf2bc5a1470b15
2019-06-05Merge "Do not create property_watch_loop thread for zygote" into qt-devOliver Nguyen
2019-06-03Prefix sysprop for flushing coverage with 'debug.'Pirama Arumuga Nainar
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)
2019-06-03Do not create property_watch_loop thread for zygotePirama Arumuga Nainar
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)
2019-05-15Command-line argument to set logcat buffer sizeChangyeon Jo
am: 84d06f1474 Change-Id: I583f41a0c7454b950583079328d2ab899e6509ac
2019-05-10Command-line argument to set logcat buffer sizeChangyeon Jo
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>
2019-05-01Add a max timeout in checkpoint_gcDaniel Rosenberg
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
2019-04-26Add an lpunpack tool for extracting partitions from super.img.David Anderson
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
2019-04-16Merge "cppreopts: umount_all fstab.postinstall" into qt-devYifan Hong
2019-04-09cppreopts: umount_all fstab.postinstallYifan Hong
- 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
2019-04-09Change warning logic in preopt2cachenameAlex Light
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)
2019-04-08simpleperf: update simpleperf prebuilts to build 5436767.Elliott Hughes
Taken from branch aosp-simpleperf-release. Bug: http://b/128690014 (cherry picked from commit 9c8b641a6c1f21a1271d5f1fb0d220e68684ae5c) Change-Id: I6f92c53b5537d03a0077ec08fc81404d69d7bc60
2019-04-04lpmake: allow to build non-sparse super image.Yifan Hong
Bug: 120041578 Test: build without --sparse but with --image. Change-Id: Iaaa8324fa1f9e8e6785f96e787c8a4ee23d37982 Merged-In: Iaaa8324fa1f9e8e6785f96e787c8a4ee23d37982
2019-04-02Merge "simpleperf: add an explicit "simpleperf" target." am: 7ed6aabda8 am: ↵Elliott Hughes
784ccdf92d am: 885c96098b Change-Id: Ie7e001f84d85d0384ffbde794a060506cbe47908
2019-04-02Merge "simpleperf: add an explicit "simpleperf" target." am: 7ed6aabda8Elliott Hughes
am: 784ccdf92d Change-Id: I511d370eadb5b1788300cf79fd25070610c25391
2019-04-02Merge "simpleperf: add an explicit "simpleperf" target."Elliott Hughes
am: 7ed6aabda8 Change-Id: I33a0e877ccd49127980fe0113e138189f5c16690
2019-04-02Merge "simpleperf: add an explicit "simpleperf" target."Treehugger Robot
2019-04-02Merge "Make checkpoint_gc.sh robust against interference" am: 07a8c9f8de am: ↵Daniel Rosenberg
dfc3247d58 am: 5c73e66be5 Change-Id: Ie086639b64a774270b1d140445d4e360387f5d9c
2019-04-02Merge "Make checkpoint_gc.sh robust against interference" am: 07a8c9f8deDaniel Rosenberg
am: dfc3247d58 Change-Id: I33d144fe33ed91941fa925c451522ffe169acba5
2019-04-02Merge "Make checkpoint_gc.sh robust against interference"Daniel Rosenberg
am: 07a8c9f8de Change-Id: I463777238185d14bdda88ed23eaa2e1253878731
2019-04-02Merge "Make checkpoint_gc.sh robust against interference"Daniel Rosenberg
2019-04-02simpleperf: add an explicit "simpleperf" target.Elliott Hughes
This lets us set up the aosp-simpleperf-release branch to just build simpleperf. Bug: http://b/128690014 Test: manual Change-Id: Ida8c4df5f6563b050a1399028fac31e7d1737f52
2019-04-01Merge "Use fsync instead of sync during first boot" am: 654a37cd65 am: ↵Wei Wang
d603390bed am: 17226e5ef6 Change-Id: I4ad0e370ace2e6f24df93a8581ce753bb4a84617
2019-04-01Make checkpoint_gc.sh robust against interferenceDaniel Rosenberg
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
2019-04-01Merge "Use fsync instead of sync during first boot" am: 654a37cd65Wei Wang
am: d603390bed Change-Id: I7292168b8684759512e3fb6279d3a00adaa77571
2019-04-01Merge "Use fsync instead of sync during first boot"Wei Wang
am: 654a37cd65 Change-Id: I7f31af52f578b0157007fbc728e929f4a05d7ae0
2019-04-01Merge "Use fsync instead of sync during first boot"Wei Wang
2019-04-01Use fsync instead of sync during first bootWei Wang
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
2019-03-29Merge changes from topic "coverage_flush" am: 41cb9915b2 am: 9fcdb3edafPirama Arumuga Nainar
am: 101b4d5d0e Change-Id: I3e205b4883c90d1f85ac7fe5c5aed1d751c778ba
2019-03-29Add OWNERS for system/extras/toolchain-extras am: 26ca42cb84 am: e6eff58534Pirama Arumuga Nainar
am: 7bba35096c Change-Id: Iaf456eff56259244574dea97e58263361a891ee4
2019-03-29Merge changes from topic "coverage_flush" am: 41cb9915b2Pirama Arumuga Nainar
am: 9fcdb3edaf Change-Id: I87d76100735dad338e5df31bc2e11325012da2db
2019-03-29Add OWNERS for system/extras/toolchain-extras am: 26ca42cb84Pirama Arumuga Nainar
am: e6eff58534 Change-Id: I8ce8124a95f930fe3e7376fb78c84c78d4a7a622