8357155: [asan] ZGC does not work (x86_64 and ppc64)

Co-authored-by: Axel Boldt-Christmas <aboldtch@openjdk.org>
Reviewed-by: mdoerr, aboldtch
This commit is contained in:
Matthias Baesken 2025-06-04 09:06:46 +00:00
parent ab23500034
commit cd16b68962
2 changed files with 9 additions and 0 deletions

View File

@ -93,10 +93,15 @@ static size_t probe_valid_max_address_bit() {
size_t ZPlatformAddressOffsetBits() {
static const size_t valid_max_address_offset_bits = probe_valid_max_address_bit() + 1;
const size_t max_address_offset_bits = valid_max_address_offset_bits - 3;
#ifdef ADDRESS_SANITIZER
// The max supported value is 44 because of other internal data structures.
return MIN2(valid_max_address_offset_bits, (size_t)44);
#else
const size_t min_address_offset_bits = max_address_offset_bits - 2;
const size_t address_offset = ZGlobalsPointers::min_address_offset_request();
const size_t address_offset_bits = log2i_exact(address_offset);
return clamp(address_offset_bits, min_address_offset_bits, max_address_offset_bits);
#endif
}
size_t ZPlatformAddressHeapBaseShift() {

View File

@ -30,11 +30,15 @@
size_t ZPointerLoadShift;
size_t ZPlatformAddressOffsetBits() {
#ifdef ADDRESS_SANITIZER
return 44;
#else
const size_t min_address_offset_bits = 42; // 4TB
const size_t max_address_offset_bits = 44; // 16TB
const size_t address_offset = ZGlobalsPointers::min_address_offset_request();
const size_t address_offset_bits = log2i_exact(address_offset);
return clamp(address_offset_bits, min_address_offset_bits, max_address_offset_bits);
#endif
}
size_t ZPlatformAddressHeapBaseShift() {