8222670 patch review: prevent downgraded tasks from recompiling

Tobias Hartmann tobias.hartmann at oracle.com
Tue May 7 07:18:06 UTC 2019


On 07.05.19 00:49, Liu, Xin wrote:
> Here is the new revision of webrev. It includes the tieredEvent you mentioned. 	
> https://cr.openjdk.java.net/~xliu/8222670/webrev.05/

Looks good to me, I've sponsored the changes:
http://hg.openjdk.java.net/jdk/jdk/rev/1dc9bf9d016b

Thanks,
Tobias

> Paul help me to try the patch in submit repo. It's clean. 
> 
> Thanks,
> --lx
> 
> 
> From: "do-not-reply at oracle.com" <do-not-reply at oracle.com>
> Reply-To: "mach5_admin_ww_grp at oracle.com" <mach5_admin_ww_grp at oracle.com>
> Date: Monday, May 6, 2019 at 11:25 AM
> To: "Hohensee, Paul" <hohensee at amazon.com>
> Subject: [Mach5] mach5-one-phh-JDK-8222670-1-20190506-1730-2299657: PASSED
>  
> Job: mach5-one-phh-JDK-8222670-1-20190506-1730-2299657
> 
> BuildId: 2019-05-06-1725217.hohensee.source
> 
> No failed tests
> 
> Tasks Summary
> 
> NA: 0
> UNABLE_TO_RUN: 0
> PASSED: 76
> HARNESS_ERROR: 0
> EXECUTED_WITH_FAILURE: 0
> KILLED: 0
> FAILED: 0
> NOTHING_TO_RUN: 0
> 
> 
> 
> On 5/3/19, 5:30 AM, "Tobias Hartmann" <tobias.hartmann at oracle.com> wrote:
> 
>     
>     On 03.05.19 02:21, Liu, Xin wrote:
>     > Thanks for the review. I fixed copyrights and  the typo of clearMethodState0.
>     > Here is the new revision. 
>     > https://cr.openjdk.java.net/~xliu/8222670/webrev.04/
>     
>     Looks good to me but I think you should also add:
>     
>     if (PrintTieredEvents) {
>       print_event(REMOVE_FROM_QUEUE, method, method, task->osr_bci(), (CompLevel) task->comp_level());
>     }
>     
>     >     But why is that? If a downgraded compilation succeeded at level 2, shouldn't a re-compilation at the
>     >     same level be detected by CompileBroker::compilation_is_complete() in CompileBroker::compile_method()?
>     >     
>     > That's the very root cause of level2 recompilation. 
>     > In CompileBroker::compile_method(), its input argument is comp_level = 3. 
>     > CompileBroker::compilation_is_complete returns false because codecache only has level=2 nmethod. 
>     > I don't know why, but hotpsot is also very stubborn.  It will request level = 3 again and again.  All of them are downgraded to level=2 when they dequeue. 
>     > 
>     > Level2RecompilationTest simulates this process. I didn't make it up. I observe the symptom in some real services as follows. 
>     > https://bugs.openjdk.java.net/secure/attachment/82079/lvl2_recomp_spring.log.zip 
>     
>     Okay, got it.
>     
>     Thanks,
>     Tobias
>     
> 


More information about the hotspot-compiler-dev mailing list