8162929: Enqueuing dirty cards into a single DCQS during GC does not scale

Refactor into G1RedirtyCardsQueue[Set] and G1DirtyCardQueueSet

Reviewed-by: tschatzl, sangheki
This commit is contained in:
Kim Barrett 2019-07-19 16:47:11 -04:00
parent c0f6ce7c54
commit 4b3c528140
13 changed files with 430 additions and 94 deletions

View file

@ -296,6 +296,10 @@ public:
class PtrQueueSet {
BufferNode::Allocator* _allocator;
// Noncopyable - not defined.
PtrQueueSet(const PtrQueueSet&);
PtrQueueSet& operator=(const PtrQueueSet&);
protected:
bool _all_active;
@ -309,6 +313,9 @@ protected:
public:
// Return the associated BufferNode allocator.
BufferNode::Allocator* allocator() const { return _allocator; }
// Return the buffer for a BufferNode of size buffer_size().
void** allocate_buffer();