summaryrefslogtreecommitdiff
path: root/build
AgeCommit message (Collapse)Author
2025-03-10Add find_unshared_pages tool am: 1e7f64367f am: 1345f20ccd Dmitrii Ishcheikin
Original change: https://android-review.googlesource.com/c/platform/art/+/3523165 Change-Id: I497e32c2d4df426c4aac71b3c0053dabc51c0884 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-10Add find_unshared_pages tool Dmitrii Ishcheikin
The tool goes through all memory maps of two processes and finds pages that have equal contents but are not shared. Test: find_unshared_pages --pid1=$(pidof system_server) --pid2=$(pidof com.android.camera2) Change-Id: I1c5bbb18c9854c13f6112a87dbea2d806421d2bb
2025-03-06Revert "Convert cpplint-art-all to Android.bp" am: b8764bb1b9 am: d75809fe42 Mike Frysinger
Original change: https://android-review.googlesource.com/c/platform/art/+/3528732 Change-Id: Idda439b4c9f7acebef35bac64cdd084354995548 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-06Revert "Convert cpplint-art-all to Android.bp" Mike Frysinger
This reverts commit 8b75fafb8160d29e228e569bfeeeedf462f19899. Reason for revert: We're rolling back the repohooks change and will look at pulling in cpplint under external/. We need to rollback now rather than migrate to the new thing directly because the current repohooks codebase is breaking on older branches. Bug: 396027786 Bug: 396308027 Change-Id: I73c8cb1fe154141d424add5ccf792b258372788e
2025-03-05Add a new API getExecutableMethodFileOffsets am: a7f2b44e84 am: f15200a4f8 Yu-Ting Tseng
Original change: https://android-review.googlesource.com/c/platform/art/+/3521870 Change-Id: I30246e4f35fb5a91c62de7d7203a2e74af64b24c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-03-05Add a new API getExecutableMethodFileOffsets Yu-Ting Tseng
This new API overloads the existing API of the same name and accepts "Executable" as the argument type (rather than "Method" for the existing one). This allows it to handle things like a constructor. The API reuses the existing implementation which already handles an Executable properly. Bug: 400457896 Test: TH Change-Id: I754e798da5b041edc3f9dcfe4a3476fea2a234bf
2025-02-26[Sim] Support Simulator in the build system. am: c9fd9b7cd6 am: 1070bb4957 Chris Jones
Original change: https://android-review.googlesource.com/c/platform/art/+/2680025 Change-Id: Ife4cb10dcc9b5ddc9906d004a3a8f1f5811dfa93 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-26[Sim] Support Simulator in the build system. Chris Jones
This patch brings changes to .bp and .go build system files to support building ART in simulator mode, keeping the regular host & target builds and rules unaffected. Arm64 quick code sources are selectively used (instead of the x86_64 quick code sources) in the x86_64 arch section, controlled by a soong config variable which depends on whether the simulator is in use. This allows the simulator to use x86_64 native code sources with arm64 quick code sources. Author: Chris Jones <christopher.jones@arm.com> Test: test.py --host --target Test: export ART_USE_SIMULATOR=true && test.py --host fails to compile quick_entrypoints_arm64.S Change-Id: I9676c4ae368baba92fbc2d3690621feef33a27c1
2025-02-25Update boot image and system server profiles [M46C37P58S0PP] art-benchmark-service
Bug: 254051423 Bug: 360419348 Test: go/art-benchmark?p=BootImageProfileId:54874&f=CandidateName:in:54879 = Perf stats = (lower is better) Regular update to the boot image profiles, with also a fix of adding a few of frequently used classes which are missed during the generation of the profile. Benchmark shows improvements for cold app startup and app memory, with no impact on boot time and memory, but with an increase of code size by 59KB which could be an acceptable cost given the improvmenet in the other metrics. Avg % [Confidence interval min-max %] App Startup: -2.03 [-5.38, 1.32] App File RSS: -1.48 [-6.06, 3.11] App Anon RSS + Swap: -0.41 [-14.3, 13.49] Memory(PSS): +0.23 [-1.49, 1.95] Memory(RSS): -0.33 [-1.04, 0.38] Memory(Private-dirty): -0.36 [-7.13, 6.41] Boot time: -0.04 [-0.55, 0.48] Code size: +0.059MB (0.076%) Ignore-AOSP-First: Boot image profiles Flag: EXEMPT NONE regular update to the boot image profiles BYPASS_INCLUSIVE_LANGUAGE_REASON: Profile of existing code Bypass the increase in services.odex_bytes as it is justfiled by the other improvements in startup time and memory =Generation Strategy= method_threshold: 0.46 image_class_threshold: 0.37 preloaded_classes_threshold: 0.58 priority_packages_thresholds { key: "service-appsearch.jar.prof:CLASS:android" value: 0.052857142 } priority_packages_thresholds { key: "service-appsearch.jar.prof:METHOD:android" value: 0.065714285 } priority_packages_thresholds { key: "service-art.jar.prof:CLASS:android" value: 0.052857142 } priority_packages_thresholds { key: "service-art.jar.prof:METHOD:android" value: 0.065714285 } priority_packages_thresholds { key: "service-connectivity.jar.prof:CLASS:android" value: 0.052857142 } priority_packages_thresholds { key: "service-connectivity.jar.prof:METHOD:android" value: 0.065714285 } priority_packages_thresholds { key: "service-uwb.jar.prof:CLASS:android" value: 0.052857142 } priority_packages_thresholds { key: "service-uwb.jar.prof:METHOD:android" value: 0.065714285 } priority_packages_thresholds { key: "service-wifi.jar.prof:CLASS:android" value: 0.052857142 } priority_packages_thresholds { key: "service-wifi.jar.prof:METHOD:android" value: 0.065714285 } priority_packages_thresholds { key: "services.jar.prof:CLASS:android" value: 0.052857142 } priority_packages_thresholds { key: "services.jar.prof:METHOD:android" value: 0.065714285 } =Profile stats= Data info: - total aggregations: 2698 - number of (device types, builds): 159 File boot-image-profile.txt - hot methods: 25 added, 2 removed - methods: 3 added, 2 removed - classes: 134 added, 0 removed - totals now: 10233 hot methods, 10233 methods, 3427 classes - totals before: 10210 hot methods, 10232 methods, 3293 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 19, 0, 65, 52 com.android, 1, 0, 5, 0, 927, 446 java, 17, 2, 103, 0, 7239, 2088 android.app, 0, 0, 2, 0, 0, 2 android.content, 0, 0, 2, 0, 0, 2 android.graphics, 0, 0, 3, 0, 0, 3 android.icu, 0, 0, 1, 0, 0, 1 android.widget, 0, 0, 1, 0, 0, 1 File preloaded-classes - hot methods: 0 added, 0 removed - methods: 0 added, 0 removed - classes: 142 added, 0 removed - totals now: 0 hot methods, 0 methods, 3418 classes - totals before: 0 hot methods, 0 methods, 3276 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 16, 0, 0, 49 com.android, 0, 0, 5, 0, 0, 446 java, 0, 0, 109, 0, 0, 2085 android.app, 0, 0, 2, 0, 0, 2 android.content, 0, 0, 1, 0, 0, 1 android.graphics, 0, 0, 3, 0, 0, 3 android.icu, 0, 0, 1, 0, 0, 1 android.widget, 0, 0, 1, 0, 0, 1 InternalReferenceRawProfileId: 54874 InternalReferenceCandidateProfileId: 54879 Test: build & benchmark Change-Id: Ie20c05acf2189982fba99e7db2fb5fbee574910d
2025-02-24Convert cpplint-art-all to Android.bp am: 8b75fafb81 am: 7935027abd Nelson Li
Original change: https://android-review.googlesource.com/c/platform/art/+/3496710 Change-Id: I5b0f4e715182a93d6f4308855b531635ddf63d44 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-24Convert cpplint-art-all to Android.bp Nelson Li
Note: To perform cpplint checks, CPPLINT.cfg must be placed at the top-level directory. Therefore, CPPLINT.cfg should also be included in srcs. Bug: 396027786 Test: m cpplint-art-all Change-Id: I69c7b99c4a81a78200f2285739a925a09e4925b3
2025-02-19[Sim] Add a restricted mode setup am: 0e80913124 am: 4eee4deaf7 Chris Jones
Original change: https://android-review.googlesource.com/c/platform/art/+/2680022 Change-Id: I0c6f5ff062b1afb69297d5c226e2ab237bac3a33 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-19[Sim] Add a restricted mode setup Chris Jones
This CL introduces a special ART setup for all modes (host, target), which is going to be a base for VIXL Simulator Stage 1 setup. This setup can be enabled by exporting ART_USE_RESTRICTED_MODE=true to the environment before building ART. The setup limits ART by doing the following: - Limits the GC to only non-concurent Mark&Sweep. - Turns off the Nterp (so only switch C++ intepreter to be used). - Turns off the JNI compiler (GenericJNITrampoline to be used). - Rejects the compilation of all method (except for the allow list). - Turns off compilation and support of intrinsics. - Turns off implicit null checks. - Turns off implicit suspend checks. - Turns off introspection entrypoints. - Turns off special behavior for critical native methods. - Turns off compiler CHECKER tool. With these limitations it will be easier to start off an initial Simulator Stage 1 setup. As the limitations are set for all the modes, it will be easy to compare/debug the workflow for the simulator mode and to compare it to host and target runs. The CL also adds sections in knownfailures.json for tests that fail in this special setup. Also cleanup some read barrier entrypoint declarations in entrypoints_init_arm64.cc to match the definitions in quick_entrypoints_arm64.S and slightly refactor Runtime::Init to stay below the 500 line limit. Author: Artem Serov <artem.serov@linaro.org> Artem Serov <artem.serov@arm.com> Chris Jones <christopher.jones@arm.com> Test: export ART_USE_RESTRICTED_MODE=true test.py --host --target Change-Id: I87319cf339646dc13b9086b00af08882b01603c8
2025-02-13Add a flag for virtual thread am: d7a557c867 am: a35e6bedd3 Victor Chang
Original change: https://android-review.googlesource.com/c/platform/art/+/3492393 Change-Id: I6c59ac9a39fc991b9bdbdc4d1c5da8ac172e9622 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13Add a flag for virtual thread Victor Chang
Bug: 346542404 Test: n/a Change-Id: Ifdc4a77c7a3060731bca232d00ed127043e8722d
2025-02-11Remove required on i18n apex am: 5b9aac8979 am: 12fe7f7092 Colin Cross
Original change: https://android-review.googlesource.com/c/platform/art/+/3453342 Change-Id: I17bf1827569f4c69f5caac8064004c8316092020 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11Remove required on i18n apex Colin Cross
The i18n apex depends on the bootclasspath fragments in the art apex, having the art apex depend on the i18n apex causes dependency cycles when the bootclasspath fragment dependency is proxied through the parent apex. Bug: 372543712 Test: builds Change-Id: I78aff3668f567ea226f7aa0e96325b792ea53958
2025-02-05Keep the symbols for host to symbolize crash stack traces am: 45f0aefb36 am: ↵ Santiago Aboy Solanes
103bd080e7 Original change: https://android-review.googlesource.com/c/platform/art/+/3477432 Change-Id: Ic8af14d515e436a7f9d5b48f5744fa64df3c2a7f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-05Keep the symbols for host to symbolize crash stack traces Santiago Aboy Solanes
Starting from http://r.android.com/3460147 the symbols are stripped by default. Re-add them for ART. Remove the linux_bionic case as it is already covered by host now. Bug: 394277734 Bug: 390471378 Test: Trigger a crash on purpose and see the full stack trace Change-Id: Ie7c27ea11371af8e545a63ebb3c6cb0d9a249964
2025-02-04Update boot image and system server profiles [M44C35P56S0PP] art-benchmark-service
Bug: 254051423 Test: go/art-benchmark?p=BootImageProfileId:54227&f=CandidateName:in:54235 = Perf stats = (lower is better) Regular update to the boot image profiles. Benchmark shows improvements for Apps startup and boot memory, with no impact on boot time, but with an increase of code size by 391KB which could be an acceptable cost given the improvmenet in the other metrics. Avg % [Confidence interval min-max %] App Startup: -2.99 [-6.52, 0.53] App File RSS: -3.63 [-16.14, 8.88] App Anon RSS + Swap: -1.37 [-16.88, 14.14] Memory(PSS): -1.25 [-3.92, 1.41] Memory(RSS): -1.3 [-4.02, 1.42] Memory(Private-dirty): -2.69 [-9.54, 4.16] Boot time: +0.48 [-0.09, 1.06] Code size: +0.39MB (0.50%) Ignore-AOSP-First: Boot image profiles Flag: EXEMPT resource only update BYPASS_INCLUSIVE_LANGUAGE_REASON: Profile of existing code Bypass the increase in boot-framework.oat_bytes and services.odex_bytes as it is justfiled by the other improvements in startup time and memory =Generation Strategy= method_threshold: 0.44 image_class_threshold: 0.35 preloaded_classes_threshold: 0.56 priority_packages_thresholds { key: "service-appsearch.jar.prof:CLASS:android" value: 0.05 } priority_packages_thresholds { key: "service-appsearch.jar.prof:METHOD:android" value: 0.06285714 } priority_packages_thresholds { key: "service-art.jar.prof:CLASS:android" value: 0.05 } priority_packages_thresholds { key: "service-art.jar.prof:METHOD:android" value: 0.06285714 } priority_packages_thresholds { key: "service-connectivity.jar.prof:CLASS:android" value: 0.05 } priority_packages_thresholds { key: "service-connectivity.jar.prof:METHOD:android" value: 0.06285714 } priority_packages_thresholds { key: "service-uwb.jar.prof:CLASS:android" value: 0.05 } priority_packages_thresholds { key: "service-uwb.jar.prof:METHOD:android" value: 0.06285714 } priority_packages_thresholds { key: "service-wifi.jar.prof:CLASS:android" value: 0.05 } priority_packages_thresholds { key: "service-wifi.jar.prof:METHOD:android" value: 0.06285714 } priority_packages_thresholds { key: "services.jar.prof:CLASS:android" value: 0.05 } priority_packages_thresholds { key: "services.jar.prof:METHOD:android" value: 0.06285714 } =Profile stats= Data info: - total aggregations: 1789 - number of (device types, builds): 156 File boot-image-profile.txt - hot methods: 89 added, 23 removed - methods: 109 added, 23 removed - classes: 59 added, 3 removed - totals now: 10210 hot methods, 10232 methods, 3293 classes - totals before: 10144 hot methods, 10146 methods, 3237 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 1, 0, 1, 0, 65, 33 com.android, 0, 1, 23, 2, 926, 441 java, 48, 12, 5, 1, 7224, 1985 File preloaded-classes - hot methods: 0 added, 0 removed - methods: 0 added, 0 removed - classes: 58 added, 3 removed - totals now: 0 hot methods, 0 methods, 3276 classes - totals before: 0 hot methods, 0 methods, 3221 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 1, 0, 0, 33 com.android, 0, 0, 23, 2, 0, 441 java, 0, 0, 8, 1, 0, 1976 InternalReferenceRawProfileId: 54227 InternalReferenceCandidateProfileId: 54235 Test: build & benchmark Change-Id: I7c94ef215669efa7a6c896b9e87cfac70bbd74c8
2025-01-27Add a one-pass baseline compiler for arm64. Nicolas Geoffray
Currently handles 50% of methods by supporting methods that: - don't branch - don't have try/catch - don't have float/double - <= 8 registers - opcodes are const/invokes/iget/iput/const-string/new-instance/checkcast. Cost of compilation is 10 times less than current baseline compiler. Performance of generated code: jit-baseline-cc configuration shows no impact on go/lem Test: test.py Change-Id: I8c99b8a8a7552c09c900c5c3e831e8897aef73e5
2025-01-21Enable Generational CMC Lokesh Gidra
Flag: art_performance.use_generational_cmc Bug: 343220989 Test: art/test/testrunner/testrunner.py --host with combinations of: ART_USE_READ_BARRIER=true/false, ART_USE_GENERATIONAL_GC=true/false, and ART_USE_GENERATIONAL_CC=true/false Change-Id: Ic01d37c3c0ead996a0cdbd99fb139b1f583ab858
2025-01-16Add //cts/libcore/vmdebug to visibility of ART aconfig flags Mythri Alle
Add //cts/libcore/vmdebug to visibility of aconfig flags to access them in API coverage tests Bug: 385015127 Test: atest VMDebugDeviceTest Change-Id: I5785d23ae3d27bd19cbe1700db94705385cc332d
2025-01-10Add java library for core icu4j for the fuzzer Santiago Aboy Solanes
The one we were using didn't have classes.dex so it used to fail to load. The failure can be seen by running the fuzzer without setting SetMinimumLogSeverity. Bug: 352721437 Test: Follow art/tools/fuzzer/README.md for libart_verify_classes_fuzzer Change-Id: I322488be93dd01423bccf7942ea63a07098061be
2024-12-05Add a host flag lib for CTS use. Jiakai Zhang
Bug: 377474232 Test: m Change-Id: Ia4f75c92c0e8e683efdadb2c6aec6b7bf9f836ed
2024-12-04Clean up host APEX support. Martin Stjernholm
#codehealth Test: art/build/apex/runtests.sh Bug: 279835185 Change-Id: I512f162f0f5208774a48049489ce3f1f5dbc0e31
2024-12-04Add newly introduced methods from aosp/3342998 to profile. Almaz Mingaleev
Bug: 381323958 Test: m Change-Id: I5048904607df4721bbecd823768d713e6d02a73a
2024-12-02Add back HeapByteBuffer related unchecked methods. Islam Elbanna
This is a partial revert to http://ag/29953064, since it could be related to the regression at b/375446369 Bug: 375446369 Change-Id: I6d72f07fbe16430ddc0d8f1ed0dd19503bd761ba Test: m
2024-11-13Move executable_method_file_offsets flag to system_performance namespace Matt Gilbride
While the code is in the system / ART, the engineers working on this feature are in the system performance team that owns packages/modules/UprobeStats. Update the namespace to accurately reflect code ownership. Bug: 372925025 Test: TH Change-Id: I65e5d123986dbcf3782ebfb871779542dd5508ea
2024-11-11Update boot image and system server profiles [M80C35P56S0PP] art-benchmark-service
Bug: 254051423 Test: go/art-benchmark?p=BootImageProfileId:41298&f=CandidateName:in:41302 = Perf stats = (lower is better) Regular update to the boot image profiles. Benchmark shows improvements for Apps startup and memory, boot memory and boot time, but with an increase of code size by 629KB which could be an acceptable cost given the improvmenet in the other metrics. Avg % [Confidence interval min-max %] App Startup: -1.43 [-3.4, 0.53] App RSS: 0.23 [-0.44, 0.89] App Anon RSS + Swap: -0.79 [-2.55, 0.96] Memory(PSS): -1.07 [-3.16, 1.03] Memory(RSS): -0.97 [-1.94, 0] Memory(Private-dirty): -1.47 [-6.05, 3.12] Boot time: -1.11 [-1.59, -0.62] Code size: 629KB (0.701%) Ignore-AOSP-First: Boot image profiles Flag: EXEMPT resource only update BYPASS_INCLUSIVE_LANGUAGE_REASON: Profile of existing code =Generation Strategy= method_threshold: 0.8 image_class_threshold: 0.35 preloaded_classes_threshold: 0.56 priority_packages_thresholds { key: "service-appsearch.jar.prof:CLASS:android" value: 0.025 } priority_packages_thresholds { key: "service-appsearch.jar.prof:METHOD:android" value: 0.057142857 } priority_packages_thresholds { key: "service-art.jar.prof:CLASS:android" value: 0.025 } priority_packages_thresholds { key: "service-art.jar.prof:METHOD:android" value: 0.057142857 } priority_packages_thresholds { key: "service-connectivity.jar.prof:CLASS:android" value: 0.025 } priority_packages_thresholds { key: "service-connectivity.jar.prof:METHOD:android" value: 0.057142857 } priority_packages_thresholds { key: "service-wifi.jar.prof:CLASS:android" value: 0.025 } priority_packages_thresholds { key: "service-wifi.jar.prof:METHOD:android" value: 0.057142857 } priority_packages_thresholds { key: "services.jar.prof:CLASS:android" value: 0.025 } priority_packages_thresholds { key: "services.jar.prof:METHOD:android" value: 0.057142857 } =Profile stats= Data info: - total aggregations: 4270 - number of (device types, builds): 130 File boot-image-profile.txt - hot methods: 29 added, 107 removed - methods: 31 added, 107 removed - classes: 73 added, 82 removed - totals now: 10067 hot methods, 10069 methods, 3237 classes - totals before: 10145 hot methods, 10145 methods, 3246 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 1, 0, 64, 32 com.android, 0, 3, 8, 1, 927, 420 java, 23, 98, 35, 71, 7179, 1981 File preloaded-classes - hot methods: 0 added, 0 removed - methods: 0 added, 0 removed - classes: 74 added, 85 removed - totals now: 0 hot methods, 0 methods, 3221 classes - totals before: 0 hot methods, 0 methods, 3232 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 1, 0, 0, 32 com.android, 0, 0, 8, 1, 0, 420 java, 0, 0, 36, 71, 0, 1969 InternalReferenceRawProfileId: 41298 InternalReferenceCandidateProfileId: 41302 Test: build & benchmark (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:66d17a5f669379a2e2f4ded4c760f460a5ee0049) Merged-In: I302a75ac374e14ebcb680e0ad6fecdb13564b215 Change-Id: I302a75ac374e14ebcb680e0ad6fecdb13564b215
2024-11-06Add packages/modules/UprobeStats to flag visibility Matt Gilbride
This module will need to read the executable_method_file_offsets flag. Flag: Not needed (build visibility change only) Bug: 372925025 Test: TH Change-Id: Idcf11efc522514b37a543619792f4a2216ef6603
2024-11-06Allow Pre-reboot Dexopt to be configured by BatchDexoptStartCallback. Jiakai Zhang
Instead of calling `BatchDexoptStartCallback` from `ArtManagerLocal.dexoptPackages` in the new service-art.jar loaded from the OTA/Mainline package, do it in the current one where the OEM may have configured it, and send over the resulting `BatchDexoptParams` data instead. Bug: 356996742 Bug: 369233230 Test: atest ArtServiceTests Test: - 1. adb shell configure-batch-dexopt -r ab-ota --package com.android.settings --package com.android.calendar 2. adb shell pm art pr-dexopt-job --run Change-Id: I4ab65cecb4fa7724a6e1ac1a04532ac2d3fef4ef
2024-10-31Remove dependencies on the 1-variant fallback Cole Faust
When adding a dependencies, if the variants don't match, but the dependency only has 1 variant anyways, soong will always use that variant. This makes it hard to add new variants to soong, because the 1-variant fallback stops being used and you start getting missing variant errors. Make changes to bp files such that all dependencies correctly specify the variant to use. Bug: 372091092 Flag: EXEMPT refactor Test: m nothing Change-Id: I9cc72bb9a769e0c96e3a5c1fff005f8ad8556ff2
2024-10-25Add //frameworks/base:__subpackages__ to flag visibility Matt Gilbride
The flags need to be referenced from a subdirectory of frameworks/base in an upcoming change. Test: TH Bug: 372925025 Change-Id: I66c0178faed95c4890022a454ae5f1ef7c262dbd
2024-10-23Revert^2 "Add VMDebug_getExecutableMethodFileOffsetsNative" Jiakai Zhang
83387d63c4a37b7f3ae84666360a1d6f66d90b08 Change-Id: I4f42f35cfa20225cef10ede43276780062731392
2024-10-22Revert "Add VMDebug_getExecutableMethodFileOffsetsNative" Jiakai Zhang
Revert submission 3280271-hummingbird-art-lib Reason for revert: Broke art_standalone_compiler_tests and art_standalone_runtime_tests, and blocks presubmit. Reverted changes: /q/submissionid:3280271-hummingbird-art-lib Change-Id: I8fa82ea6306778e6ee6a1988c6403e7aa7b97808
2024-10-22Add VMDebug_getExecutableMethodFileOffsetsNative Matt Gilbride
Adds a method that, given a Java/Kotlin method, fetches the ODEX file, offset of that file within the running process, and offset of the method within that file. The mechanism works only for AOT compiled methods for now, but can later be expanded to provide similar info for JIT compiled methods. Bug: 372925025 Test: TH Flag: com.android.art.flags.executable_method_file_offsets Change-Id: I0598b8602d81416f602b186f9f313ec55cfc3e8d
2024-10-21Split dirty-image-objects file between art and framework Dmitrii Ishcheikin
Test: install ART module and check that /apex/com.android.art/etc/dirty-image-objects exists Teset: m art-check-testing-apex-gen art-check-release-apex-gen Change-Id: I7095b41b2c6ca6f08f01d651df9be7e39cfe47bc
2024-10-03Refactor the ART APEX Soong modules to make them easier to follow. Martin Stjernholm
Reduce the number of defaults and the use of variables, to make it easier to track what goes into each APEX. Repeat some variations in each apex or apex_test instead (libart vs libart-broken and odrefesh vs odrefresh_broken). That gives a little more duplication, but wins out through less boilerplate and less tricky defaults. #codehealth Test: art/build/apex/runtests.sh Test: lunch armv8 m test_broken_com.android.art test_jitzygote_com.android.art \ test_imgdiag_com.android.art com.android.art \ com.android.art.debug com.android.art.testing Check that the .apex files remain bit identical. Change-Id: I90955b7d97c831a5c4fe18008d678d021dc3b7f8
2024-10-03Consolidate various APEX properties to the ART shared defaults. Martin Stjernholm
This doesn't change any of the APEXes except test_broken_com.android.art, which now becomes a more complete APEX with binaries, javalibs, and etc files. We rely on unwanted_transitive_deps to avoid pulling in the non-broken libart.so into it, so it no longer needs quite as much special treatment. #codehealth Test: art/build/apex/runtests.sh Test: lunch armv8 m test_broken_com.android.art test_jitzygote_com.android.art \ test_imgdiag_com.android.art com.android.art \ com.android.art.debug com.android.art.testing Check that the .apex files change in the expected way. Test: atest art-apex-update-rollback Change-Id: I1ddf7f41bf5e6a4927e31ac842fc296acde7c910
2024-10-03Add libandroidio to all APEXes. Martin Stjernholm
Before this, libandroidio wasn't present in test_broken_com.android.art, but in all other APEXes. When building libs that depend on it, like libjavacore, Soong needs to decide whether to build against libandroidio stubs or bypass them. If all APEXes they are included in also have the libandroidio implementation lib it can bypass the stubs, but if _any_ APEX doesn't, then the build has to switch to stubs. There's only one variant for all APEXes, so libjavacore ends up being built against stubs in all of them. Thus, since test_broken_com.android.art had libjavacore but not libandroidio, libjavacore in all APEXes got built against stubs. This adds libandroidio (among other libcore native libs) to test_broken_com.android.art, to change that. The build difference is probably not significant, but this allows the refactorings in the child CLs to verify that the .apex files are kept bitwise identical. #codehealth Test: art/build/apex/runtests.sh Test: lunch armv8 m test_broken_com.android.art test_jitzygote_com.android.art \ test_imgdiag_com.android.art com.android.art \ com.android.art.debug com.android.art.testing Check that test_broken_com.android.art changes as expected, and that only libjavacore.so is different in the other APEXes. Change-Id: I0e9636277b5dd22f1ead577490b03d41925b4889
2024-10-01Clean up some internal libraries from the native library lists. Martin Stjernholm
Replace `requires` with `runtime_libs` where possible to avoid listing transitive deps explicitly in the APEXes. Update docs for those that still cannot be dealt with correctly. This CL is a nop - all ART APEXes are bit identical after this change. Add libopenjdkjvm explicitly to test_broken_com.android.art to accomplish that - it'll be cleaned up in a later CL. Also clean up unused libdt_fd_forwardd debug lib. #codehealth Test: lunch armv8 m test_broken_com.android.art test_jitzygote_com.android.art \ test_imgdiag_com.android.art com.android.art \ com.android.art.debug com.android.art.testing Check that the .apex files remain bit identical. Bug: 370034097 Change-Id: I4d36d83dcd4c59f1beb57bae80c881eb7d820dde
2024-09-27Add new HeapByteBuffer methods into profile Victor Chang
to avoid benchmark regressions Bug: 365865848 Test: treehugger Change-Id: Ied6f7f6e28e20c5184edafd8ef7c90c82b02f61b
2024-09-26Add `art_boot_images` as required dep of some ART tests Spandan Das
ART gtests and run-tests depend on the host variant of ART boot images, which are installed in out/host/linux-x86/apex/art_boot_images/ The installation rules for these dexpreopt artifacts were previously generated by make, but will now be generated by the `art_boot_images` soong module. This CL adds `art_boot_images` as a required dep of the relevant gtests and as a phony dep of `test-art-host-run-test-dependencies` Bug: 355706080 Test: m installclean && m test-art-host-gtest (gtests) Test: m installclean && m test-art-host-gtest-art_compiler_tests (single gtest) Test: m installclean && m test-art-host-run-test-dependencies && m art/test.py --host (art run-tests) Change-Id: I6a4a3ff33f7b909d1487b77709252060d518ca04
2024-09-24Verify the presence of flag.info in ART APEXes Dennis Shen
Context: Previously flag info file is created at run time rather than at build time due to two reasons: 1, it saves some storage space on each container 2, initially the flag info file does not container any flag non run time info, so creating this file at run time on device is more efficient. However, flag info file is fairly compact, 1 byte per flag. So the storage footprint increase is minimal. Also, now flag info file contains flag information known at the build time such as if the flag is read write. To help create flag info file at run time, we actually have to keep additional information on flag map file. Then use this information to create flag info file at run time. Now it is more efficient to just create flag info file at build time. In addition, to create flag info file at run time, we need to maintain an additional write api create_flag_info_file. Each time flag file version changes, we have to keep the old version of this API as well. If we create flag info file at build time, then we don't have to maintain this API. Overall the benefits outweight the 1 byte per flag storage overhead. Therefore making this change to create flag info file at build time. Test: art/build/apex/art_apex_test.py Change-Id: I591afd662a5b0de807d6111c44a8d076e38bd617
2024-09-18Fix standalone-apex-files. Jiakai Zhang
Previously, we removed the platform impl libraries and StatsD. The change broke standalone-apex-files because it depends on them. This CL fixes it by replacing them with fakes. Bug: 367936043 Bug: 357802879 Test: m standalone-apex-files Change-Id: I45d1a8475e78d35689be80e0ea9ec427a3623072
2024-09-17riscv64 autovectorization needs a little more space. Elliott Hughes
(I've bumped the host number too since the weird number makes me think this was only ever determined experimentally anyway, and there may well be riscv64 hosts at some point.) Change-Id: Ie2ab1500c4536d03e7d2bbfa749557dbe02463fe
2024-09-11Remove prebuilt_visibility from art module sdk and exports Spandan Das
https://r.android.com/3252814 changed the visibility of all module sdk prebuilts to //visibility:public Since prebuilt_visibility is no longer used in the generated sdk, remove it from the art sdk and exports modules. Change-Id: I12b03acbbc06f7269a12c36358c7f14510b0f670 Test: presbumits Bug: 239189932 Bug: 365111645
2024-09-02Delete monthly ramp flags. am: ab13b431d4 Martin Stjernholm
Original change: https://android-review.googlesource.com/c/platform/art/+/3250113 Change-Id: Ib7a64a5e9038dc0c82a102fc5a714f60aba96791 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2024-09-02Delete monthly ramp flags. Martin Stjernholm
They create too much overhead. Test: Codesearch for `m202._.._ramp` and `m202...ramp` to check flag usage. Bug: 348355775 Change-Id: I3f23dbdbf3c6e357b85a281e60355ef24a309d25