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