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

Stefan Karlsson stefan.karlsson at oracle.com
Mon Feb 23 08:59:54 UTC 2015


On 2015-02-23 09:58, Mikael Gerdin wrote:
> 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.

Thanks.

StefanK

>
> /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