CRR: 7033292: G1: nightly failure: Non-dirty cards in region that should be dirty (XXS)

Tony Printezis tony.printezis at oracle.com
Mon Apr 4 15:23:11 UTC 2011


Tiny patch (only a single digit changed and a short comment added):

http://cr.openjdk.java.net/~tonyp/7033292/webrev.0/

The issue is that in the G1 card cache the epoch the cache entries are 
initialized to (e.g., 0) is the same as what the current epoch is also 
initialized to. This makes the initialized, but not yet populated, cache 
entries to look valid until the first GC. When one of those entries is 
replaced the evicted card is incorrectly materialized to be the one that 
corresponds to the bottom of the heap. The fix is to initialize the 
current epoch to 1 to automatically invalidate all the cache entries 
that have not been populate yet.

Many thanks to John Cuthbertson for his help on this.

Tony



More information about the hotspot-gc-dev mailing list