23 Commits

Author SHA1 Message Date
Kim Barrett
4694da31f8 8242078: G1: Improve concurrent refinement analytics and logging
Unify data collection and reporting.

Reviewed-by: tschatzl, sjohanss
2020-04-14 17:31:53 -04:00
Kim Barrett
b8a2b201b5 8139652: Mutator refinement processing should take the oldest dirty card buffer
Changed mutator refinement to take from queue rather than in-place and reuse.

Reviewed-by: tschatzl, sjohanss
2020-03-19 18:11:52 -04:00
Kim Barrett
6ead90568f 8239825: G1: Simplify threshold test for mutator refinement
Compute refinement threshold when values change, not on each use.

Reviewed-by: tschatzl, sangheki
2020-03-13 15:36:50 -04:00
Kim Barrett
1c1fb44ac1 8240722: [BACKOUT] G1DirtyCardQueue destructor has useless flush
Backout JDK-8240133

Reviewed-by: sjohanss
2020-03-09 04:06:37 -04:00
Kim Barrett
7806ca1477 8240133: G1DirtyCardQueue destructor has useless flush
Removed useless call to flush.

Reviewed-by: tschatzl, sjohanss
2020-03-08 17:33:48 -04:00
Kim Barrett
257de28b2c 8238979: Improve G1DirtyCardQueueSet handling of previously paused buffers
Move enqueuing of previously paused buffers.

Reviewed-by: sangheki, sjohanss
2020-02-26 14:36:01 -05:00
Kim Barrett
087074334d 8238867: Improve G1DirtyCardQueueSet::Queue::pop
Allow one of competing pops for last element to succeed.

Reviewed-by: iwalulya, sjohanss
2020-02-13 15:16:50 -05:00
Kim Barrett
ccbd819a01 8237143: Eliminate DirtyCardQ_cbl_mon
Replace locked data structures with lock-free data structures.

Reviewed-by: tschatzl, sangheki
2020-02-06 19:09:07 -05:00
Kim Barrett
d7fcd0ccac 8231153: Improve concurrent refinement statistics
8043505: G1RemSet::_conc_refine_cards is incremented unsynchronized

Added refinement rates and counts, removed _conc_refine_cards

Reviewed-by: tschatzl, sjohanss
2019-10-08 15:15:50 -04:00
Thomas Schatzl
f92526e6fd 8231189: Rename worker_i parameters to worker_id
Reviewed-by: kbarrett, sjohanss
2019-09-23 11:37:08 +02:00
Kim Barrett
8b67b75f50 8221361: Eliminate two-phase initialization for PtrQueueSet classes
Move allocator and CBL monitor init to constructor.

Reviewed-by: tschatzl, shade
2019-09-09 16:54:48 -04:00
Kim Barrett
40565a845c 8230404: Refactor logged card refinement support in G1DirtyCardQueueSet
Separate concurrent refinement from STW refinement.

Reviewed-by: sjohanss, tschatzl
2019-09-06 13:38:55 -04:00
Kim Barrett
1668370dfe 8230327: Make G1DirtyCardQueueSet free-id init unconditional
Remove conditional init and make the set an inline member.

Reviewed-by: sjohanss, lkorinth, tschatzl
2019-08-30 14:05:00 -04:00
Kim Barrett
6d064a747e 8230332: G1DirtyCardQueueSet _notify_when_complete is always true
Removed _notify_when_complete, assume true value where formerly used.

Reviewed-by: sjohanss, tschatzl
2019-08-29 18:52:30 -04:00
Kim Barrett
b6b6a37fe1 8230109: G1DirtyCardQueueSet should use card counts rather than buffer counts
Consistently use card counts

Reviewed-by: sjohanss, sangheki
2019-08-29 18:35:52 -04:00
Thomas Schatzl
b3c21d9a9b 8227719: G1 Pending cards estimation too conservative in cost prediction
Instead of using a coarse prediction for the log buffers, accumulate the actual number directly.

Reviewed-by: kbarrett, sangheki
2019-07-24 11:49:39 +02:00
Kim Barrett
4b3c528140 8162929: Enqueuing dirty cards into a single DCQS during GC does not scale
Refactor into G1RedirtyCardsQueue[Set] and G1DirtyCardQueueSet

Reviewed-by: tschatzl, sangheki
2019-07-19 16:47:11 -04:00
Kim Barrett
805258f3a9 8225255: Make SATB qset lock-free
Refactor PtrQueueSet, use lock-free stack for SATB completed buffers

Reviewed-by: tschatzl, shade
2019-06-26 13:18:38 -04:00
Kim Barrett
54d0b2a8d6 8224167: Refactor PtrQueue completed buffer processing
Add handle_completed_buffer and refactor.

Reviewed-by: tschatzl, shade
2019-05-21 19:19:44 -04:00
Kim Barrett
3bb3dbc47e 8220240: Refactor shared dirty card queue
Add G1SharedDirtyCardQueue class.

Reviewed-by: tschatzl, lkorinth
2019-03-22 15:42:43 -04:00
Thomas Schatzl
ece7e8a2a1 8220301: Remove jbyte use in CardTable
Use CardTable::CardValue aliased to uint8_t instead.

Reviewed-by: kbarrett, shade
2019-03-13 21:01:56 +01:00
Kim Barrett
725a467ad8 8219613: Use NonJavaThread PtrQueues
Init and use NJT queues, remove shared SATB queue.

Co-authored-by: Aleksey Shipilev <shade@redhat.com>
Reviewed-by: shade, zgu, pliden, tschatzl
2019-03-05 19:54:33 -05:00
Kim Barrett
d2c690e80b 8218089: Rename DirtyCardQueue et al to follow usual G1 naming conventions
Move files and rename classes.

Reviewed-by: tschatzl, lkorinth
2019-02-13 17:38:14 -05:00