RFR: 8364235: Fix for JDK-8361447 breaks the alignment requirements for GuardedMemory

Kim Barrett kbarrett at openjdk.org
Tue Jul 29 06:47:55 UTC 2025


On Tue, 29 Jul 2025 06:32:20 GMT, David Holmes <dholmes at openjdk.org> wrote:

> The fix for [JDK-8361447](https://bugs.openjdk.org/browse/JDK-8361447) added a new field to the `GuardHeader`, not realizing that the size of the `GuardHeader` must be such that the address of the user-data has the strictest necessary alignment (16-byte).
> 
> We need to add a padding field to restore the alignment.
> 
> A static assert is added to check the alignment.
> 
> Testing:
>  - tiers 1-3 (in progress)
> 
> Thanks

src/hotspot/share/memory/guardedMemory.hpp line 143:

> 141:     friend class GuardedMemory;
> 142: 
> 143:     void* padding; // Ensures 16-byte alignment

I'm not sure how this does anything for alignment, other than perhaps because the ABI happens to make
the desired alignment happen somehow.

But why not use `alignas(16)` somewhere?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/26524#discussion_r2238697795


More information about the hotspot-runtime-dev mailing list