On Wed, 19 Oct 2022 12:04:49 GMT, Aleksey Shipilev <sh...@openjdk.org> wrote:

> Found this when working on JOL support 
> ([CODETOOLS-7903364](https://bugs.openjdk.org/browse/CODETOOLS-7903364)). If 
> you try to attach to VM running with -XX:ObjectAlignmentInBytes=32, then SA 
> would fail with:
> 
> 
> Caused by: java.lang.RuntimeException: Object alignment 32 not yet supported
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VM.<init>(VM.java:510)
> at jdk.hotspot.agent/sun.jvm.hotspot.runtime.VM.initialize(VM.java:544)
> at 
> jdk.hotspot.agent/sun.jvm.hotspot.HotSpotAgent.setupVM(HotSpotAgent.java:444)
> 
> 
> This code was added by 
> [JDK-6916623](https://bugs.openjdk.org/browse/JDK-6916623), but I don't see a 
> reason why it should only handle 8 and 16 byte alignment.
> 
> Additional testing:
>  - [x] New regression test
>  - [x] Linux x86_64 fastdebug `serviceability/sa`
>     - default
>     - with `-XX:ObjectAlignmentInBytes=16`
>     - with `-XX:ObjectAlignmentInBytes=32`
>     - with `-XX:ObjectAlignmentInBytes=64`
>     - with `-XX:ObjectAlignmentInBytes=128`
>     - with `-XX:ObjectAlignmentInBytes=256`

src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/runtime/VM.java line 505:

> 503: 
> 504:     minObjAlignmentInBytes = getObjectAlignmentInBytes();
> 505:     if (minObjAlignmentInBytes < 8 || minObjAlignmentInBytes > 256 ||

Is it necessary to restrict it to the 8 -> 256 range. I know this is the 
current hotspot restriction, but if hotspot decided to allow a larger range, is 
there any reason SA wouldn't still work?

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

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

Reply via email to