RFR (M): 8217778: StringTable cleanup miscalculates amount of dead objects
Thomas Schatzl
thomas.schatzl at oracle.com
Tue Jan 29 18:37:21 UTC 2019
Hi,
On Tue, 2019-01-29 at 13:12 -0500, coleen.phillimore at oracle.com wrote:
>
>
> On 1/29/19 4:51 AM, Thomas Schatzl wrote:
> > Hi,
> >
> > On Mon, 2019-01-28 at 16:46 -0500, coleen.phillimore at oracle.com
> > wrote:
> > > Hi Thomas, Can you forward the review thread for JDK-8213229?
> >
> > the thread starts at
> >
http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2019-January/024474.html
> > , but the interesting part is probably starting here
> >
http://mail.openjdk.java.net/pipermail/hotspot-gc-dev/2019-January/024649.html
> > .
>
> So this moves StringTable processing into the WeakProcessor. good!
> Not a review though.
>
>
http://cr.openjdk.java.net/~tschatzl/8217778/webrev/src/hotspot/share/gc/shared/weakProcessor.inline.hpp.frames.html
>
> If these Counting closures are only used in the weakProcessor.cpp
> file, they should be defined there. It looks like their use was
> moved.
They are also used in the inline.hpp file.
>
>
http://cr.openjdk.java.net/~tschatzl/8217778/webrev/src/hotspot/share/gc/shared/weakProcessor.cpp.frames.html
>
> I don't know what "is_serial does but it doesn't look like you're
> using the num_dead() count when calling processor.
>
> 40 if (WeakProcessorPhases::is_serial(phase)) {
> 41 CountingIsAliveClosure<BoolObjectClosure> cl(is_alive);
> 42 WeakProcessorPhases::processor(phase)(&cl, keep_alive);
> 43 } else {
> 44 CountingSkippedIsAliveClosure<BoolObjectClosure,
> OopClosure> cl(is_alive, keep_alive);
> 45 WeakProcessorPhases::oop_storage(phase)->oops_do(&cl);
> 46 if (WeakProcessorPhases::is_stringtable(phase)) {
> 47 StringTable::inc_dead_counter(cl.num_dead() +
> cl.num_skipped());
> 48 }
> 49 }
I cleaned this up already, Kim had the same comment. Only need to send
out another webrev for 8217778.
Thanks,
Thomas
More information about the hotspot-gc-dev
mailing list