jstat LGCC column shows
Yasumasa Suenaga
suenaga.yasumasa at oss.ntt.co.jp
Tue Jan 4 04:11:11 UTC 2011
Hi,
I ran SPECjvm2008 with OpenJDK6 provided by Fedora14 and Ubuntu 10.10 .
I got following messages when I attached jstat to that VM with "-gccause" option:
------------
root at ubuntu10:~# jstat -gccause 8411 500
S0 S1 E O P YGC YGCT FGC FGCT GCT LGCC GCC
0.00 0.00 12.11 12.65 31.36 1 0.005 2 0.037 0.042 System.gc() No GC
0.00 0.00 12.11 12.65 31.36 1 0.005 2 0.037 0.042 System.gc() No GC
-- snip --
0.00 0.00 76.81 12.65 31.58 1 0.005 2 0.037 0.042 System.gc() No GC
42.20 0.00 0.00 12.65 33.10 4 0.011 2 0.037 0.047 unknown GCCause No GC
91.06 0.00 0.00 15.12 34.10 10 0.019 2 0.037 0.056 unknown GCCause No GC
-- snip --
------------
"LGCC" column shows "unknown GCCause".
I want to get "REAL" last gccause (I want to know what happened in VM, relating to GC).
(In this case, I guess that LGCC shows "Allocation Failure".)
I found the comment in constructor of VM_GC_Operation class as following:
(OpenJDK7 (HS20) and OpenJDK6(HS19) are similar.)
------------
// A subclass constructor will likely overwrite the following
_gc_cause = GCCause::_no_cause_specified;
------------
I checked constructor of subclass of VM_GC_Operation, and following classes do not
initialize "_gc_cause" member:
- VM_HeapDumper
- VM_GC_HeapInspection
- VM_GenCollectForAllocation
- VM_G1OperationWithAllocRequest
- VM_ParallelGCFailedAllocation
- VM_ParallelGCFailedPermanentAllocation
I think that we should initialize "_gc_cause" in constructor of these classes.
Best regards,
More information about the hotspot-gc-dev
mailing list