Fwd: Re: Review request (S): 7176220: 'Full GC' events miss date stamp information occasionally
John Cuthbertson
john.cuthbertson at oracle.com
Thu Oct 4 10:28:39 PDT 2012
Hi Andreas,
This looks good to me except I have one question/comment:
In genCollectedHeap.cpp, the old code was:
386 bool complete = full && (max_level == (n_gens()-1));
387 const char* gc_cause_prefix = complete ? "Full GC" : "GC";
388 gclog_or_tty->date_stamp(PrintGC && PrintGCDateStamps);
389 TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
390 TraceTime t(GCCauseString(gc_cause_prefix, gc_cause()), PrintGCDetails, false, gclog_or_tty);
The new code is:
386 bool complete = full && (max_level == (n_gens()-1));
387 const char* gc_cause_prefix = complete ? "Full GC" : "GC";
388 TraceCPUTime tcpu(PrintGCDetails, true, gclog_or_tty);
389 TraceTime t(GCCauseString(gc_cause_prefix, gc_cause()), PrintGCDetails, false, gclog_or_tty);
In the old code, the date stamp was printed if PrintGC was enabled, but
the TraceTime::_doit field is set based upon the value of
PrintGCDetails. Looking at the other instantiations of the TraceTime
class, this seems inconsistent. I believe that the second parameter to
the TraceTime constructor should be PrintGC instead of PrintGCDetails.
Regards,
JohnC
On 10/04/12 04:30, Andreas Eriksson wrote:
> Hi,
>
> Can I have some reviews for the following change please:
> http://cr.openjdk.java.net/~brutisso/7176220/webrev.00/
> <http://cr.openjdk.java.net/%7Ebrutisso/7176220/webrev.00/>
>
> See forwarded mails for more info.
>
> Regards,
> Andreas
>
>
> -------- Original Message --------
> Subject: Re: Review request (S): 7176220: 'Full GC' events miss
> date stamp information occasionally
> Date: Tue, 02 Oct 2012 14:45:07 +0200
> From: Bengt Rutisson <bengt.rutisson at oracle.com>
> To: Andreas Eriksson <andreas.eriksson at oracle.com>
> CC: hotspot-gc-dev at openjdk.java.net
>
>
>
>
>
> Hi Andreas,
>
> I think this looks good. I like that we treat PrintGCDateStamps and
> PrintGCTimeStamps in a consistent way.
>
> One thing that kind of worries me is that the TraceTime class is used
> from other parts of the JVM than just the GC. This means that you now
> get date stamps on compiler events if you enable PrintGCDateStamps. I
> think this is probably fine since they already get time stamps if you
> enable PrintGCTimeStamps. See for example how PhaseTraceTime is used
> in C1.
>
> Maybe we should send this review out on hotspot-dev to make sure that
> all teams have a chance to comment on this?
>
> Thanks,
> Bengt
>
> On 2012-09-28 12:01, Andreas Eriksson wrote:
>> Hi,
>>
>> Can I have some reviews for the following change please:
>> http://cr.openjdk.java.net/~brutisso/7176220/webrev.00/
>> <http://cr.openjdk.java.net/%7Ebrutisso/7176220/webrev.00/>
>>
>> This fixes GC logs from genCollectedHeap.cpp where sometimes it would
>> not print date-stamps.
>> The fix moves printing of date-stamps into TraceTime, where
>> time-stamps are already printed from.
>>
>> Bug with flags -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -verbose:gc
>> -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps:
>> 2012-09-28T11:41:38.687+0200: 0.205: [Full GC 8702K->1012K(9920K),
>> 0.0108630 secs]
>> 1.253: [Full GC 3326K->1012K(9920K), 0.0105750 secs]
>> 2.299: [Full GC 7932K->1012K(9920K), 0.0100470 secs]
>> 2012-09-28T11:41:41.813+0200: 3.331: [Full GC 8702K->1012K(9920K),
>> 0.0103210 secs]
>>
>> Another route that was investigated was to add the date-stamp call
>> directly in genCollectedHeap.cpp, but because of complex interactions
>> when a full GC was initiated from a non-full GC this path was not taken.
>>
>>
>> This will slightly change the logging output when using
>> -XX:+PrintGCDetails.
>> Now date-stamps will also be printed inside other lines, as
>> time-stamps already are:
>>
>> Before:
>> 2012-09-28T11:29:16.815+0200: 0.177: [GC0.177: [ParNew:
>> 2710K->46K(3072K), 0.0053590 secs] 3480K->1835K(9920K), 0.0055500
>> secs] [Times: user=0.01 sys=0.00, real=0.01 secs]
>>
>> After:
>> 2012-09-28T11:29:33.260+0200: 0.184: [GC2012-09-28T11:29:33.261+0200:
>> 0.184: [ParNew: 2642K->45K(3072K), 0.0095770 secs]
>> 3412K->1828K(9920K), 0.0097520 secs] [Times: user=0.01 sys=0.00,
>> real=0.01 secs]
>>
>> Thanks to Bengt Rutisson for helping with the change and webrev.
>>
>> Regards,
>> Andreas
>
>
>
>
More information about the hotspot-dev
mailing list