RFR: 8150676: Use BufferNode index (original) (raw)
Kim Barrett kim.barrett at oracle.com
Wed Mar 2 04:00:50 UTC 2016
- Previous message (by thread): RFR: 8150676: Use BufferNode index
- Next message (by thread): RFR: 8150676: Use BufferNode index
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
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::applyclosuretoallcompletedbuffers, 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
- Previous message (by thread): RFR: 8150676: Use BufferNode index
- Next message (by thread): RFR: 8150676: Use BufferNode index
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]