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

Mikael Gerdin mikael.gerdin at oracle.com
Mon Feb 23 08:58:54 UTC 2015


Hi Stefan,

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

Looks good.

/Mikael

>   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