RFR (S): 8227671: G1: assert_used_and_recalculate_used_equal performs work in product builds
Thomas Schatzl
thomas.schatzl at oracle.com
Tue Jul 16 08:58:34 UTC 2019
Hi,
On Mon, 2019-07-15 at 15:03 -0400, Kim Barrett wrote:
> > On Jul 15, 2019, at 11:38 AM, Thomas Schatzl <
> > thomas.schatzl at oracle.com> wrote:
> >
> > Hi all,
> >
> > can I have reviews for this small change that avoids doing
> > unneccessary work in product builds?
> >
> > In particular, the assert_used_and_recalculate_used_equal macro
> > executes code (the recalculate_used() call) that is potentially
> > lengthy.
> >
> > I measured a few ms on a large heap (50GB) with (forced) 50k
> > regions. I am not sure why this call is so expensive in my tests,
> > but it is completely unnecessary.
> >
> > CR:
> > https://bugs.openjdk.java.net/browse/JDK-8227671
> > Webrev:
> > http://cr.openjdk.java.net/~tschatzl/8227671/webrev/
> > Testing:
> > Currently running hs-tier1-3, local gc/g1 jtreg run, local
> > benchmarks
> >
> > Thanks,
> > Thomas
>
> Looks good.
>
> One minor nit issue, for which I don't need a new webrev.
>
> -------------------------------------------------------------------
> -----------
> src/hotspot/share/gc/g1/g1CollectedHeap.hpp
> 366 #define assert_used_and_recalculate_used_equal(g1h) while(0)
>
> That should probably be "do {} while (0)". It probably doesn't
> matter too much, since the case that can go wrong in a non-debug
> build will probably not compile in a debug build.
Fixed and regenerated webrev.
>
> -------------------------------------------------------------------
> -----------
> src/hotspot/share/gc/g1/g1CollectedHeap.hpp
> 356 #ifdef ASSERT
> 357 #define assert_used_and_recalculate_used_equal(g1h)
>
> I wonder why this is a macro and not a NOT_DEBUG_RETURN function.
>
> The same goes for some of the others nearby. I think macros were
> used because we were getting poor stacktrace info in hs_err files,
> but I thought that was pretty much fixed.
>
> But this is all a separate issue from the performance bug being
> addressed by this change.
I filed JDK-8227713 for that.
Thanks,
Thomas
More information about the hotspot-gc-dev
mailing list