--- old/src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp 2019-11-13 17:04:44.366343688 -0800 +++ new/src/hotspot/share/gc/g1/g1DirtyCardQueue.hpp 2019-11-13 17:04:44.034345750 -0800 @@ -78,6 +78,16 @@ void abandon_completed_buffers(); + // Refine the cards in "node" from its index to buffer_size. + // Stops processing if SuspendibleThreadSet::should_yield() is true. + // Returns true if the entire buffer was processed, false if there + // is a pending yield request. The node's index is updated to exclude + // the processed elements, e.g. up to the element before processing + // stopped, or one past the last element if the entire buffer was + // processed. Increments *total_refined_cards by the number of cards + // processed and removed from the buffer. + bool refine_buffer(BufferNode* node, uint worker_id, size_t* total_refined_cards); + bool mut_process_buffer(BufferNode* node); // If the queue contains more cards than configured here, the