@@ -86,7 +86,7 @@ uint G1DirtyCardQueueSet::num_par_ids() {
86
86
void G1DirtyCardQueueSet::flush_queue (G1DirtyCardQueue& queue) {
87
87
if (queue.buffer () != nullptr ) {
88
88
G1ConcurrentRefineStats* stats = queue.refinement_stats ();
89
- stats->inc_dirtied_cards (buffer_size () - queue.index ());
89
+ stats->inc_dirtied_cards (buffer_capacity () - queue.index ());
90
90
}
91
91
PtrQueueSet::flush_queue (queue);
92
92
}
@@ -105,7 +105,7 @@ void G1DirtyCardQueueSet::handle_zero_index(G1DirtyCardQueue& queue) {
105
105
BufferNode* old_node = exchange_buffer_with_new (queue);
106
106
if (old_node != nullptr ) {
107
107
G1ConcurrentRefineStats* stats = queue.refinement_stats ();
108
- stats->inc_dirtied_cards (buffer_size ());
108
+ stats->inc_dirtied_cards (buffer_capacity ());
109
109
handle_completed_buffer (old_node, stats);
110
110
}
111
111
}
@@ -123,7 +123,7 @@ void G1DirtyCardQueueSet::enqueue_completed_buffer(BufferNode* cbn) {
123
123
assert (cbn != nullptr , " precondition" );
124
124
// Increment _num_cards before adding to queue, so queue removal doesn't
125
125
// need to deal with _num_cards possibly going negative.
126
- Atomic::add (&_num_cards, buffer_size () - cbn->index ());
126
+ Atomic::add (&_num_cards, buffer_capacity () - cbn->index ());
127
127
// Perform push in CS. The old tail may be popped while the push is
128
128
// observing it (attaching it to the new buffer). We need to ensure it
129
129
// can't be reused until the push completes, to avoid ABA problems.
@@ -159,7 +159,7 @@ BufferNode* G1DirtyCardQueueSet::get_completed_buffer() {
159
159
result = dequeue_completed_buffer ();
160
160
if (result == nullptr ) return nullptr ;
161
161
}
162
- Atomic::sub (&_num_cards, buffer_size () - result->index ());
162
+ Atomic::sub (&_num_cards, buffer_capacity () - result->index ());
163
163
return result;
164
164
}
165
165
@@ -169,7 +169,7 @@ void G1DirtyCardQueueSet::verify_num_cards() const {
169
169
for (BufferNode* cur = _completed.first ();
170
170
!_completed.is_end (cur);
171
171
cur = cur->next ()) {
172
- actual += buffer_size () - cur->index ();
172
+ actual += buffer_capacity () - cur->index ();
173
173
}
174
174
assert (actual == Atomic::load (&_num_cards),
175
175
" Num entries in completed buffers should be " SIZE_FORMAT " but are " SIZE_FORMAT,
@@ -285,7 +285,7 @@ void G1DirtyCardQueueSet::record_paused_buffer(BufferNode* node) {
285
285
// notification checking after the coming safepoint if it doesn't GC.
286
286
// Note that this means the queue's _num_cards differs from the number
287
287
// of cards in the queued buffers when there are paused buffers.
288
- Atomic::add (&_num_cards, buffer_size () - node->index ());
288
+ Atomic::add (&_num_cards, buffer_capacity () - node->index ());
289
289
_paused.add (node);
290
290
}
291
291
@@ -341,7 +341,7 @@ BufferNodeList G1DirtyCardQueueSet::take_all_completed_buffers() {
341
341
class G1RefineBufferedCards : public StackObj {
342
342
BufferNode* const _node;
343
343
CardTable::CardValue** const _node_buffer;
344
- const size_t _node_buffer_size ;
344
+ const size_t _node_buffer_capacity ;
345
345
const uint _worker_id;
346
346
G1ConcurrentRefineStats* _stats;
347
347
G1RemSet* const _g1rs;
@@ -351,28 +351,28 @@ class G1RefineBufferedCards : public StackObj {
351
351
return p2 - p1;
352
352
}
353
353
354
- // Sorts the cards from start_index to _node_buffer_size in *decreasing*
354
+ // Sorts the cards from start_index to _node_buffer_capacity in *decreasing*
355
355
// address order. Tests showed that this order is preferable to not sorting
356
356
// or increasing address order.
357
357
void sort_cards (size_t start_index) {
358
358
QuickSort::sort (&_node_buffer[start_index],
359
- _node_buffer_size - start_index,
359
+ _node_buffer_capacity - start_index,
360
360
compare_cards,
361
361
false );
362
362
}
363
363
364
364
// Returns the index to the first clean card in the buffer.
365
365
size_t clean_cards () {
366
366
const size_t start = _node->index ();
367
- assert (start <= _node_buffer_size , " invariant" );
367
+ assert (start <= _node_buffer_capacity , " invariant" );
368
368
369
369
// Two-fingered compaction algorithm similar to the filtering mechanism in
370
370
// SATBMarkQueue. The main difference is that clean_card_before_refine()
371
371
// could change the buffer element in-place.
372
372
// We don't check for SuspendibleThreadSet::should_yield(), because
373
373
// cleaning and redirtying the cards is fast.
374
374
CardTable::CardValue** src = &_node_buffer[start];
375
- CardTable::CardValue** dst = &_node_buffer[_node_buffer_size ];
375
+ CardTable::CardValue** dst = &_node_buffer[_node_buffer_capacity ];
376
376
assert (src <= dst, " invariant" );
377
377
for ( ; src < dst; ++src) {
378
378
// Search low to high for a card to keep.
@@ -391,7 +391,7 @@ class G1RefineBufferedCards : public StackObj {
391
391
// dst points to the first retained clean card, or the end of the buffer
392
392
// if all the cards were discarded.
393
393
const size_t first_clean = dst - _node_buffer;
394
- assert (first_clean >= start && first_clean <= _node_buffer_size , " invariant" );
394
+ assert (first_clean >= start && first_clean <= _node_buffer_capacity , " invariant" );
395
395
// Discarded cards are considered as refined.
396
396
_stats->inc_refined_cards (first_clean - start);
397
397
_stats->inc_precleaned_cards (first_clean - start);
@@ -401,7 +401,7 @@ class G1RefineBufferedCards : public StackObj {
401
401
bool refine_cleaned_cards (size_t start_index) {
402
402
bool result = true ;
403
403
size_t i = start_index;
404
- for ( ; i < _node_buffer_size ; ++i) {
404
+ for ( ; i < _node_buffer_capacity ; ++i) {
405
405
if (SuspendibleThreadSet::should_yield ()) {
406
406
redirty_unrefined_cards (i);
407
407
result = false ;
@@ -415,26 +415,26 @@ class G1RefineBufferedCards : public StackObj {
415
415
}
416
416
417
417
void redirty_unrefined_cards (size_t start) {
418
- for ( ; start < _node_buffer_size ; ++start) {
418
+ for ( ; start < _node_buffer_capacity ; ++start) {
419
419
*_node_buffer[start] = G1CardTable::dirty_card_val ();
420
420
}
421
421
}
422
422
423
423
public:
424
424
G1RefineBufferedCards (BufferNode* node,
425
- size_t node_buffer_size ,
425
+ size_t node_buffer_capacity ,
426
426
uint worker_id,
427
427
G1ConcurrentRefineStats* stats) :
428
428
_node (node),
429
429
_node_buffer (reinterpret_cast <CardTable::CardValue**>(BufferNode::make_buffer_from_node(node))),
430
- _node_buffer_size (node_buffer_size ),
430
+ _node_buffer_capacity (node_buffer_capacity ),
431
431
_worker_id (worker_id),
432
432
_stats (stats),
433
433
_g1rs (G1CollectedHeap::heap()->rem_set ()) {}
434
434
435
435
bool refine () {
436
436
size_t first_clean_index = clean_cards ();
437
- if (first_clean_index == _node_buffer_size ) {
437
+ if (first_clean_index == _node_buffer_capacity ) {
438
438
_node->set_index (first_clean_index);
439
439
return true ;
440
440
}
@@ -457,7 +457,7 @@ bool G1DirtyCardQueueSet::refine_buffer(BufferNode* node,
457
457
G1ConcurrentRefineStats* stats) {
458
458
Ticks start_time = Ticks::now ();
459
459
G1RefineBufferedCards buffered_cards (node,
460
- buffer_size (),
460
+ buffer_capacity (),
461
461
worker_id,
462
462
stats);
463
463
bool result = buffered_cards.refine ();
@@ -468,12 +468,12 @@ bool G1DirtyCardQueueSet::refine_buffer(BufferNode* node,
468
468
void G1DirtyCardQueueSet::handle_refined_buffer (BufferNode* node,
469
469
bool fully_processed) {
470
470
if (fully_processed) {
471
- assert (node->index () == buffer_size (),
471
+ assert (node->index () == buffer_capacity (),
472
472
" Buffer not fully consumed: index: " SIZE_FORMAT " , size: " SIZE_FORMAT,
473
- node->index (), buffer_size ());
473
+ node->index (), buffer_capacity ());
474
474
deallocate_buffer (node);
475
475
} else {
476
- assert (node->index () < buffer_size (), " Buffer fully consumed." );
476
+ assert (node->index () < buffer_capacity (), " Buffer fully consumed." );
477
477
// Buffer incompletely processed because there is a pending safepoint.
478
478
// Record partially processed buffer, to be finished later.
479
479
record_paused_buffer (node);
@@ -576,7 +576,7 @@ G1ConcurrentRefineStats G1DirtyCardQueueSet::concatenate_log_and_stats(Thread* t
576
576
// Flush the buffer if non-empty. Flush before accumulating and
577
577
// resetting stats, since flushing may modify the stats.
578
578
if ((queue.buffer () != nullptr ) &&
579
- (queue.index () != buffer_size ())) {
579
+ (queue.index () != buffer_capacity ())) {
580
580
flush_queue (queue);
581
581
}
582
582
0 commit comments