<div dir="ltr"><div>Hi,</div><div><br></div>Would adopting MiGC (minor) and MaGC (major) in jstat output make more sense to cover all collectors' algorithms if we need a change here?<div><br></div><div>Thanks.</div><div>Tao Mao</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Mar 1, 2016 at 3:03 PM, Yasumasa Suenaga <span dir="ltr"><<a href="mailto:yasuenag@gmail.com" target="_blank">yasuenag@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Kirk,<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
It is also incorrect to count initial mark and remark in CMS as a FGC.<br>
</blockquote>
<br></span>
Though, how can we check execution of major collection without GC log?<br>
Should we add new PerfCounter for CGC (and add CGC column to jstat output)?<span class="HOEnZb"><font color="#888888"><br>
<br>
<br>
Yasumasa</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
On 2016/03/02 6:35, <a href="mailto:kirk@kodewerk.com" target="_blank">kirk@kodewerk.com</a> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi,<br>
<br>
I think it is incorrect to count remark and cleanup as FGC. They are not full collections. It is also incorrect to count initial mark and remark in CMS as a FGC. It is unfortunate that this is counted this way.<br>
<br>
Regards,<br>
Kirk<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
On Mar 1, 2016, at 8:56 AM, Yasumasa Suenaga <<a href="mailto:yasuenag@gmail.com" target="_blank">yasuenag@gmail.com</a>> wrote:<br>
<br>
Hi all,<br>
<br>
I wonder that STW phases (Remark and Cleanup) at G1 are not counted in jstat FGC column.<br>
For example, Initial Mark and Remark at CMS are counted as FGC.<br>
<br>
For consistency, I think that G1 STW phases should be counted as FGC.<br>
What do you think about it?<br>
<br>
If it is accepted, I will file it to JBS and will upload webrev.<br>
<br>
<br>
suggested fix:<br>
----------------------<br>
diff -r 8a103ba9a7b2 src/share/vm/gc/g1/g1MonitoringSupport.cpp<br>
--- a/src/share/vm/gc/g1/g1MonitoringSupport.cpp        Mon Feb 29 22:54:24 2016 +0900<br>
+++ b/src/share/vm/gc/g1/g1MonitoringSupport.cpp        Tue Mar 01 23:43:30 2016 +0900<br>
@@ -103,7 +103,7 @@<br>
   //   name "collector.1".  In a generational collector this would be the<br>
   // old generation collection.<br>
   _full_collection_counters =<br>
-    new CollectorCounters("G1 stop-the-world full collections", 1);<br>
+    new CollectorCounters("G1 stop-the-world phase", 1);<br>
<br>
   // timer sampling for all counters supporting sampling only update the<br>
   // used value.  See the take_sample() method.  G1 requires both used and<br>
diff -r 8a103ba9a7b2 src/share/vm/gc/g1/vm_operations_g1.cpp<br>
--- a/src/share/vm/gc/g1/vm_operations_g1.cpp   Mon Feb 29 22:54:24 2016 +0900<br>
+++ b/src/share/vm/gc/g1/vm_operations_g1.cpp   Tue Mar 01 23:43:30 2016 +0900<br>
@@ -230,6 +230,8 @@<br>
   G1CollectedHeap* g1h = G1CollectedHeap::heap();<br>
   GCTraceTime(Info, gc) t(_printGCMessage, g1h->gc_timer_cm(), GCCause::_no_gc, true);<br>
   IsGCActiveMark x;<br>
+  SvcGCMarker sgcm(SvcGCMarker::OTHER);<br>
+  TraceCollectorStats tcs(g1h->g1mm()->full_collection_counters());<br>
   _cl->do_void();<br>
}<br>
<br>
----------------------<br>
<br>
<br>
Thanks,<br>
<br>
Yasumasa<br>
<br>
<br>
</blockquote>
<br>
</blockquote>
</div></div></blockquote></div><br></div>