<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
Hi John,<br>
<br>
First a high level question: I think your changes are correct, but
this got a bit more complex than I thought it would be when I
suggested it in the review of 7112743. Is the extra complexity worth
the benefits of only having to do the iterations once instead of
twice? I don't have a clear answer to this myself, I just wanted to
bring the question up. Clearly it is more efficient, but it is 3x as
much code to do the same thing.<br>
<br>
One detail for my understanding: why do we need separate time stamps
for each worker? Do all worker not participate in RSet scanning
before they go on to do
<title>Snippet</title>
complete_marking_in_collection_set() ?<br>
<br>
Bengt<br>
<br>
<br>
On 2011-12-09 20:18, John Cuthbertson wrote:
<blockquote cite="mid:4EE25EFE.9090902@oracle.com" type="cite">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
Hi Everyone,<br>
<br>
Can I have a couple of volunteers to review the changes for this
CR? The webrev can be found at: <a moz-do-not-send="true"
class="moz-txt-link-freetext"
href="http://cr.openjdk.java.net/%7Ejohnc/7119908/webrev.0/">http://cr.openjdk.java.net/~johnc/7119908/webrev.0/</a><br>
<br>
Summary:<br>
As part of the code review comments for 7112743 (G1: Reduce
overhead of marking closure during evacuation pauses) it was
suggested that instead of recalculating the starting heap region
for each worker thread, we reuse the values calculated during RSet
scanning. These changes address that review comment. In these
changes I maintain a cache that is used and updated by
G1CollectedHeap::start_cset_region_for_worker(). The first time
this routine is called by a worker thread during an evacuation
pause (currently during RSet scanning) the cached value for the
worker gets set; when the routine is called subsequently the
region that was cached for the worker is returned. I employ a
simple stamp mechanism based upon the number of GCs that ensures
the validity of the regions in the cache and makes clearing the
cache unnecessary.<br>
<br>
Testing:<br>
GC Test suite with a small marking threshold (10%) with and
without verification; the configuration of SPECjbb used to test
7117423; Kitchensink.<br>
<br>
Thanks,<br>
<br>
JohnC<br>
<br>
</blockquote>
<br>
</body>
</html>