JDK-8079792 : GC directory structure cleanup
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: gc
  • Affected Version: 9
  • Priority: P4
  • Status: Resolved
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2015-05-08
  • Updated: 2018-04-10
  • Resolved: 2015-05-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 9
9 b67Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Relates :  
Description
Over time the GC code has spread out across a number of directories, and currently looks like this:

- There are three "top-level" directories which contain GC-related code:
src/share/vm/gc_interface/
src/share/vm/gc_implementation/
src/share/vm/memory/

- Our collectors are roughly spread out like this:
src/share/vm/gc_implementation/parallelScavenge/          (ParallelGC)
src/share/vm/gc_implementation/g1/                               (G1)
src/share/vm/gc_implementation/concurrentMarkSweep/  (CMS)
src/share/vm/gc_implementation/parNew/                       (ParNewGC)
src/share/vm/gc_implementation/shared/                        (MarkSweep)
src/share/vm/memory/                                                  (DefNew)

- We have common/shared code in the following places:
src/share/vm/gc_interface/                               (CollectedHeap, etc)
src/share/vm/gc_implementation/shared/          (counters, utilities, etc)
src/share/vm/memory/                                    (BarrierSet, GenCollectedHeap, etc)


The plan is for the new structure to look like this:

- A single "top-level" directory for GC code:
src/share/vm/gc/

- One sub-directory per GC:
src/share/vm/gc/cms/
src/share/vm/gc/g1/
src/share/vm/gc/parallel/
src/share/vm/gc/serial/

- A single directory for common/shared GC code:
src/share/gc/shared/