Request Review: 6902182: Starting with jdwp agent should not incur performance penalty
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Wed Dec 9 14:04:15 PST 2009
Why can't you use a flag in the JavaThread instead of performing a runtime call every time? That just seems too expensive and complicated for every exception. I don't think we want this under a flag either. It should be the default behaviour.
By the way, another thing I think you want to fix is this code in runtime.cpp:
if (JvmtiExport::can_post_exceptions()) {
// "Full-speed catching" is not necessary here,
// since we're notifying the VM on every catch.
// Force deoptimization and the rest of the lookup
// will be fine.
deoptimize_caller_frame(thread, true);
}
It should also be checking that someone actually wants to see the exception. There's similar code in c1_Runtime1.cpp. I don't the client compiler needs any other changes to work properly with debug enabled.
tom
On Dec 9, 2009, at 1:31 PM, Deneau, Tom wrote:
> Webrev is at http://cr.openjdk.java.net/~tdeneau/6902182/webrev.01/
>
> This webrev changes two places in the compiler where code for exception
> throws is being JITted.
>
> * previously these checked jvmti_can_post_exceptions() at compile
> time, compiling in a slow path if true
>
> * now they call a new jvmtiExport::must_post_exception_events at
> run time, and take a faster path if must_post_exception_events is
> false.
>
> must_post_exception_events uses logic similar to that used
> by jvmtiExport::post_exception_throw and returns false if
> jvmtiExport::post_exception_throw wouldn't have done anything.
>
> A similar change of calling must_post_exception_events instead of
> jvmti_can_post_exceptions is made in the exception runtime code in
> trace_exception in opto/runtime.cpp
>
> Throughput Numbers from a JIRA-based web workload (JIRA makes fairly heavy use
> of exception throws and catches). Bigger is better.
>
> unmodified hotspot, no jdwp agent 69.7
> unmodified hotspot, with jdwp agent 11.8
> modified hotspot, with jdwp agent 65.7
>
> All changes are platform-independent.
>
> -- Tom Deneau
> tom.deneau at amd.com
>
>
>
More information about the hotspot-compiler-dev
mailing list