RFR: 8200735: Move CMS specific code from binaryTreeDictionary and freeList to CMS files

Stefan Karlsson stefan.karlsson at oracle.com
Wed Apr 4 13:22:03 UTC 2018


Hi all,

[Sending to hotspot-dev because this changes both GC and Metaspace code]

Please review this patch to move CMS specific code out of the 
binaryTreeDictionary.*pp and freeList.*hpp files into CMS files.

http://cr.openjdk.java.net/~stefank/8200735/webrev.01
https://bugs.openjdk.java.net/browse/JDK-8200735

The BinaryTreeDictionary and FreeList used to be classes only used by 
CMS, and therefore contained CMS specific code. These classes were later 
used by the Metaspace and moved to the memory/ directory. The CMS 
specific code was then guarded with numerous INCLUDE_ALL_GCS. This patch 
moves the CMS code to compactibleFreeListSpace.*pp, where it's used.

To make it possible for the code in compactibleFreeListSpace.cpp file to 
use the code in binaryTreeDictionary.cpp and freeList.cpp I removed the 
explicit template instantiation and changed these two files into two 
.inline.hpp files.

This patch helps minimizing the number of places we use INCLUDE_ALL_GCS 
in non-GC code, and is a prerequisite for:

https://bugs.openjdk.java.net/browse/JDK-8200729 - Conditional 
compilation of GCs

Thanks,
StefanK


More information about the hotspot-dev mailing list