summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-02-14Refactor ElfFile. am: 1a3ce3502d Jiakai Zhang
Original change: https://android-review.googlesource.com/c/platform/art/+/3477474 Change-Id: If747c4af210ad7561ef5a5c5214e7e1fd4d194b3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-14Refactor OatFileAssistant - Step 3. am: 1802832343 Jiakai Zhang
Original change: https://android-review.googlesource.com/c/platform/art/+/3475953 Change-Id: Ib50c7ac1cb8bf03631ff97b431c42b005eabe23b Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-14Refactor OatFileAssistant - Step 2. am: bde490d3c2 Jiakai Zhang
Original change: https://android-review.googlesource.com/c/platform/art/+/3474808 Change-Id: I3dbe757fd69e7a72f0133d3d41fb6d952d01d3fb Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-14Revert^2 "Remove old and duplicated logic in picking up the best artifact." ↵ Jiakai Zhang
am: 153ccc814f Original change: https://android-review.googlesource.com/c/platform/art/+/3473928 Change-Id: I88c8f2c458a6f5723660e3fd21ef1e7a1f4a27c5 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-14Refactor ElfFile. Jiakai Zhang
Use C++ inheritance to simplify the code. Bug: 377474232 Test: art/test.py --host -g Change-Id: Ia504eea439f3d939657205ddc1cb344279b7a4ad
2025-02-14Refactor OatFileAssistant - Step 3. Jiakai Zhang
After this change, error messages in OatFileAssistant are all propagated along the way to `GetBestInfo` and logged there. This change reduces the amount of artd log by 82%. Before: https://paste.googleplex.com/4527623093616640 After: https://paste.googleplex.com/4842357558870016 As we are adding two more paths to check, for SDM files, reducing the amount of artd log becomes more critical than before. Otherwise, the log spamming problem will get even worse. Bug: 377474232 Bug: 345762752 Test: adb shell pm art dump Change-Id: I34cdd7228fb063466c86511610687f831ae465ad
2025-02-14Refactor OatFileAssistant - Step 2. Jiakai Zhang
This change contains some behavioral changes. Particularly, - Consolidate dm_for_oat_ and dm_for_odex_ into one: They are duplicates. - Only check IsUseable if the file exists: This reduces some logging. - Propagate the error message of VdexFile::OpenFromDm to the parent. Bug: 377474232 Bug: 345762752 Test: atest art_standalone_runtime_tests Change-Id: Ia75b7f5b00ca06dda77204a562c6761ef2d5eecf
2025-02-14Revert^2 "Remove old and duplicated logic in picking up the best artifact." Jiakai Zhang
This reverts commit 3796e88d5d9a6ecc095d32e5ebde11b9f27fef6b. Reason for revert: Fixed the issue with the original change. The key is that the oat location must be prioritized over the odex location. No regression on app startup observed after the change. Before: 297.61ms https://dashboards.corp.google.com/android-crystalball.dashboards.invocation_viewer?f=ants_invocation_id:eq:I84300010361891674&fb=metric_key:in:perfetto_android_startup-com.google.android.GoogleCamera-hsc-full_startup-dur_ms-mean&fh=eJxdzLEKAjEQhOF32foa03jeG1hfeRwSNgsubvSIkyKI754sdpbzwT_bhzTRQllQlG8PaTQRv6zm57-iHTLsLSaMsVNEXA_hq_fz-TKHU_D4Hgvctn2iXA26_ooFpcq4UZj_0HfvH00onw.. After: 295.42ms https://dashboards.corp.google.com/android-crystalball.dashboards.invocation_viewer?f=ants_invocation_id:eq:I37700010361929468&fb=metric_key:in:perfetto_android_startup-com.google.android.GoogleCamera-hsc-full_startup-dur_ms-mean&fh=eJxdzLEKAjEQhOF32foa03jeG1hfeRwSNgsubvSIkyKI754sdpbzwT_bhzTRQllQlG8PaTQRv6zm57-iHTLsLSaMsVNEXA_hq_fz-TKHU_D4Hgvctn2iXA26_ooFpcq4UZj_0HfvH00onw.. Bug: 377474232 Test: Presubmit Change-Id: I0c291f195151fdb3b7ea2b63a8015bc8a792a7cd
2025-02-14Update dirty-image-objects generation how-to am: 4ef61af6f7 Dmitrii Ishcheikin
Original change: https://android-review.googlesource.com/c/platform/art/+/3480551 Change-Id: I3bdcd69a13f6cc443b144e1e3f103ba417133696 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-14Update dirty-image-objects generation how-to Dmitrii Ishcheikin
Test: ./ati_download_artifacts.py --invocation-id I79100010355578895 --invocation-id I84900010357346481 Test: ./compare_imgdiag_runs.py I79100010355578895 I84900010357346481 Change-Id: Ia6813366a3a3f5d9dd6be9fd84f8a5440276ab4f
2025-02-14Fix deallocation of OatHeader. am: 99f6baed65 Nicolas Geoffray
Original change: https://android-review.googlesource.com/c/platform/art/+/3494817 Change-Id: I75ec22f61185ff79e109a784ceee82f0b935e85d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-14Fix deallocation of OatHeader. Nicolas Geoffray
Introduce a helper method to deallocate it. Test: gtest and run-tests with asan Change-Id: I8cbdaf4025273759671f6cbe4b38e2634aeb4163
2025-02-13Double suspend timeouts for user builds am: 0b5b2f22f2 Hans Boehm
Original change: https://android-review.googlesource.com/c/platform/art/+/3490330 Change-Id: I4bbd1e6afb795fe128e5a3e9a6cffe538fb57d34 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13Double suspend timeouts for user builds Hans Boehm
This trades fewer crashes on user builds against worse diagnostic information. We expect many of these crashes to turn into ANRs. We may want to raise these timeouts even further. We do not want to eliminate them, since presumable not all cases will eventually be detected as ANRs. Test: Treehuger Bug: 330444460 Bug: 384107236 (and many other bugs) Change-Id: I13998c30d00e54b1555b1ae63a13707483ac7354
2025-02-13Account for the new debug store footer in libartpalette tests am: 506532f701 Mohamad Mahmoud
Original change: https://android-review.googlesource.com/c/platform/art/+/3494410 Change-Id: I1303d5ff96dfe5a47460bae286a445238c12c2fe Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13Extend suspend timeout for debug activities am: 4bcbbe50ab Hans Boehm
Original change: https://android-review.googlesource.com/c/platform/art/+/3463910 Change-Id: Ie15b71b367e6b82ec6539b6098a553b80ce2b6b6 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13Account for the new debug store footer in libartpalette tests Mohamad Mahmoud
Bug: 396234530 Test: atest Change-Id: I7c957b92963c96e6425900e259a82a15415704ca
2025-02-13Extend suspend timeout for debug activities Hans Boehm
Extend the debugging suspend timeout substantially if it appears we are running concurrently with an ANR dump. There is some concern that we may be regularly getting suspend timeouts because too many cycles are devoted to an ANR dump at the time. Extend it almost indefinitely if the cuplrit thread is in a tracing stop 't' state. This makes debugging slightly easier, and should reduce the number of spurious bug reports we have to process. Add GetOsThreadStatQuick test and include minimal test for GetStateFromStatString. Bug: 330444460 Bug: 392053307 Test: Treehugger Change-Id: I820e7283fda84fa9fd9820ff9948b992e10547ec
2025-02-13s/oat_location/oat_filename/ when opening an oat file am: f937d3d230 Yu-Ting Tseng
Original change: https://android-review.googlesource.com/c/platform/art/+/3489382 Change-Id: I196a82d085cbc94bce4c0c772fcf95890580128c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13s/oat_location/oat_filename/ when opening an oat file Yu-Ting Tseng
VMDebug_getExecutableMethodFileOffsetsNative includes the output of OatFile::GetLocation() in its return value and this location is supposed to point to the actual file on device. However, the existing code returns an nonexistent path like /system/framework/boot-framework.oat, whereas the actual file is located under /system/framework/arm64. This change fixes the issue by passing the actual file path as oat location into OatFile. This way OatFile::GetLocation() would return the actual path. Bug: 395993265 Test: atest uprobestats-test Change-Id: I072298a4078c9bf1b89fc71e5ab7148e8b56114c
2025-02-13verifier: Clean up `return*` instruction verification. am: a334d1c710 Vladimir Marko
Original change: https://android-review.googlesource.com/c/platform/art/+/3494290 Change-Id: Ibbd7f83c4a70709ef5bb7902123ee95579187c0c Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13verifier: Clean up `return*` instruction verification. Vladimir Marko
When `RegisterLine::CheckConstructorReturn()` returns false, we have a pending hard failure. Also clean up `array-length` verification. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: If4823f9dc88ed783795338e8489c2deacf790ca3
2025-02-13Add a flag for virtual thread am: d7a557c867 Victor Chang
Original change: https://android-review.googlesource.com/c/platform/art/+/3492393 Change-Id: I671cf57a2ed41944baae67b8a51251b33c2ab20f Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13Use HInstructionIteratorHandleChanges again in RTP am: e6e5f771a6 Santiago Aboy Solanes
Original change: https://android-review.googlesource.com/c/platform/art/+/3488834 Change-Id: Ic9c0bfe3a6a644b190d7bfcd97c82bfc8d34e6e1 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-13Use HInstructionIteratorHandleChanges again in RTP Santiago Aboy Solanes
In http://r.android.com/2952876 we changed the RTP iterator to HInstructionIterator, but we want the HandleChanges one. Test: art/test/testrunner/testrunner.py --host --64 -b --optimizing Change-Id: I1e9e9cc84d45aa34c24a805f16798e86fd123fc3
2025-02-13Fix unnecessary warnings on embedded profile not found. am: 9a36de5022 Jiakai Zhang
Original change: https://android-review.googlesource.com/c/platform/art/+/3488793 Change-Id: I7083c9826479a60297d1c73d789ee3e407240940 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-13Fix unnecessary warnings on embedded profile not found. Jiakai Zhang
Before this change, artd checks the error message returned from ZipArchive::Find against a hardcoded string to tell if the entry is not found, to decide whether it should log. https://r.android.com/3426849 broke this unreliable approach, causing artd to log warnings in the case of the embedded profile being not found, which is supposed to be expected. This CL fixes it by adding a new method `ZipArchive::FindOrNull` that does not treat entry not found as an error. Bug: 317513933 Change-Id: Ie3c3590d0eeabe9f8a72538534091e8019f8250a Test: Presubmit
2025-02-12Reland "Avoid moving old-gen object to young-gen in generational CMC" am: ↵ Lokesh Gidra
8ad405adff Original change: https://android-review.googlesource.com/c/platform/art/+/3489378 Change-Id: I0ac7c0a21b547c801854538bf62ea90fc78db2a3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-12Reland "Avoid moving old-gen object to young-gen in generational CMC" Lokesh Gidra
This reverts commit b53c968c4b4218cbee554de3ad1c9c630a9b6b2e. Reason for revert: Fix non-gen CMC failures and few other trivial changes. Change-Id: I1f9f5c5b504e654fcbb08a48114e96dfd8b25603 Test: ART_USE_READ_BARRIER=false art/tools/run-libcore-tests.sh --mode=host --variant=X64 --debug --gcstress Test: ART_USE_READ_BARRIER=false ART_USE_GENERATIONAL_GC=false art/test/testrunner/testrunner.py --host Test: atest CtsPackageManagerTestCases (on aosp cuttlefish device) Bug: 392794369
2025-02-12Improve cleanup robustness after adb push failures. am: 9c9ef3f501 Martin Stjernholm
Original change: https://android-review.googlesource.com/c/platform/art/+/3489271 Change-Id: Ia1a977a0fa5ee66fb83421032a3f80a44f888382 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-12Improve cleanup robustness after adb push failures. Martin Stjernholm
Should fix `Cannot invoke "String.split(String)" because "pathList" is null` seen in those cases. Change-Id: I4bcd4e7c905017e25f83a47790d8552c7d94258e Test: presubmits Bug: 395130114
2025-02-12Add implemention of j.i.m.Unsafe::allocateInstance. am: 8b9c4525fc Almaz Mingaleev
Original change: https://android-review.googlesource.com/c/platform/art/+/3489310 Change-Id: I65c00258ccafcffb766e128c31a9fde66dd0ff2e Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-12Add implemention of j.i.m.Unsafe::allocateInstance. Almaz Mingaleev
Apparently it was missing. Bug: 383294556 Test: presubmit Change-Id: I1204c0187daf2a9a5492131f6b7560fbdaae1f93
2025-02-12Potential buffer overflow in environment local storage am: 632aaa397e shivam tiwari
Original change: https://android-review.googlesource.com/c/platform/art/+/3464892 Change-Id: Ia4159b024b0ac615612be10609e2c3cd00726477 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-12Potential buffer overflow in environment local storage shivam tiwari
strcpy can potentially cause a buffer overflow if the length of options exceeds the allocated buffer size. strlen(options) + 1 ensures that the buffer is large enough to hold the string options plus the null terminator Change-Id: Id04367df0eef575da258ed1c917aa879b2966013
2025-02-11Revert "Avoid moving old-gen object to young-gen in generational CMC" am: ↵ Lokesh Gidra
b53c968c4b Original change: https://android-review.googlesource.com/c/platform/art/+/3489999 Change-Id: I5830603735c1be82fbf39d12dd7d1926ee59479d Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11Revert "Avoid moving old-gen object to young-gen in generational CMC" Lokesh Gidra
This reverts commit dd33afc86bf313c205d28cfba436658aa7a78c4c. Reason for revert: Newly added assertion failure for non-gen-CMC LUCI targets Change-Id: Ie3c13f2dc9d2dfada38d00b8f15c19724e1e985e
2025-02-11FindProtoId: avoid UB on empty signature_type_idxs am: 6990f50c75 Ryan Prichard
Original change: https://android-review.googlesource.com/c/platform/art/+/3488095 Change-Id: I06a5e970a7c5f40dfa79c5a3aeed0be19fdc54f1 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11FindProtoId: avoid UB on empty signature_type_idxs Ryan Prichard
Bug: http://b/395138850 Test: m art_standalone_libdexfile_tests && \ adb root && adb sync data && \ adb shell /data/nativetest64/art_standalone_libdexfile_tests/art_standalone_libdexfile_tests64 --gtest_filter='*FindProtoId*' --no_isolate Change-Id: Ie3e27c4d2e18b152f1a7a5123422d71422cbcc37
2025-02-11Remove more dead code for ELF file. am: 9dd0dc2b89 Jiakai Zhang
Original change: https://android-review.googlesource.com/c/platform/art/+/3478731 Change-Id: I3f9aa8e6257826004dff469e8148f665b98371b3 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11Remove dead code for ELF file. am: ac94fdd1de Jiakai Zhang
Original change: https://android-review.googlesource.com/c/platform/art/+/3477473 Change-Id: Ib8de78df5d8b8a505b577679c92e4ee26a0fb2b2 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11Remove required on i18n apex am: 5b9aac8979 Colin Cross
Original change: https://android-review.googlesource.com/c/platform/art/+/3453342 Change-Id: I347682e60a23d16c7c7d2790d62d5e2911d22442 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11Avoid moving old-gen object to young-gen in generational CMC am: dd33afc86b Lokesh Gidra
Original change: https://android-review.googlesource.com/c/platform/art/+/3483190 Change-Id: If32f47d140125b722e7e2e705c1a58e34e611192 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11Remove more dead code for ELF file. Jiakai Zhang
`writable` is always false. `program_header_only` is always true except for in some tests. The code that obtains information through ElfFile with `program_header_only=true` in tests are replaced by code that uses libelf. Bug: 377474232 Bug: 6527146 Test: art/test.py --host -g Change-Id: Icc9b4dbae612a90f54b50e090e191fad0a19f709
2025-02-11Remove dead code for ELF file. Jiakai Zhang
We don't want to maintain it anymore, as we are making changes to support SDM files. Bug: 377474232 Bug: 6527146 Test: art/test.py --host -g Change-Id: Iee64b96132ce620f6ee47c6846011299f9db2306
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-11Avoid moving old-gen object to young-gen in generational CMC Lokesh Gidra
There were cases (typically during a full-heap collection) that some object was being moved from old-gen to young-gen. This was happening in few corner cases. The cases were either when we skipped compaction (as the objects were too densely packed), or due to aligning down the mid-gen. Moving an object from old-gen to young-gen causes correctness problems as this way we miss dirtying the corresponding card if it contains native-roots to young-gen. In this CL, we correctly adjust the generation boundaries whenever compaction is skipped. Also, mid-gen boundary is aligned up (instead of down). This ensures that once an object is promoted to old-gen, it may get back to mid-gen, which again gets consumed by old-gen, but never gets back to young gen. Test: ART_USE_READ_BARRIER=false art/tools/run-libcore-tests.sh --mode=host --variant=X64 --debug --gcstress Test: atest CtsPackageManagerTestCases (on aosp cuttlefish device) Bug: 392794369 Change-Id: I4472b34af3cbf409b2e0478e337c62ffc45c89f5
2025-02-11verifier: Keep locking info for no-op move-object. am: 01a7d31673 Vladimir Marko
Original change: https://android-review.googlesource.com/c/platform/art/+/3469039 Change-Id: I2c45b605a1be4aa5fb6ea820861f79ea1abcf610 Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2025-02-11verifier: Keep locking info for no-op move-object. Vladimir Marko
Refactor `move{,-wide,-object}` verification. Make sure we keep the locking info for no-op `move-object vN, vN`. Refactor `monitor-enter` and `monitor-exit` verification as well because the former used the same helper functions as `move-object`. Bail out on a hard failure - previously, we'd keep processing previous instructions and use helper functions that can add an additional hard failure. Test: m test-art-host-gtest Test: testrunner.py --host --optimizing Change-Id: I2d76812ecf1b8232b4a5da0426461d6f572da13b