RFR: Update nmethod caching and clean up unused/duplicate methods [v8]
Vladimir Kozlov
kvn at openjdk.org
Mon Jun 16 18:36:50 UTC 2025
On Mon, 16 Jun 2025 15:55:52 GMT, Ashutosh Mehra <asmehra at openjdk.org> wrote:
>> If @adinn don't have any more comments you can integrate.
>>
>> We may need few more AOT fixes in mainline before marge from it.
>
> GHA passed. Thanks @vnkozlov and @adinn for the reviews.
@ashu-mehra I submitted testing after this was integrated and one closed test crashed on MacOS-aarch64 during "product" run when GC trying to purge nmethod:
# Internal Error (/workspace/open/src/hotspot/share/nmt/mallocHeader.inline.hpp:107), pid=55426, tid=16643
# fatal error: NMT corruption: Block at 0x00000001209f4088: header canary broken
#
# JRE version: Java(TM) SE Runtime Environment (25.0) (fastdebug build 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden)
# Java VM: Java HotSpot(TM) 64-Bit Server VM (fastdebug 25-internal-LTS-2025-06-16-1707161.vladimir.kozlov.leyden, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-aarch64)
Stack: [0x000000016e2fc000,0x000000016e4ff000], sp=0x000000016e4fddf0, free space=2055k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V [libjvm.dylib+0x127c010] VMError::report(outputStream*, bool)+0x1b00 (mallocHeader.inline.hpp:107)
V [libjvm.dylib+0x127f8b8] VMError::report_and_die(int, char const*, char const*, char*, Thread*, unsigned char*, void const*, void const*, char const*, int, unsigned long)+0x55c
V [libjvm.dylib+0x5cf650] DebuggingContext::~DebuggingContext()+0x0
V [libjvm.dylib+0xdeed80] MallocHeader* MallocHeader::resolve_checked_impl<void*, MallocHeader*>(void*)+0x19c
V [libjvm.dylib+0xdee630] MallocTracker::record_free_block(void*)+0x44
V [libjvm.dylib+0xf20f84] os::free(void*)+0xa8
V [libjvm.dylib+0xec194c] nmethod::purge(bool)+0x158
V [libjvm.dylib+0x4d5fe0] ClassUnloadingContext::purge_nmethods()+0xac
V [libjvm.dylib+0x71961c] G1CollectedHeap::unload_classes_and_code(char const*, BoolObjectClosure*, GCTimer*)+0x434
V [libjvm.dylib+0x72dd40] G1ConcurrentMark::remark()+0x2b0
V [libjvm.dylib+0x7f67e4] VM_G1PauseConcurrent::doit()+0x1b8
V [libjvm.dylib+0x128743c] VM_Operation::evaluate()+0x11c
V [libjvm.dylib+0x12a4e20] VMThread::evaluate_operation(VM_Operation*)+0x114
V [libjvm.dylib+0x12a5924] VMThread::inner_execute(VM_Operation*)+0x320
V [libjvm.dylib+0x12a4ad0] VMThread::loop()+0x98
V [libjvm.dylib+0x12a4868] VMThread::run()+0xc0
V [libjvm.dylib+0x11be0d4] Thread::call_run()+0xf0
V [libjvm.dylib+0xf28da4] thread_native_entry(Thread*)+0x140
C [libsystem_pthread.dylib+0x726c] _pthread_start+0x94
VM_Operation (0x000000016dac2bf0): G1PauseRemark, mode: safepoint, requested by thread 0x0000000147841810
-------------
PR Comment: https://git.openjdk.org/leyden/pull/71#issuecomment-2977654682
More information about the leyden-dev
mailing list