RFR: 8150676: Use BufferNode index
Kim Barrett
kim.barrett at oracle.com
Wed Mar 2 04:00:50 UTC 2016
> On Mar 1, 2016, at 9:56 PM, Kim Barrett <kim.barrett at oracle.com> wrote:
>
> Please review this change to PtrQueue and its derivatives to maintain
> the index in BufferNode where needed. This allowed the removal of
> code to fill inactive leading portions of buffers with NULL and to
> remove code to skip over NULL entries.
>
> Removed unused DirtyCardQueueSet::apply_closure_to_all_completed_buffers,
> rather than fixing it's BufferNode manipulation.
>
> Further changed SATBMarkQueue::filter to use two-fingered compaction,
> which may further reduce the number of writes to the buffer during
> filtering. For example, using specjbb2015, with over 2.5M buffers
> processed, the number of writes using the new two-fingered compaction
> (12M) was a factor of 50 fewer than needed by the (non-NULLing)
> sliding algorithm (60M), and a factor of 250 fewer than the original
> sliding algorithm (330M).
Oops, the relative factors are correct, but the values for the sliding write counts
are wrong. Should be 12M (two-fingered), 600M (new slide) and 3300M (old slide).
> On average, filtering a buffer removed
> about 75% of the entries in that test.
>
> CR:
> https://bugs.openjdk.java.net/browse/JDK-8150676
>
> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8150676/webrev.00
>
> Testing:
> JPRT
> Aurora ad-hoc defaults + GC nightly + Runtime nightly
More information about the hotspot-gc-dev
mailing list