RFR(XS): Provide information when hitting a HaltNode for architectures other than x86
Doerr, Martin
martin.doerr at sap.com
Wed May 27 14:12:07 UTC 2020
Hi Xin,
I think Andrew's trap based version will be much better. But I'll leave the AArch64 part up to other people.
> Another thing is I don't understand what's the benefit to
> use the signal handler for that.
Shorter code in the code cache (signal handler takes care of saving registers), better hs_err file (includes registers and instructions at the point at which the signal occurred, better stack trace: no nasty C-frames).
Best regards,
Martin
> -----Original Message-----
> From: Liu, Xin <xxinliu at amazon.com>
> Sent: Mittwoch, 27. Mai 2020 00:58
> To: aph at redhat.com; Ningsheng Jian <ningsheng.jian at arm.com>; aarch64-
> port-dev at openjdk.java.net
> Cc: Doerr, Martin <martin.doerr at sap.com>; hotspot-compiler-
> dev at openjdk.java.net
> Subject: Re: RFR(XS): Provide information when hitting a HaltNode for
> architectures other than x86
>
> Hi,
>
> I make a new revision of JDK-8230552. May I ask the arm reviewers to take a
> look?
> http://cr.openjdk.java.net/~xliu/8230552/01/webrev/
>
> I haven't made aarch64 stop() uses the trap mechanism because it deserves
> a standalone JBS. Another thing is I don't understand what's the benefit to
> use the signal handler for that.
>
> I do manage to reduce stop() code size per Ningsheng's request. It avoids
> from generating pusha if ShowMessageBoxOnError is off (default). It still acts
> as expect no matter ShowMessageBoxOnError is set or not. Since we now
> have got rid of the HaltNode right after Uncommon_trap callnode in release
> build, I don't think code bloat is an issue anymore.
>
> Thanks,
> --lx
>
>
>
> On 5/6/20, 1:19 AM, "aph at redhat.com" <aph at redhat.com> wrote:
>
> CAUTION: This email originated from outside of the organization. Do not
> click links or open attachments unless you can confirm the sender and know
> the content is safe.
>
>
>
> On 5/6/20 8:25 AM, Liu, Xin wrote:
> > Currently in AArch64 MacroAssembler::stop(), it will generate many
> > register saving instructions by pusha() before calling to debug64(). But
> > I think debug64() only uses the regs[] and pc arguments when
> > ShowMessageBoxOnError is on. Maybe we should at least only do the
> saving
> > and pc arg passing when ShowMessageBoxOnError is on in
> > MacroAssembler::stop(), as what x86 does in
> macroAssembler_x86.cpp?
>
> Maybe we should think about a better way to do it. All we have
> to do, after all, is put the reason into, say, r8, and execute
> a trap. We don't need to push and pop anything because the trap
> handler will do that.
>
> --
> Andrew Haley (he/him)
> Java Platform Lead Engineer
> Red Hat UK Ltd. <https://www.redhat.com>
> https://keybase.io/andrewhaley
> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
>
More information about the hotspot-compiler-dev
mailing list