RFR (S): 8201490: Improve concurrent mark keep alive closure performance
Kim Barrett
kim.barrett at oracle.com
Thu Apr 12 21:28:28 UTC 2018
> On Apr 12, 2018, at 3:57 PM, Thomas Schatzl <thomas.schatzl at oracle.com> wrote:
>
> Hi,
>
> can I have reviews for this change that improves the performance of
> the G1CMKeepAliveAndDrainClosure used for reference processing in some
> (sometimes common) special case?
>
> This particular change makes sure that the actual marking will not be
> called for NULL referents in the keep-alive closure, and do not count
> against the threshold that starts marking, so that marking will not
> start without actual work.
>
> Setup/teardown of G1 marking is very big.
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8201490
> Webrev:
> http://cr.openjdk.java.net/~tschatzl/8201490/webrev
> Testing:
> hs-tier1-3
>
> Thanks,
> Thomas
Looks good. Just a couple minor comments.
------------------------------------------------------------------------------
src/hotspot/share/gc/g1/g1ConcurrentMark.hpp
782 // Returns whether there has been a mark to the bitmap.
788 // Returns true if the reference caused a mark to be set in the next bitmap.
Consider making these the same, and something like:
Returns true if a mark was added to the bitmap.
------------------------------------------------------------------------------
src/hotspot/share/gc/g1/g1ConcurrentMark.inline.hpp
243 if (obj == NULL) {
244 return false;
245 }
246 return make_reference_grey(obj);
For me, something like the following would be easier to read:
return (obj != NULL) && make_reference_grey(obj)
Up to you...
------------------------------------------------------------------------------
More information about the hotspot-gc-dev
mailing list