RFR: JDK-8202676: AArch64: Missing enter/leave around barrier leads to infinite loop
Andrew Haley
aph at redhat.com
Sat May 5 08:10:49 UTC 2018
On 04/05/18 22:29, Roman Kennke wrote:
> In aarch64's
> TemplateInterpreterGenerator::generate_Reference_get_entry(void), there
> used to be enter()/leave() calls around the g1 pre-barrier. This is
> necessary in case the barrier calls into the runtime, to setup/remove
> stack frames for the call. With the interpreter BarrierSetAssembler
> work, this seems to have been dropped. It does lead to stack corruption,
> sometimes endless loops, etc.
>
> This patch re-instates the enter() and leave() calls around the barrier
> where they used to be.
>
> http://cr.openjdk.java.net/~rkennke/JDK-8202676/webrev.00/
>
> Can I please get a review?
This is the second time in the last year or so that enter/leave pair has
been deleted by GC engineers! Please stop doing this! :-)
Anyway, I think it now makes more sense for the enter/leave pair to be
in G1BarrierSetAssembler::g1_write_barrier_pre before the
push(saved, sp). It makes more logical sense there.
--
Andrew Haley
Java Platform Lead Engineer
Red Hat UK Ltd. <https://www.redhat.com>
EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
More information about the hotspot-dev
mailing list