RFR: 8368518: [s390x] test failure with failed: wrong size of mach node [v2]
Amit Kumar
amitkumar at openjdk.org
Thu Sep 25 10:02:38 UTC 2025
On Thu, 25 Sep 2025 04:12:09 GMT, Amit Kumar <amitkumar at openjdk.org> wrote:
>> Issue:
>>
>> while previous settings:
>>
>> (gdb) p n_size < (current_offset-instr_offset)
>> $7 = true <- now we will end up on the false-assert trap and program will crash.
>> (gdb) p n_size
>> $8 = 104
>> (gdb) p current_offset
>> $9 = 108
>>
>> uint n_size = n->size(C->regalloc());
>> if (n_size < (current_offset-instr_offset)) {
>> MachNode* mach = n->as_Mach();
>> ......
>> assert(false, "wrong size of mach node");
>> }
>>
>>
>> Issue is with VEP offset. After alignment in nmethod_entry_barrier, if MachPrologNode start address is 4 byte aligned, then size will be constant. But if it's not 4 byte aligned then some `nops` will be added by `align()` method in `nmethod_entry_barrier`, after which VEP will not be at correct offset. That offset is being controlled by `InteriorEntryAlignment` and updating it 4 fixes the issue.
>>
>> Fixes the test failures. Tested tier1 with release and fastdebug vm.
>>
>> Moves one comment related to INTPRESSURE, a leftover from previous change.
>
> Amit Kumar has updated the pull request incrementally with one additional commit since the last revision:
>
> Update src/hotspot/share/runtime/flags/jvmFlagConstraintsCompiler.cpp
>
> Co-authored-by: Dean Long <17332032+dean-long at users.noreply.github.com>
Thanks for the approval and reviews!
-------------
PR Comment: https://git.openjdk.org/jdk/pull/27465#issuecomment-3333191552
More information about the hotspot-dev
mailing list