RFR: 8240353: AArch64: missing support for -XX:+ExtendedDTraceProbes in C1
Nick Gasson
nick.gasson at arm.com
Mon Mar 9 07:00:59 UTC 2020
Hi,
Bug: https://bugs.openjdk.java.net/browse/JDK-8240353
Webrev: http://cr.openjdk.java.net/~ngasson/8240353/webrev.0/
Runtime1::generate_code_for is missing an implementation for dtrace_object_alloc and LIR_Assembler::emit_unwind_handler is missing a call to SharedRuntime::dtrace_method_exit.
Currently the interpreter always checks the value of DTraceMethodProbes on every method entry/exit, but as far as I can tell, this value can only be changed after startup by share/services/dtraceAttacher.cpp and that is only built on Solaris. With this patch the interpreter code to enable these probes is only generated if the appropriate command line options are passed. Might be worth making the same change in the other non-Solaris ports. MacroAssembler::SkipIfEqual is unused now so could be removed.
Tested jtreg hotspot_all_no_apps and jdk tier1 with -XX:+ExtendedDTraceProbes.
Also used bpftrace to check the method_entry, method_return, and object_alloc probes are triggered correctly. E.g.
bpftrace -e 'usdt::hotspot:method__entry { printf("tid:%d, class:%s, name:%s, sig:%s\n", arg0, str(arg1, arg2), str(arg3, arg4), str(arg5, arg6)); }' -p `pidof java`
But this needs the very latest bpftrace/libbcc due to some other issues on AArch64.
Thanks,
Nick
More information about the hotspot-compiler-dev
mailing list