Heads Up! GC directory structure cleanup
Mattis Castegren
mattis.castegren at oracle.com
Thu May 7 10:45:54 UTC 2015
Hi
Will this just be a change in directory names, or will the code be changed as well?
If it is just a change in directory names, would it make sense to add this to the unshuffle script, http://cr.openjdk.java.net/~chegar/docs/portingScript.html
This script currently unshuffles the directory name changes for the jigsaw project to allow backporting of fixes between 9 and 8. We in Sustaining will still backport bug fixes and security fixes to JDK 8 and below, so it should be good if we did the same for GC changes.
Do you think that would be possible?
Kind Regards
/Mattis
-----Original Message-----
From: Per Liden
Sent: den 7 maj 2015 10:23
To: hotspot-dev at openjdk.java.net
Subject: Heads Up! GC directory structure cleanup
Hi all,
This is a heads up to let everyone know that the GC team is planning to
do a cleanup of the directory structure for GC code. This change will
affect people working on changes which touch GC-related code, and could
mean that such patches need to be updated before applying cleanly to the
new directory structure.
Background
----------
In the continuous work to address technical debt, the time has come to
make some changes to how the GC code is organized. 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)
New Structure
-------------
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/
FAQ
---
Q: How will this affect me?
A: Moving files around could mean that the patch you are working on will
fail to apply cleanly. hg does a fairly good job of tracking
moves/renames, but if you're using other tools (like patch, mq, etc) you
might need to update/merge your patch manually.
Q: When will this happen?
A: A patch for this is currently being worked on and tested. A review
request will be sent to hotspot-dev in the near future.
Q: Why do this now?
A: All major back-porting work to 8u has been completed. If we want to
do this type of cleanup in jdk9, then now is a good time. The next
opportunity to do this will be in jdk10, after all major back-porting
work to 9u has been completed. We would prefer to do it now.
regards,
The GC Team
More information about the hotspot-dev
mailing list