From 7162624d70886fc2afc357ab4b0d4ec431e2d1cd Mon Sep 17 00:00:00 2001 From: Damon Fenacci Date: Fri, 6 Oct 2023 09:14:03 +0000 Subject: [PATCH] 8269393: store/load order not preserved when handling memory pool due to weakly ordered memory architecture of aarch64 Reviewed-by: thartmann, aph --- src/hotspot/share/services/memoryPool.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/hotspot/share/services/memoryPool.cpp b/src/hotspot/share/services/memoryPool.cpp index 15210835478..148a595ed4d 100644 --- a/src/hotspot/share/services/memoryPool.cpp +++ b/src/hotspot/share/services/memoryPool.cpp @@ -178,8 +178,13 @@ CodeHeapPool::CodeHeapPool(CodeHeap* codeHeap, const char* name, bool support_us } MemoryUsage CodeHeapPool::get_memory_usage() { - size_t used = used_in_bytes(); - size_t committed = _codeHeap->capacity(); + size_t used; + size_t committed; + { + MutexLocker mu(CodeCache_lock, Mutex::_no_safepoint_check_flag); + used = used_in_bytes(); + committed = _codeHeap->capacity(); + } size_t maxSize = (available_for_allocation() ? max_size() : 0); return MemoryUsage(initial_size(), used, committed, maxSize);