Integrated: 8368518: [s390x] test failure with failed: wrong size of mach node
Amit Kumar
amitkumar at openjdk.org
Thu Sep 25 10:02:39 UTC 2025
On Wed, 24 Sep 2025 11:11:12 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.
This pull request has now been integrated.
Changeset: 44cb9cad
Author: Amit Kumar <amitkumar at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/44cb9cad263b4fe2749fd6c223b657d77dca5119
Stats: 6 lines in 3 files changed: 1 ins; 3 del; 2 mod
8368518: [s390x] test failure with failed: wrong size of mach node
Reviewed-by: dlong, mdoerr, lucy
-------------
PR: https://git.openjdk.org/jdk/pull/27465
More information about the hotspot-dev
mailing list