RFR: 8351137: ZGC: Improve ZValueStorage alignment support

Axel Boldt-Christmas aboldtch at openjdk.org
Tue Mar 4 08:39:03 UTC 2025


ZValueStorage only align the allocations to the alignment defined by the storage but ignores the alignment of the types. Right now all usages of our different storages all have types which have an alignment less than or equal to the alignment set by its storage.

I wish to improve this so that types with greater alignment than the storage alignment can be used.

The UB caused by using a type larger than the storage alignment is something I have seen materialise as returning bad address (and crashing) on Windows.

As we use `utilities/align.hpp` for our alignment utilities we only support power of two alignment, I added extra asserts here because we use the fact that `lcm(x, y) = max(x, y)` if both are powers of two. 

Testing:
  * tier 1 through tier 5 Oracle supported platforms
  * GHA

-------------

Commit messages:
 - 8351137: ZGC: Improve ZValueStorage alignment support

Changes: https://git.openjdk.org/jdk/pull/23887/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=23887&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8351137
  Stats: 21 lines in 2 files changed: 14 ins; 0 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/23887.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/23887/head:pull/23887

PR: https://git.openjdk.org/jdk/pull/23887


More information about the hotspot-gc-dev mailing list