RFR: 8343767: Enumerate StubGen blobs, stubs and entries and generate code from declarations [v6]
Andrew Dinn
adinn at openjdk.org
Wed Nov 27 13:31:44 UTC 2024
On Wed, 27 Nov 2024 02:53:01 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:
>> Andrew Dinn has updated the pull request incrementally with one additional commit since the last revision:
>>
>> fix issue with x86 avx3 array copy
>
> Thanks, test results look much better now. Finally hit code buffer overflow on x86 you mentioned earlier (so far, single occurrence).
>
> It happened on windows-x64 w/ AVX512 (Ice Lake SP) and ZGC enabled.
>
> # Internal Error (.../codeBuffer.hpp:200), pid=12224, tid=45132
> # assert(allocates2(pc)) failed: not in CodeBuffer memory: 0x0000022aa93c4860 <= 0x0000022aa93d14c1 <= 0x0000022aa93d14c0
>
> It crashed at the very end in `generate_final_stubs`.
>
> report_vm_error+0x5b (debug.cpp:193)
> CodeSection::set_end+0x97 (codeBuffer.hpp:200)
> Assembler::movdqu+0x12a (assembler_x86.cpp:3450)
> MacroAssembler::movdqu+0xb8 (macroAssembler_x86.cpp:2639)
> ZRuntimeCallSpill::restore+0x7a (zBarrierSetAssembler_x86.cpp:122)
> ZBarrierSetAssembler::load_at+0x2ae (zBarrierSetAssembler_x86.cpp:280)
> MacroAssembler::access_load_at+0x127 (macroAssembler_x86.cpp:6038)
> MacroAssembler::load_heap_oop+0x98 (macroAssembler_x86.cpp:6057)
> StubGenerator::generate_upcall_stub_load_target+0x19e (stubGenerator_x86_64.cpp:3989)
> StubGenerator::generate_final_stubs+0x41a (stubGenerator_x86_64.cpp:4171)
>
>
> I checked on `linux-x64` and the space is pretty tight there with ZGC and AVX512 enabled:
>
> $ jdk/bin/java -XX:UseAVX=3 -XX:+UseZGC -XX:+ForceUnreachable -Xlog:stubs
> ...
> [0.372s][info][stubs] StubRoutines (finalstubs) [0x00007fdd87bc99e0, 0x00007fdd87bd5e70] used: 46091, free: 4229
> ...
> ```
>
> Do you expect any increase in total stub sizes from your changes?
@iwanowww Thanks for rerunning the tests. Glad to see we at least made it through bootstrapping the jmod image.
> Do you expect any increase in total stub sizes from your changes?
Hmm, no. Certainly nothing significant. I did not touch the generation routines themselves. The only thing that ought to be different is some of the stub names. I'll recheck the arch blob declarations to see if the sizings pre- and post-merge match up.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21957#issuecomment-2503881259
More information about the hotspot-dev
mailing list