summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2024-05-13Snap for 11834329 from 76c8d191b8db964d8c3d44d42d2e04a2a383bd80 to ↵android14-tests-releaseAndroid Build Coastguard Worker
android14-tests-release Change-Id: I070c24ca70b98b5a5bd618f141f33d1a13cf8134
2024-05-07Repurpose libnativeloader_lazy tests as shallow tests for API coverageandroid14-tests-devMartin Stjernholm
in CTS. Most APIs are exercised extensively in any managed process, but use this to cover the fringes. This drops the mocks that used dynamic library symbol overrides (android_create_namespace and android_link_namespaces) from the former libnativeloader_lazy tests, because we cannot inject them in CTS tests. However it turns out it works just fine to call into the real code in the linker. As a result libnativeloader_lazy_test no longer needs to be built with exported symbols necessary to make the symbol override mocks to work. Also strengthen the CreateClassLoaderNamespace test slightly by verifying that it really did create a classloader namespace. Test: atest libnativeloader_test \ art_libnativeloader_cts_test \ libnativeloader_lazy_test Bug: 335224367 Change-Id: Idd15d5a79f4f54c68304a4b758c7a46ba9b96c86 (cherry picked from commit 1dc111804f9ea778bce6258ffd10fed80fb02d0c) Merged-In: Idd15d5a79f4f54c68304a4b758c7a46ba9b96c86
2024-04-16Revert "libnativeloader_test: link non-public libs statically" andMartin Stjernholm
remove libnativeloader_test from CTS instead. This reverts commit b2b067192ac047b99c0d03104c5d7dbf79192ef1 which made the CTS test no longer work for API coverage. It also (effectively) reverts commit 996fa745c3ad3e3150363c85816ad2db3a00f5bd which put it in CTS in the first place for that purpose. It's clear libnativeloader_test won't work for API coverage due to the mocking it does, so we'd have to add new tests if there are gaps. However there doesn't seem to be any. Also do a few other cleanups in the Android.bp file. Test: atest libnativeloader_e2e_tests \ libnativeloader_test libnativeloader_lazy_test Bug: 327407752 Bug: 328653757 Change-Id: I488c3d3c5143b7694a8456c3b56edfd511c3c610 (cherry picked from commit 418b58fe9c94a4bc2592d27b45a8e44c70742119) Merged-In: I488c3d3c5143b7694a8456c3b56edfd511c3c610
2024-03-21Snap for 11608903 from 002aca7141e7baf488b02f330b307f059c47a84d to ↵android-vts-14.0_r4android-cts-14.0_r4Android Build Coastguard Worker
android14-tests-release Change-Id: I4ac4152ef570e064b0f4423f5cd33d6356fd2e47
2024-03-20Revert "libnativebridge_test: link non-public libs statically" and fixMartin Stjernholm
the CTS test to only call exported APIs. Reverts commit 7f5b3d89f21edd958ddb9d7bd01e03c77bd5425a. CTS tests need to link the libraries they test dynamically, and this test only tests exported stable APIs. The standalone CTS test config template includes NativeBridgeModuleController, so the test won't run in a translated environment (which has no proxy for this library and hence caused the error that prompted commit 7f5b3d89f21edd958ddb9d7bd01e03c77bd5425a). The test also used to test some non-exported APIs, which it shouldn't do in CTS. This changes it to use art_standalone_test_defaults, which doesn't have the test_for attributes that made it bypass the stub. Also reuse the trivial API-only tests for libnativebridge_lazy, and give them a more apt name for the new use. Test: atest art_libnativebridge_cts_tests \ libnativebridge-lazy-tests Test: art/libnativebridge/tests/runtests.sh Bug: 327407752 Bug: 328653757 Change-Id: Ib56148f1a651a9ffa3045bc401cc625e6f42416b Merged-In: Ib56148f1a651a9ffa3045bc401cc625e6f42416b (cherry picked from commit a87f1265e210615f7c90151f04a104a38067c196)
2024-03-07Snap for 11545237 from 1cffc693d9babee49cf1104b7bc8dd2214509369 to ↵Android Build Coastguard Worker
android14-tests-release Change-Id: I036b055f41aaeef7c16aadf1b9798f4ad0a78cd1
2024-03-06Do not expect VNDK namespace when VNDK is deprecatedKiyoung Kim
UnbundledVendorApp test from libnativeloader tests expects VNDK namespace as default, because all devices using mainline was treblelized and had vendor VNDK version. However, this is no longer valid because of VNDK deprecation, so test should check 'ro.vndk.version' property exists, and do not expect VNDK namespace if the property is empty. Bug: 290159430 Bug: 325710867 Test: libnativeloader_test passed with VNDK deprecated device Change-Id: I3fd14beee676c86dbc066aa51b6c6bb57962283b Merged-In: I3fd14beee676c86dbc066aa51b6c6bb57962283b (cherry picked from commit cd9c984c9ec7e14080d5ccc4f50868a2974b29ea)
2024-03-06Check if product is treblelizedKiyoung Kim
Previous change on handling product partition was based on the assumption that all devices for mainline update would be product treblelized, but it was not true. There are some upgrade devices to S which is not product treblelized. This change checks if the device is treblelized with first api level and product vndk version. Bug: 305749591 Bug: 325710867 Test: AOSP cuttlefish boot succeeded Test: libnativeloader_e2e_tests passed Change-Id: I46f9c0e253363b891bdc6b073df3cc14e9f7b5aa Merged-In: I46f9c0e253363b891bdc6b073df3cc14e9f7b5aa (cherry picked from commit 760e495e79c03ce9c748a93ff42e6e3dd00bfc05)
2024-03-06Use product vndk version to check if product vndk is deprecatedKiyoung Kim
There are some logic in libnativeloader to check if product is treblelized by checking ro.product.vndk.version. However, this property is no longer valid to check if product is treblelized, because of vndk deprecation. This makes libnativeloader to consider as product is not treblelized when the property is empty from the VNDK deprecation. This causes unexpected error from libnativeloader which allows product apps to use system / system_ext libraries when the product partition is VNDK deprecated. Product is force-treblelized from R, so it is safe to assume that product partition is always treblelized as long as the device is treblelized. This change removes existing check of ro.product.vndk.version, and use this check only to confirm if product VNDK is deprecated. Bug: 290159430 Bug: 325710867 Test: Cuttlefish build and run succeeded Test: libnativeloader_e2e_tests passed Change-Id: Ieee3ff2dde4244e7c46420ad8dde5f8e5cf249e4 Merged-In: Ieee3ff2dde4244e7c46420ad8dde5f8e5cf249e4 (cherry picked from commit c8c2953cffe8ff9d2204f4efdff9100eb9fa6df0)
2024-02-28Use llndk.libraries.txt from system if VNDK is deprecatedKiyoung Kim
llndk.libraries.txt will be relocated into system when VNDK is deprecated. This change sets a new location to load llndk.libraries.txt when VNDK is deprecated. Bug: 290160925 Bug: 325710867 Test: aosp_cf build and boot succeeded with llndk.libraries.txt in the system image Change-Id: Id1c6f3e0c68f5a805a9285611da759f1b9a26da4 Merged-In: Id1c6f3e0c68f5a805a9285611da759f1b9a26da4 (cherry picked from commit 065d968d7c754f6042f113c18d2fd8858ec83455)
2024-01-05Snap for 11279838 from c968f45f41f9ca409c967e5495d28a049eebf14d to ↵android-vts-14.0_r3android-cts-14.0_r3Android Build Coastguard Worker
android14-tests-release Change-Id: Ia31f157cb5144eed8f63f1cd0bd22c009aa97727
2024-01-04Update Test913 to check for .art] to detect if there's an imageMythri Alle
Test913 checks if Object.class is in image space when an image is loaded. The test checks for a ".art" mapping in /proc/self/maps to check if an image exists. We should also check for ".art]". Bug: 318039063 Test: art/test.py -t 913 (cherry picked from https://android-review.googlesource.com/q/commit:9a3ca371e9fe14ccf4e55fd1c9a8c45b01b5250c) Merged-In: I0ef5ae0dc35669dd5603b35e34f00e653f70a3c1 Change-Id: I0ef5ae0dc35669dd5603b35e34f00e653f70a3c1
2023-12-22Snap for 11251280 from 1ad622c724bafcc091f7dfd905919d74c13e245b to ↵Android Build Coastguard Worker
android14-tests-release Change-Id: I42796c10355411b38331d04a45ac77a0c6145af7
2023-12-21[automerger skipped] Do not add the ART APEX to LD_LIBRARY_PATH in the CTS ↵Martin Stjernholm
tests, and link am: 50cfe06af2 -s ours am skip reason: Merged-In I538b00418f2e5563f6d88ae8a6aa99372e44bb78 with SHA-1 dfe9c4d7b2 is already in history Original change: https://android-review.googlesource.com/c/platform/art/+/2885272 Change-Id: If72c8e4524a114e8cf39394379fe1636ee8e90b5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-21Snap for 11247270 from dfe9c4d7b203cf8e8981485e00eca05b103628a8 to ↵Android Build Coastguard Worker
android14-tests-release Change-Id: I3fcc055a0dc57f8b9206147e19700b1f479f1795
2023-12-20Snap for 11242094 from 8fe0809df69d6bf0524bfb7553592addce2e27ba to ↵Android Build Coastguard Worker
android14-tests-release Change-Id: Ia8bb939a35e62ad79b922f4e3377f2cd11f7b2c0
2023-12-20Do not add the ART APEX to LD_LIBRARY_PATH in the CTS tests, and linkandroid13-tests-devMartin Stjernholm
statically what's needed instead. Adding /apex/com.android.art/${LIB} to LD_LIBRARY_PATH conflates the linker namespace separation and causes ART module libs to be loaded in the default (= system) namespace. That causes linker errors when the module is used on older system images where unstable shared libs are no longer compatible. Instead link all internal libs statically and only leave the ones with exported APIs (which these CTS tests are intended to test). Merged-In set to a CL in main to avoid merging there - gtests are already linked statically there - it'll require a different fix. Test: lunch aosp_x86_64 atest art_libnativebridge_cts_tests \ art_standalone_libdexfile_external_tests \ libnativeloader_test \ art_standalone_libartpalette_tests using a cvd with a TM system image (had to apply https://r.android.com/2654960 to make atest work in android13-tests-dev) Bug: 317042881 Change-Id: I538b00418f2e5563f6d88ae8a6aa99372e44bb78 Merged-In: I538b00418f2e5563f6d88ae8a6aa99372e44bb78 Merged-In: I75a844f53663385ef98351f60d3adb900157f5e5
2023-12-20Do not add the ART APEX to LD_LIBRARY_PATH in the CTS tests, and linkMartin Stjernholm
statically what's needed instead. Adding /apex/com.android.art/${LIB} to LD_LIBRARY_PATH conflates the linker namespace separation and causes ART module libs to be loaded in the default (= system) namespace. That causes linker errors when the module is used on older system images where unstable shared libs are no longer compatible. Instead link all internal libs statically and only leave the ones with exported APIs (which these CTS tests are intended to test). Merged-In set to a CL in main to avoid merging there - gtests are already linked statically there - it'll require a different fix. Test: lunch aosp_x86_64 atest art_libnativebridge_cts_tests \ art_standalone_libdexfile_external_tests \ libnativeloader_test \ art_standalone_libartpalette_tests using a cvd with a TM system image (had to apply https://r.android.com/2654960 to make atest work in android13-tests-dev) Bug: 317042881 Change-Id: I538b00418f2e5563f6d88ae8a6aa99372e44bb78 Merged-In: I75a844f53663385ef98351f60d3adb900157f5e5
2023-12-20Avoid dynamic lib dependencies on internal ART libraries in theMartin Stjernholm
libartpalette and dex2oat CTS gtests. We cannot use art_standalone_gtest_defaults. dex2oat_cts_test.cc rips out the necessary bits from common_art_test.cc instead, with as few changes as possible. With this change we can reenable art_standalone_dex2oat_cts_tests again (cf. b/288212464#comment5). Merged-In set to a CL in main to avoid merging there - gtests are already linked statically there. Cherry picked from https://googleplex-android-review.git.corp.google.com/c/platform/art/+/25166821. Test: m art_standalone_libartpalette_tests \ art_standalone_dex2oat_cts_tests Do `readelf -d` on the test binaries to check that only stable ABI libraries are in the NEEDED list. Test: cts-tradefed run commandAndExit cts \ -m art_standalone_dex2oat_cts_tests on a tm-release image. Test: cts-tradefed run commandAndExit cts \ -m art_standalone_libartpalette_tests on a tm-release image. Bug: 306064090 Bug: 288212464 Merged-In: I75a844f53663385ef98351f60d3adb900157f5e5 Merged-In: I4a8d1eddaacf9e476f7d3d783edec0223cb39c04 Change-Id: I708d83015bc151eba568d5d6f777872274f7580c
2023-12-19Revert "Construct BCP arguments to the VM using CommonArtTest code."Martin Stjernholm
This reverts commit 23ac65adbd2edcaa70bd4c7e94cf016bef384891. It introduced a dependency on art::CommonArtTest that we cannot satisfy when linking without most ART test binaries, which we want to do for the child CL. It means the test is disabled on host again, but it will allow us to remove it from the CTS exclude on target, which is more important. Merged-In set to a CL in main to avoid merging there - gtests are already linked statically there. Test: m art_standalone_libartpalette_tests Do `readelf -d` on the test binaries to check that only stable ABI libraries are in the NEEDED list. Test: cts-tradefed run commandAndExit cts \ -m art_standalone_libartpalette_tests on a udc-dev image. Bug: 306064090 Bug: 288212464 (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:b02ffa5d50717d722640d434e5a4de70b5dcf478) Merged-In: Ia504fe852cd6df454e3adf9e3fca3771e2d618ff Change-Id: Ia504fe852cd6df454e3adf9e3fca3771e2d618ff
2023-12-19[automerger skipped] Avoid dynamic lib dependencies on internal ART ↵Martin Stjernholm
libraries in the am: 79248264f3 -s ours am skip reason: skipped by user mast Original change: https://android-review.googlesource.com/c/platform/art/+/2800513 Change-Id: I35cfcf6c76cba847f5155fe0e6a741287ef99f52 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-12-18Avoid dynamic lib dependencies on internal ART libraries in theMartin Stjernholm
libartpalette and dex2oat CTS gtests. We cannot use art_standalone_gtest_defaults. dex2oat_cts_test.cc rips out the necessary bits from common_art_test.cc instead, with as few changes as possible. With this change we can reenable art_standalone_dex2oat_cts_tests again (cf. b/288212464#comment5). Merged-In set to a CL in main to avoid merging there - gtests are already linked statically there. Test: m art_standalone_libartpalette_tests \ art_standalone_dex2oat_cts_tests Do `readelf -d` on the test binaries to check that only stable ABI libraries are in the NEEDED list. Test: cts-tradefed run commandAndExit cts \ -m art_standalone_dex2oat_cts_tests on a tm-release image. Test: cts-tradefed run commandAndExit cts \ -m art_standalone_libartpalette_tests on a tm-release image. Bug: 306064090 Bug: 288212464 Change-Id: I1ff4174490ff50dbd2177cf5999fc6ef4bfbaa49 Merged-In: I75a844f53663385ef98351f60d3adb900157f5e5 Merged-In: I4a8d1eddaacf9e476f7d3d783edec0223cb39c04
2023-07-06art: disable standalone cts tests for native-bridge am: debd82f9b1android-vts-14.0_r2android-cts-14.0_r2Lev Rumyantsev
Original change: https://android-review.googlesource.com/c/platform/art/+/2647524 Change-Id: Ib588afe35990b607a99c4164e60f98a5d29b7b6b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-07-01art: disable standalone cts tests for native-bridgeLev Rumyantsev
Some of these tests are dynamically linking non-NDK libraries which native-bridge doesn't support. But also art code is never executed under native-bridge in production since we only use it to execute app's libraries. Test: tests are skipped for native-bridge and not skipped without native bridge art_standalone_dex2oat_cts_tests art_standalone_libartpalette_tests art_standalone_libdexfile_external_tests Bug: 268440713 Change-Id: Ic11ee51768aa305ffb84bf1da3bade855e078f6a (cherry picked from commit b31b0443b7a15bef69bd3048094fe0eff204124f)
2023-06-21[automerger skipped] Fix ART MTS exclusion filter for `JniCompilerTest` test ↵android14-devRoland Levillain
cases. am: ad8c2f3c2e -s ours am skip reason: Merged-In I88a4b610952ac391eb5a2c0b56318c569410f68b with SHA-1 9c0e3238a2 is already in history Original change: https://googleplex-android-review.googlesource.com/c/platform/art/+/23745704 Change-Id: I53f8f178cc0ef125b0c08bfd53695622558cea2f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21[automerger skipped] Temporarily exclude `JniCompilerTests` from the ART MTS ↵Roland Levillain
definition. am: 4f60bd624f -s ours am skip reason: Merged-In I2c97c686e73c53ed8ffb0891f5f05af54f6468d2 with SHA-1 f53fa282cc is already in history Original change: https://googleplex-android-review.googlesource.com/c/platform/art/+/23745703 Change-Id: I2b842e7edd90967d21e4c6e01478b0f5bb908d39 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-21Fix ART MTS exclusion filter for `JniCompilerTest` test cases.Roland Levillain
(cherry picked from commit 9c0e3238a2a9c4198140bfc6d979e7d5f321b746) Test: m mts && mts-tradefed run commandAndExit mts-art Bug: 287598331 Bug: 247108425 Change-Id: I88a4b610952ac391eb5a2c0b56318c569410f68b Merged-In: I88a4b610952ac391eb5a2c0b56318c569410f68b
2023-06-21Temporarily exclude `JniCompilerTests` from the ART MTS definition.Roland Levillain
Test cases `JniCompilerTests` from ART gtest `art_standalone_compiler_tests` are currently failing because of linking issues on configurations where the copies of `libunwindstack` in the non-Mainline-updatable Android platform and in the ART Mainline Module differ (see b/247108425). This is currently affecting ART MTS continuous test runs. Temporarily exlude these test cases from MTS to minimize noise in continuous runs while we investigate. (cherry picked from commit f53fa282ccde8dd92d1f4bbbc0f6392b9eb8c843) Test: m mts && mts-tradefed run commandAndExit mts-art Test: m mts && mts-tradefed run commandAndExit mts-art-shard-03 Bug: 287598331 Bug: 247108425 Change-Id: I2c97c686e73c53ed8ffb0891f5f05af54f6468d2 Merged-In: I2c97c686e73c53ed8ffb0891f5f05af54f6468d2
2023-06-20Update default values for metrics flags to enable reporting from public am: ↵Stefano Cianciulli
5bf0f68407 am: aa2c59af69 am: 65c6dd0a09 am: 16e7cfbf17 am: d416febde2 am: b0d3d8fd04 Original change: https://android-review.googlesource.com/c/platform/art/+/2629991 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:d5777cdc1266545930b5f243934d77e0d1bb5869) Bug: 229618060 Merged-In: I8e4ba7523da4331b3789cf788ea762f33b84d4f3 Change-Id: I8e4ba7523da4331b3789cf788ea762f33b84d4f3
2023-06-19Disable some Checker assertions in `1004-checker-volatile-ref-load`. am: ↵Roland Levillain
87837ed326 Original change: https://googleplex-android-review.googlesource.com/c/platform/art/+/23745544 Change-Id: Ieeee65d319c294c620be751df67665700c27b77e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-19Disable some Checker assertions in `1004-checker-volatile-ref-load`.Roland Levillain
Temporarily disable some Checker assertions on Baker read barriers in ART run-test `1004-checker-volatile-ref-load` as they are only valid when the compiler is emitting Baker read barriers, i.e. when ART is using the Concurrent Copying (CC) garbage collector. Since ART's `userfaultfd` Concurrent Mark-Compact (CMC) collector was enabled in https://android-review.git.corp.google.com/c/platform/build/+/2607296 (commit 117212e422c98b32305fa934bd0d5250642749a5), those assertions have started to fail on test configurations using devices that support `userfaultfd`. Disable them for now, until we have a better way to support multiple garbage collectors in Checker (see b/283780888). Test: `atest -a art-run-test-1004-checker-volatile-ref-load` on Pixel 6 Bug: 283392413 (cherry picked from https://android-review.googlesource.com/q/commit:4313c979224cd50c0887a7a51257f0d007916533) Merged-In: I0cd9cea4e4da4e3a642086c0e3bcc7f00700b199 Change-Id: I0cd9cea4e4da4e3a642086c0e3bcc7f00700b199
2023-06-14Revert "Add some debugging output for b/261719949."Nicolas Geoffray
This reverts commit e9506c96ece6740471cb4576b130628424a042ef. Bug: 261719949 Bug: 286348973 Reason for revert: Remove debugging code. (cherry picked from https://android-review.googlesource.com/q/commit:2c1a89d55d181f39c0a8f0872610543c54e66d7f) Merged-In: If037193aed909263f04a70da33db31e14fd228b2 Change-Id: If037193aed909263f04a70da33db31e14fd228b2
2023-06-12Pass the cache-info fd from odrefresh to dex2oat.Jiakai Zhang
This allows dex2oat in CompOS to read the cache-info file. Otherwise, CompOS will generate invalid artifacts that put the device into JIT Zygote. Bug: 286422732 Test: atest art_standalone_odrefresh_tests Test: (on udc-dev) - 1. adb shell device_config set_sync_disabled_for_tests persistent 2. adb shell device_config put runtime_native_boot enable_uffd_gc true 3. atest odsign_e2e_tests_full:CompOsSigningHostTest Change-Id: I4c6c5fb13a93b58ce53f46cd8d6d9c1e05ecd720 Merged-In: I4c6c5fb13a93b58ce53f46cd8d6d9c1e05ecd720 (cherry picked from commit d609d0762b9d8c473da4fa8de1122733b2a7a50c)
2023-06-10Revert "Update boot image and system server profiles [M28C24P49S0PP]"Karuna Ramkumar
Revert submission 23615721-u-profiles-v10 Reason for revert: DroidMonitor: Potential culprit for Bug b/286550234 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted. Reverted changes: /q/submissionid:23615721-u-profiles-v10 Change-Id: I427313ab62fddf6ae2ece38cff3461220d02091d
2023-06-09Disable startup dex cache arrays.Nicolas Geoffray
They seem to still have issues. Bug: 283632504 Bug: 261719949 (cherry picked from https://android-review.googlesource.com/q/commit:71afbaa0ebced5578ceea1255bbda790f81a8abb) Merged-In: Ia1dc5668e1837a0a1037f6d0cc08eb6c18cc6e01 Change-Id: Ia1dc5668e1837a0a1037f6d0cc08eb6c18cc6e01
2023-06-09Update boot image and system server profiles [M28C24P49S0PP]art-benchmark-service
Bug: 254051423 Test: go/art-benchmark?p=BootImageProfileId:35486&f=CandidateName:in:35492 = Perf stats = (lower is better) Improvements in Startup, no noticeable impact for boot-time and memory at the cost of a slight increase in code size, which could be an acceptable cost. Startup: -2.68% Memory(PSS): -0.44% Boot time: -0.09% Code size (.oat + .art + .odex): 0.60% (0.52 MB increase) Ignore-AOSP-First: Boot image profiles BYPASS_INCLUSIVE_LANGUAGE_REASON: Profile of existing code =Generation Strategy= method_threshold: 0.28 image_class_threshold: 0.24 preloaded_classes_threshold: 0.49 priority_packages_thresholds { key: "services.jar.prof:CLASS:android" value: 0.017142856 } priority_packages_thresholds { key: "services.jar.prof:METHOD:android" value: 0.02 } =Profile stats= Data info: - total aggregations: 1164 - number of (device types, builds): 42 File boot-image-profile.txt - hot methods: 881 added, 679 removed - methods: 881 added, 679 removed - classes: 85 added, 17 removed - totals now: 10305 hot methods, 10305 methods, 3288 classes - totals before: 10103 hot methods, 10103 methods, 3220 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 113, 3, 32, 0, 174, 63 com.android, 65, 25, 18, 0, 1050, 447 java, 574, 533, 24, 0, 7199, 1996 android.icu, 109, 0, 30, 0, 109, 30 android.net, 1, 0, 1, 0, 1, 1 File preloaded-classes - hot methods: 0 added, 0 removed - methods: 0 added, 0 removed - classes: 86 added, 17 removed - totals now: 0 hot methods, 0 methods, 3284 classes - totals before: 0 hot methods, 0 methods, 3215 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 32, 0, 0, 63 com.android, 0, 0, 18, 0, 0, 447 java, 0, 0, 25, 0, 0, 1993 android.icu, 0, 0, 30, 0, 0, 30 android.net, 0, 0, 1, 0, 0, 1 InternalReferenceRawProfileId: 35486 InternalReferenceCandidateProfileId: 35492 Test: build & benchmark Change-Id: If3f8c476c065efb50dbff0df1232711cbba99bf4
2023-06-07Remove superfluous verification from dex2oat am: 094c315126David Srbecky
Original change: https://android-review.googlesource.com/c/platform/art/+/2609049 Bug: 282589477 Merged-In: I01802cb4851cb18ff87f574ec0858c64bc5fd299 Change-Id: I01802cb4851cb18ff87f574ec0858c64bc5fd299 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> (cherry picked from commit 45346476271efc1e1f82d0d206f5cba8bb66a84f)
2023-06-06Revert "Update boot image and system server profiles [M24C20P47S0PP]"Islam Elbanna
Revert submission 23539173-u-profiles-v9 Reason for revert: It seems causing a regression at b/286024404 Reverted changes: /q/submissionid:23539173-u-profiles-v9 Change-Id: Ib85eadd5e753e4ce3bfdbba4a33e5aa96f44a054
2023-06-06Skip checkpoints in StartupCompletedTask when mutator-lock exclusively heldLokesh Gidra
This could happen with semi-space GC. Test: test.py Bug: 282967538 Bug: 260557058 (cherry picked from https://android-review.googlesource.com/q/commit:b0e7f693312b6548ac1bf1edefe2dc4ef7810039) Merged-In: Ib87c7ddb6b2ffa42e60a43a513f804fe0a6da24a Change-Id: Ib87c7ddb6b2ffa42e60a43a513f804fe0a6da24a
2023-06-05Update boot image and system server profiles [M24C20P47S0PP]art-benchmark-service
Bug: 254051423 Test: go/art-benchmark?p=BootImageProfileId:35460&f=CandidateName:in:35466 = Perf stats = (lower is better) Improvements in Startup and boot times, no noticeable impact for memory at the cost of a slight increase in code size, which could be an acceptable cost. Startup: -2.02% Memory(PSS): -0.39% Boot time: -0.60% Code size (.oat + .art + .odex): 1.04% (0.99 MB increase) Ignore-AOSP-First: Boot image profiles BYPASS_INCLUSIVE_LANGUAGE_REASON: Profile of existing code =Generation Strategy= method_threshold: 0.24 image_class_threshold: 0.2 preloaded_classes_threshold: 0.47 priority_packages_thresholds { key: "services.jar.prof:CLASS:android" value: 0.014285714 } priority_packages_thresholds { key: "services.jar.prof:METHOD:android" value: 0.017142856 } =Profile stats= Data info: - total aggregations: 4702 - number of (device types, builds): 128 File boot-image-profile.txt - hot methods: 1222 added, 1003 removed - methods: 1222 added, 1003 removed - classes: 85 added, 17 removed - totals now: 10322 hot methods, 10322 methods, 3288 classes - totals before: 10103 hot methods, 10103 methods, 3220 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 112, 3, 32, 0, 173, 63 com.android, 86, 46, 18, 0, 1050, 447 java, 862, 798, 24, 0, 7222, 1996 android.icu, 109, 0, 30, 0, 109, 30 android.net, 0, 0, 1, 0, 0, 1 File preloaded-classes - hot methods: 0 added, 0 removed - methods: 0 added, 0 removed - classes: 86 added, 17 removed - totals now: 0 hot methods, 0 methods, 3284 classes - totals before: 0 hot methods, 0 methods, 3215 classes per package info as csv (selected): package_name, hot_a, hot_r, cl_a, cl_r, hot_num, cl_num android, 0, 0, 32, 0, 0, 63 com.android, 0, 0, 18, 0, 0, 447 java, 0, 0, 25, 0, 0, 1993 android.icu, 0, 0, 30, 0, 0, 30 android.net, 0, 0, 1, 0, 0, 1 InternalReferenceRawProfileId: 35460 InternalReferenceCandidateProfileId: 35466 Test: build & benchmark Change-Id: If00769f8ce6c02dfb3786a835d0bd7fcb42193c3
2023-05-30[automerger skipped] Delay copy-buffer allotment for uffd compaction until ↵Lokesh Gidra
actual use am: 1733aa10e2 -s ours am skip reason: Merged-In I9201716227e9e7245f20b016ff86558e0842fc53 with SHA-1 684b6c42ab is already in history Original change: https://googleplex-android-review.googlesource.com/c/platform/art/+/23470032 Change-Id: I30f519cb22f0317d486ae0ff9bc53af45453eae8 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-30Delay copy-buffer allotment for uffd compaction until actual useLokesh Gidra
Currently, we allot copy-buffer to mutator threads as soon as a userfault for moving space is received. This could lead to a scenario wherein a lot of mutator threads try to access the same page simultaneously and hence get userfaulted. In this case we would uselessly allot buffers to all mutator threads. In this CL we defer the allotment until it is confirmed that the mutator thread needs the buffer for compaction. Bug: 284289925 Test: art/test/testrunner/testrunner.py (cherry picked from commit 33e2f0e1caecab9c7b681e841e500e87caaa540f) (cherry picked from https://googleplex-android-review.googlesource.com/q/commit:684b6c42ab68ed1c10616ea076c23fb22a5ff354) Merged-In: I9201716227e9e7245f20b016ff86558e0842fc53 Change-Id: I9201716227e9e7245f20b016ff86558e0842fc53
2023-05-26Delay copy-buffer allotment for uffd compaction until actual useLokesh Gidra
Currently, we allot copy-buffer to mutator threads as soon as a userfault for moving space is received. This could lead to a scenario wherein a lot of mutator threads try to access the same page simultaneously and hence get userfaulted. In this case we would uselessly allot buffers to all mutator threads. In this CL we defer the allotment until it is confirmed that the mutator thread needs the buffer for compaction. Bug: 284289925 Test: art/test/testrunner/testrunner.py Change-Id: I9201716227e9e7245f20b016ff86558e0842fc53 (cherry picked from commit 33e2f0e1caecab9c7b681e841e500e87caaa540f) Merged-In: I9201716227e9e7245f20b016ff86558e0842fc53
2023-05-25Clear startup linear alloc when we delete class loaders.Nicolas Geoffray
If the runtime still has a startup linear alloc, and we're deleting class loaders, we may have dangling references in the startup linear alloc. For simplicity, delete the startup linear alloc if we delete class loaders. Test: test.py Bug: 282967538 Bug: 260557058 (cherry picked from https://android-review.googlesource.com/q/commit:c02f2d52791105549268d2fd9b1a2343413917a2) Merged-In: Ieb65ab7c1d0c1965233ebfc9eeac3faa0715a9c0 Change-Id: Ieb65ab7c1d0c1965233ebfc9eeac3faa0715a9c0
2023-05-24Use C++17's [[maybe_unused]] attribute in ARTNicolas Geoffray
Bug: 169680875 Test: mmm art Partial cherry-pick of 78f3c72e8948087352788997a70854dee613352c Merged-In: Ic0cc320891c42b07a2b5520a584d2b62052e7235 Change-Id: Ie15c66578d9a61e86125f4408b9e7d212258f9eb
2023-05-23Clean up libbase(_header) dependencies in libdexfile_support.Martin Stjernholm
We must not depend dynamically on non-NDK libraries in libdexfile_support, because it becomes a prebuilt that has to work on older platforms. (Removing the libbase dependency is a NOP change since no symbols from it are used now.) We also must not re-export any platform header files, because they'll then get added to the include path for the caller and may hide the headers they should be using. Plenty of platform and external headers are still exported by the libdexfile and libdexfile_static prebuilts, but the former isn't a real problem and the latter is an already known problem. Add some comments to discuss both. Test: Build prebuilts on internal git_master-art and use the S prebuilts in a SCv2 tree with ag/19239336 and https://r.android.com/2267725 Bug: 282171830 Bug: 169885605 Ignore-AOSP-First: Will cherry pick to AOSP later Change-Id: Ibff288cd14400015456b04b805efbfd6d76a89a3
2023-05-23Prevent RemoteException from spamming logs (again).Jiakai Zhang
`rethrowFromSystemServer` doesn't fix the problem. After this change, the exception is logged without a stack trace and ignored. Bug: 262207181 Test: atest ArtServiceTests Test: - 1. Make artd crash. 2. See no Java stack trace in the logs. Ignore-AOSP-First: ART Services Change-Id: I29814d9a2be9d9fd6a588286e378735bba980115
2023-05-22Fix the test breakage caused by aosp/2597105.Jiakai Zhang
Bug: 282191456 Test: Presubmit (cherry picked from https://android-review.googlesource.com/q/commit:aeab168ec51e59602e37aaa39b11ec67b2a0e634) Merged-In: I20f400ab635bf043f481a6987eaeb2ce51230899 Change-Id: I20f400ab635bf043f481a6987eaeb2ce51230899
2023-05-22Fix ArtDexFileLoader::GetMultiDexChecksums to handle .dex files properlyJiakai Zhang
Runtime::RegisterAppInfo relies on ArtDexFileLoader::GetMultiDexChecksums to check if the input files have dex code, but that method doesn't propertly return dex_locations if the input is a .dex file. This issue caused profiles not to be written for .dex files. This CL fixes it. Bug: 282191456 Test: art/test.py -b --host -r -t 595-profile-saving Test: m test-art-host-gtest-art_libdexfile_tests (cherry picked from https://android-review.googlesource.com/q/commit:a11d08f3369f6ebd5a40c7e99499f84a6b111c53) Merged-In: Ia8597fa9c7e7c7c9a82df0708fe0867216362423 Change-Id: Ia8597fa9c7e7c7c9a82df0708fe0867216362423
2023-05-22Check whether the APK has code before recording JIT profile information.Jiakai Zhang
In the past, Package Manager created empty profile files for APKs that have code, and the runtime did a file existence check (removed by aosp/2407152). With ART Service, no empty profile files are created, so we have no clue whether the APK has code or not. After this change, the runtime opens the APK to check whether the APK has code or not. This change prevents the runtime from writing bootclasspath profiling info to profile files for APKs that have no code. Such files are not suitable for bootclasspath profiling because ART Service has a file GC that cleans them up during daily bg dexopt. This change admittedly makes `Runtime::RegisterAppInfo` slower because it takes some time to open the APK, but in practice, it's okay because Framework creates a classloader for the APK right after calling `Runtime::RegisterAppInfo`, which also involves opening the APK, and that open will be faster after this change. Bug: 282191456 Test: art/test.py -b --host -r -t 595-profile-saving (cherry picked from https://android-review.googlesource.com/q/commit:1e023a12fe510f259f7f2ca065591719172f3628) Merged-In: If6ed139dcb7993402ded60a3bbd8fc0530a9c20e Change-Id: If6ed139dcb7993402ded60a3bbd8fc0530a9c20e