On Thu, 27 Nov 2025 07:46:36 GMT, Shawn M Emery <[email protected]> wrote:

>> Jiangli Zhou has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Address @smemery's comments:
>>   - Add @requires
>>   - Shorten long lines
>
> src/hotspot/cpu/x86/stubGenerator_x86_64_aes.cpp line 4026:
> 
>> 4024:   //process 8 16 byte blocks at a time until all are done 
>> 'encrypt_by_8_new  followed by ghash_last_8'
>> 4025:   __ xorl(pos, pos);
>> 4026:   __ cmpl(len, 128);
> 
> Was this part of the original problem?  I was trying to trace where this is 
> called with < 128 bytes and couldn't find the path.

As I documented in JDK-8371864 description, there was also a bug in AVX2 
version of the intrinsic, `StubGenerator::aesgcm_avx2`. Hence the bug title 
mentioned both AVX512 and AVX2 intrinsics stubs. 

The failure can be reproduced if you run `TestGCMSplitBound.java` on a machine 
supports AVX2 but not AVX512 features. You would need to find a x64 machine 
that supports AVX2 but not AVX512 features. See 
[StubGenerator::generate_aes_stubs()](https://github.com/openjdk/jdk/blob/195b36f90b789b64f4a0fc867c620935d609a455/src/hotspot/cpu/x86/stubGenerator_x86_64_aes.cpp#L209)
 for how it decides which version of the stub is used.

On my local machine with AVX2 support, `TestGCMSplitBound.java` fails without 
the fix:

test result: Failed. Execution failed: `main' threw exception: 
java.lang.RuntimeException: Failed for messageSize 100001

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28363#discussion_r2570548349

Reply via email to