Lost perf between 8u40 and 9 hs-comp

Charles Oliver Nutter headius at headius.com
Tue Mar 3 18:34:55 UTC 2015


Thanks for looking into it Vladimir...I'm standing by to test out anything!

- Charlie

On Tue, Mar 3, 2015 at 10:23 AM, Vladimir Ivanov
<vladimir.x.ivanov at oracle.com> wrote:
> John,
>
>> So let's make hindsight work for us:  Is there a way (either with or
>> without the split you suggest) to more firmly couple the update to the
>> query?  Separating into two operations might be the cleanest way to go, but
>> I think it's safer to keep both halves together, as long as the slow path
>> can do the right stuff.
>>
>> Suggestion:  Instead of have the intrinsic expand to nothing, have it
>> expand to an uncommon trap (on the slow path), with the uncommon trap doing
>> the profile update operation (as currently coded).
>
> Right now, VM doesn't care about profiling logic at all. The intrinsic is
> used only to inject profile data and all profiling happens in Java code.
> Once MHI.profileBoolean is intrinsified (profile is injected), no profiling
> actions are performed.
>
> The only way I see is to inject count bump on pruned branch before issuing
> uncommon trap. Alike profile_taken_branch in Parse::do_if, but it should not
> update MDO, but user-specified int[2]).
>
> It looks irregular and spreads profiling logic between VM & Java code. But
> it allows to keep single entry point between VM & Java (MHI.profileBoolean).
>
> I'll prototype it to see how does it look like on the code level.
>
> Best regards,
> Vladimir Ivanov
>
> _______________________________________________
> mlvm-dev mailing list
> mlvm-dev at openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


More information about the mlvm-dev mailing list