RFR: 8062063: Usage of UseHugeTLBFS, UseLargePagesInMetaspace and huge SurvivorAlignmentInBytes cause crashes in CMBitMapClosure::do_bit

Stefan Johansson stefan.johansson at oracle.com
Thu Jan 8 17:59:45 UTC 2015


Hi,

Sorry for doing a re-spin on this, but since this is targeted to go into 
8 as well I want to minimize the risk of introducing a regression.

After yesterdays comments I started thinking more about what regressions 
this fix might cause and today I've had good discussions with Thomas and 
Mikael. I've also did some quick measurements that shows additional time 
for the YCs expanding the heap after a shrink. Since we don't really 
need the heap regions to be cleared I think we need to avoid this 
regression, by going with another solution and I don't think having this 
time added to the full GC shrinking the heap is wanted either.

The first proposal that is explained in the bug-report would avoid 
clearing memory that don't have to be cleared, but just doing the simple 
solution explained there might cause startup regressions due to touching 
memory during startup that isn't needed. Mixing that approach with the 
one proposed yesterday will allow us to only clear memory when 
absolutely needed. See new webrev here:
http://cr.openjdk.java.net/~sjohanss/8062063/hotspot.01

This approach leaves the clearing to the listener registered with each 
mapper and for the bitmaps this will make sure that they are cleared, 
but for the heap we won't do anything (because the heap has no 
requirement of having zeroed backing memory).

Thanks,
Stefan

On 2015-01-07 16:14, Stefan Johansson wrote:
> Hi,
>
> Please review this fix for:
> https://bugs.openjdk.java.net/browse/JDK-8062063
>
> Webrev:
> http://cr.openjdk.java.net/~sjohanss/8062063/hotspot.00
>
> Summary:
> When using large pages on Linux we never actually uncommit memory, we 
> just mark it as currently not used. When later re-committing those 
> pages we currently only mark them in use again. This works fine until 
> someone expects to get cleared memory back when doing a commit, which 
> for example is expected for the memory backing certain bitmaps. This 
> fix, makes sure that we always clear large pages when they are 
> re-committed.
>
> Testing:
> * Built via JPRT
> * Verified fix on failing reproducer
> * Planning to run longer aurora-run.
>
> Thanks,
> Stefan



More information about the hotspot-gc-dev mailing list