request for review: 6634032 (medium-to-small): CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction

Y Srinivas Ramakrishna Y.S.Ramakrishna at Sun.COM
Sat Dec 8 00:32:24 UTC 2007


[Attached is a patch of diffs as well as a webrev tar-ball, whichever format you
prefer. The latter may be easier for the more extensive changes in the case
of one of the files at least, where the diffs may get a bit hairy to read.
Sun-internal reviewers can access the webrev via a pointer in the suggested
fix section of the bug report.]

6634032 CMS: Need CMSInitiatingPermOccupancyFraction for perm, divorcing from CMSInitiatingOccupancyFraction

In addition, we can now dynamically decide at the start of a CMS collection
cycle whether we will be collecting the perm gen in that cycle. I introduced
a couple of experimental knobs to tweak that decision policy, but left the
default current policy intact (modulo the divorcing of the two collection thresholds).
See the block comment preceding update_should_unload_classes().
The settings of the knobs will likely change based on further experiments
and experience, but the current settings are so as to rock the boat as
little as possible. This should fix the problems reported by Anuj Lal
and Thomas Viessmann on this mailing list. (vide the following
thread: http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2007-November/000081.html )

Further improvements are planned in CR 6543076 "Adaptive collection of perm gen",
leveraging the infrastructure here to allow dynamic per-cycle decisions based on
perm gen allocation rate estimates etc.

Fix Verified: yes

Verification Testing: +PrintGCDetails was used along with default
   and various non-default settings to verify that perm gen collections
   were occurring as designed.

Other Testing: on-going internal testing (rwl and jprt); performance data will
   be collected and shared prior to any push.

PS: mixed in with the diffs is an old diff for:-
6621144 CMS: assertion failure "is_cms_thread == Thread::current()->is_ConcurrentGC_thread()"
which you can also review (or feel free to ignore for the purposes of this
code review).

Many thanks for your reviews, feedback, comments and suggestions.
-- ramki
-------------- next part --------------
A non-text attachment was scrubbed...
Name: cms_bugs.patch
Type: text/x-patch
Size: 29932 bytes
Desc: not available
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20071207/a075b50a/cms_bugs.patch>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: webrev.tar.gz
Type: application/x-gzip
Size: 1692996 bytes
Desc: not available
URL: <https://mail.openjdk.java.net/pipermail/hotspot-gc-dev/attachments/20071207/a075b50a/webrev.tar.gz>


More information about the hotspot-gc-dev mailing list