<html>
<head>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<br>
<br>
<div class="moz-cite-prefix">On 07/21/2016 06:57 AM, Thomas Schatzl
wrote:<br>
</div>
<blockquote cite="mid:1469109476.4338.25.camel@oracle.com"
type="cite">
<pre wrap="">Hi Jon,
On Thu, 2016-07-21 at 06:48 -0700, Jon Masamitsu wrote:
</pre>
<blockquote type="cite">
<pre wrap="">
On 7/21/2016 1:20 AM, Thomas Schatzl wrote:
</pre>
<blockquote type="cite">
<pre wrap="">
Hi Jon,
On Wed, 2016-07-20 at 20:43 -0700, Jon Masamitsu wrote:
</pre>
<blockquote type="cite">
<pre wrap="">
It's ready again.
Delta: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jmasa/8159073/webrev_delta_01_">http://cr.openjdk.java.net/~jmasa/8159073/webrev_delta_01_</a>
02/
Full: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jmasa/8159073/webrev.02/">http://cr.openjdk.java.net/~jmasa/8159073/webrev.02/</a>
</pre>
</blockquote>
<pre wrap=""> this looks good, except for the two log messages. They seem to
be
superfluous because first the callers of run_task(, uint) already
print
mostly the same message, and the given code guarantee's that
whatever
is printed anyway. Further, a single invocation of run_task will
now
trigger three messages basically telling the same.
So I would prefer if these messages were either moved to trace
level,
or just removed.
Thanks a lot for your patience with me, :)
Thomas
</pre>
</blockquote>
<pre wrap="">I deleted the log messages.
--- a/src/share/vm/gc/shared/workgroup.cpp
+++ b/src/share/vm/gc/shared/workgroup.cpp
@@ -272,11 +272,9 @@
task->name(), num_workers, total_workers());
guarantee(num_workers > 0, "Trying to execute task %s with zero
workers", task->name());
uint old_num_workers = _active_workers;
- log_debug(gc)("run_task: updating active workers for %s from %u
to
%u", task->name(), old_num_workers, num_workers);
update_active_workers(num_workers);
guarantee(_active_workers == num_workers, "active workers %u
num_workers %u", _active_workers, num_workers);
_dispatcher->coordinator_execute_on_workers(task, num_workers);
- log_debug(gc)("run_task: restoring active workers from %u to %u",
num_workers, old_num_workers);
update_active_workers(old_num_workers);
}
Delta: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jmasa/8159073/webrev_delta_02_03/">http://cr.openjdk.java.net/~jmasa/8159073/webrev_delta_02_03/</a>
Full: <a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jmasa/8159073/webrev.03/">http://cr.openjdk.java.net/~jmasa/8159073/webrev.03/</a>
Thanks.
</pre>
</blockquote>
<pre wrap="">
looks good, ship it :)
</pre>
</blockquote>
<br>
When I ran tests which injected thread creation failure, this<br>
guarantee failed.<br>
<br>
diff --git a/src/share/vm/gc/shared/workgroup.cpp
b/src/share/vm/gc/shared/workgroup.cpp<br>
--- a/src/share/vm/gc/shared/workgroup.cpp<br>
+++ b/src/share/vm/gc/shared/workgroup.cpp<br>
@@ -276,7 +276,6 @@<br>
guarantee(num_workers > 0, "Trying to execute task %s with
zero workers", task->name());<br>
uint old_num_workers = _active_workers;<br>
update_active_workers(num_workers);<br>
<font color="#ff0000">- guarantee(_active_workers == num_workers,
"active workers %u num_workers %u", _active_workers, num_workers);</font><br>
_dispatcher->coordinator_execute_on_workers(task,
num_workers);<br>
update_active_workers(old_num_workers);<br>
}<br>
<br>
"num_workers" was 2 and the update_active_workers() failed to create
an<br>
additional thread so "_active_workers" remained at 1. I deleted the
guarantee.<br>
<br>
<a class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~jmasa/8159073/webrev_delta_03_04/">http://cr.openjdk.java.net/~jmasa/8159073/webrev_delta_03_04/</a><br>
<br>
Jon<br>
<br>
<blockquote cite="mid:1469109476.4338.25.camel@oracle.com"
type="cite">
<pre wrap="">
Thanks,
Thomas
</pre>
</blockquote>
<br>
</body>
</html>