RFR: 8305895: Implement JEP 450: Compact Object Headers (Experimental) [v19]
Quan Anh Mai
qamai at openjdk.org
Mon Nov 18 14:41:21 UTC 2024
On Mon, 18 Nov 2024 14:31:52 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
>>> @rkennke Ok, fair enough. As far as I know, we at Oracle do not super care about strict alignment `AlignVector`. But maybe other people care, and have to make that tradeoff between vectorization and small object headers.
>>
>> BTW, this problem is not specific to UseCompactObjectHeaders - I think the same problem would happen with -UseCompressedClassPointers. With uncompressed class-pointers, byte[] would start at offset 20, while long[] start at offset 24. But nobody cares about -UCCP I think.
>>
>> What is the failure mode, though? When running with -UCOH and +AlignVector, would it crash or misbehave? Or would it (silently?) not vectorize? I think we could live with the latter, but not with the former.
>
> @rkennke
>> BTW, this problem is not specific to UseCompactObjectHeaders - I think the same problem would happen with -UseCompressedClassPointers. With uncompressed class-pointers, byte[] would start at offset 20, while long[] start at offset 24. But nobody cares about -UCCP I think.
>
> Sure. But I guess some people will want to run both `AlignVector` and `UseCompactObjectHeaders` in the future. Some machines simply do require strict alignment. So they will have to live with that tradeoff.
@eme64 Tbh I don't see how `AlignVector` can mitigate the issue if strict alignment is required unless the object base is guaranteed to be aligned at least as much as the vector length.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20677#issuecomment-2483230986
More information about the build-dev
mailing list