RFR(S): 8000831: Heap verification output incorrect/incomplete
John Cuthbertson
john.cuthbertson at oracle.com
Mon Oct 15 16:26:14 UTC 2012
Hi Bengt,
Thanks for looking at the code.
I honestly don't know the answer to your question. As I said in my
earlier response to Ramki - I was surprised that all of the call sites
were passing false for the silent parameter. I can't remember if that
has always been the case. I'm also not sure if it always will be either.
My guess is that no one thought of using a global flag, or if they did
they reasoned that others may still want a finer grained control.
Regards,
JohnC
On 10/15/12 06:30, Bengt Rutisson wrote:
> Hi John,
>
> The changes look good to me.
>
> One kind of high level question. Why do we have a parameter and let
> every caller decide whether or not to print verbose output instead of
> having a flag to allow the user to turn it on and off on the command
> line? Seems more consistent with other log output to have a flag like
> PrintGCVerification or TraceGCVerification. A bit like the flag
> TraceProtectionDomainVerification does now.
>
> Bengt
>
> On 2012-10-13 01:22, John Cuthbertson wrote:
>> Sending to the correct alias....
>>
>> Hi Everyone,
>>
>> Can I have a couple of volunteers review the fix for this CR - the
>> webrev can be found at:
>> http://cr.openjdk.java.net/~johnc/8000831/webrev.0/
>>
>> Summary:
>> An earlier change inadvertently turned off part of the output of heap
>> verification:
>>
>> [Verifying threads syms strs zone dict hand C-heap code cache ]
>> VerifyBeforeGC:4.619: [GC [PSYoungGen: 16896K->416K(19712K)]
>> 16896K->420K(62720K), 0.0170685 secs] [Times: user=0.02 sys=0.00,
>> real=0.02 secs]
>> VerifyBeforeGC:5.013: [GC [PSYoungGen: 17312K->416K(19712K)]
>> 17316K->424K(62720K), 0.0125283 secs] [Times: user=0.02 sys=0.00,
>> real=0.01 secs]
>> VerifyBeforeGC:5.239: [GC [PSYoungGen: 17312K->400K(19712K)]
>> 17320K->412K(62720K), 0.0586610 secs] [Times: user=0.04 sys=0.03,
>> real=0.06 secs]
>> VerifyBeforeGC:5.439: [GC [PSYoungGen: 17296K->432K(36608K)]
>> 17308K->448K(79616K), 0.0167533 secs] [Times: user=0.02 sys=0.00,
>> real=0.02 secs]
>> VerifyBeforeGC:5.721: [GC [PSYoungGen: 34224K->392K(38144K)]
>> 34240K->412K(81152K), 0.0909802 secs] [Times: user=0.05 sys=0.04,
>> real=0.09 secs]
>> VerifyBeforeGC:6.034: [GC [PSYoungGen: 35720K->400K(69184K)]
>> 35740K->424K(112192K), 0.0344226 secs] [Times: user=0.04 sys=0.00,
>> real=0.03 secs]
>> VerifyBeforeGC:6.709: [GC [PSYoungGen: 69136K->64K(69184K)]
>> 69160K->440K(112192K), 0.1976060 secs] [Times: user=0.10 sys=0.11,
>> real=0.20 secs]
>>
>> Previously it was:
>>
>> [Verifying threads syms strs zone dict hand C-heap code cache ]
>> VerifyBeforeGC:[Verifying threads permanent tenured eden syms strs
>> zone dict hand C-heap code cache ]
>> 4.818: [GC [PSYoungGen: 16896K->392K(19712K)] 16896K->396K(62720K),
>> 0.0244147 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
>> VerifyBeforeGC:[Verifying threads permanent tenured eden syms strs
>> zone dict hand C-heap code cache ]
>> 5.087: [GC [PSYoungGen: 17288K->392K(19712K)] 17292K->400K(62720K),
>> 0.0597174 secs] [Times: user=0.04 sys=0.03, real=0.06 secs]
>> VerifyBeforeGC:[Verifying threads permanent tenured eden syms strs
>> zone dict hand C-heap code cache ]
>> 5.410: [GC [PSYoungGen: 17288K->400K(19712K)] 17296K->412K(62720K),
>> 0.0173056 secs] [Times: user=0.02 sys=0.00, real=0.02 secs]
>> VerifyBeforeGC:[Verifying threads permanent tenured eden syms strs
>> zone dict hand C-heap code cache ]
>> 5.595: [GC [PSYoungGen: 17296K->400K(36608K)] 17308K->416K(79616K),
>> 0.0134239 secs] [Times: user=0.02 sys=0.00, real=0.01 secs]
>>
>> The changes restore the previous output for the affected collectors.
>>
>> Testing:
>> GCBasher with VerifyBeforeGC, VerifyAfterGC, VerifyDuringGC with
>> serial, parallel, concurrent, and G1 collectors.
>>
>> Thanks,
>>
>> JohnC
>
More information about the hotspot-gc-dev
mailing list