mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-22 03:54:33 +02:00
6962947: shared TaskQueue statistics
Reviewed-by: tonyp, ysr
This commit is contained in:
parent
4efdcb87d1
commit
daf491a814
11 changed files with 236 additions and 137 deletions
|
@ -539,10 +539,9 @@ ParNewGeneration(ReservedSpace rs, size_t initial_byte_size, int level)
|
|||
guarantee(_task_queues != NULL, "task_queues allocation failure.");
|
||||
|
||||
for (uint i1 = 0; i1 < ParallelGCThreads; i1++) {
|
||||
ObjToScanQueuePadded *q_padded = new ObjToScanQueuePadded();
|
||||
guarantee(q_padded != NULL, "work_queue Allocation failure.");
|
||||
|
||||
_task_queues->register_queue(i1, &q_padded->work_queue);
|
||||
ObjToScanQueue *q = new ObjToScanQueue();
|
||||
guarantee(q != NULL, "work_queue Allocation failure.");
|
||||
_task_queues->register_queue(i1, q);
|
||||
}
|
||||
|
||||
for (uint i2 = 0; i2 < ParallelGCThreads; i2++)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2001, 2009, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2001, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -33,8 +33,8 @@ class ParEvacuateFollowersClosure;
|
|||
// but they must be here to allow ParScanClosure::do_oop_work to be defined
|
||||
// in genOopClosures.inline.hpp.
|
||||
|
||||
typedef OopTaskQueue ObjToScanQueue;
|
||||
typedef OopTaskQueueSet ObjToScanQueueSet;
|
||||
typedef Padded<OopTaskQueue> ObjToScanQueue;
|
||||
typedef GenericTaskQueueSet<ObjToScanQueue> ObjToScanQueueSet;
|
||||
|
||||
// Enable this to get push/pop/steal stats.
|
||||
const int PAR_STATS_ENABLED = 0;
|
||||
|
@ -304,12 +304,6 @@ class ParNewGeneration: public DefNewGeneration {
|
|||
friend class ParEvacuateFollowersClosure;
|
||||
|
||||
private:
|
||||
// XXX use a global constant instead of 64!
|
||||
struct ObjToScanQueuePadded {
|
||||
ObjToScanQueue work_queue;
|
||||
char pad[64 - sizeof(ObjToScanQueue)]; // prevent false sharing
|
||||
};
|
||||
|
||||
// The per-worker-thread work queues
|
||||
ObjToScanQueueSet* _task_queues;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
* Copyright (c) 2007, Oracle and/or its affiliates. All rights reserved.
|
||||
* Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
|
@ -26,7 +26,8 @@
|
|||
|
||||
class ParScanThreadState;
|
||||
class ParNewGeneration;
|
||||
typedef OopTaskQueueSet ObjToScanQueueSet;
|
||||
typedef Padded<OopTaskQueue> ObjToScanQueue;
|
||||
typedef GenericTaskQueueSet<ObjToScanQueue> ObjToScanQueueSet;
|
||||
class ParallelTaskTerminator;
|
||||
|
||||
class ParScanClosure: public OopsInGenClosure {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue