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

Stefan Karlsson stefan.karlsson at oracle.com
Fri Feb 20 13:14:31 UTC 2015


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