RFR: 8073543: Circular include dependency between psScavenge.inline.hpp and psPromotionManager.inline.hpp

Bengt Rutisson bengt.rutisson at oracle.com
Mon Feb 23 08:46:57 UTC 2015


Hi StefanK,

Looks good.

Thanks,
Bengt



On 2015-02-20 14:14, Stefan Karlsson wrote:
> Hi,
>
> Please review this patch to fix a circular dependency between 
> PSScavenge and PSPromotionManager:
>
>  http://cr.openjdk.java.net/~stefank/8073543/webrev.01
>  https://bugs.openjdk.java.net/browse/JDK-8073543
>
> The circular dependency can be seen in this call chain:
>
>  PSPromotionManager::process_popped_location_depth(...)
>   PSScavenge::copy_and_push_safe_barrier(...)
>    PSPromotionManager::copy_to_survivor_space(...)
>
> These functions are located in the psScavenge.inline.hpp and 
> psPromotionManager.inline.hpp.
>
> Before this patch we have these include paths:
>  psScavenge.inline.hpp -> psPromotionManager.inline.hpp
>  psPromotionManager.inline.hpp -> oop.psgc.inline.hpp -> 
> psScavenge.inline.hpp
>
> The patch moves PSScavenge::copy_and_push_safe_barrier to the 
> PSPromotionManager class and gets rid of the 
> psPromotionManager.inline.hpp -> oop.psgc.inline.hpp -> 
> psScavenge.inline.hpp
> include chain.
>
> This change has been performance tested with SPECjbb2005 on Linux x64, 
> Windows x64, Solaris x64, and Solaris Sparc.
>
> Thanks,
> SstefanK



More information about the hotspot-gc-dev mailing list