mirror of
https://github.com/openjdk/jdk.git
synced 2026-06-02 08:42:39 +00:00
8080877: Don't use workers()->total_workers() when walking G1CollectedHeap::_task_queues
Reviewed-by: jmasa, drwhite
This commit is contained in:
parent
23b343af68
commit
db20c1bc45
@ -26,6 +26,7 @@
|
||||
#define SHARE_VM_GC_CMS_CMSOOPCLOSURES_HPP
|
||||
|
||||
#include "gc/shared/genOopClosures.hpp"
|
||||
#include "gc/shared/taskqueue.hpp"
|
||||
#include "memory/iterator.hpp"
|
||||
|
||||
/////////////////////////////////////////////////////////////////
|
||||
|
||||
@ -26,6 +26,7 @@
|
||||
#define SHARE_VM_GC_CMS_PAROOPCLOSURES_HPP
|
||||
|
||||
#include "gc/shared/genOopClosures.hpp"
|
||||
#include "gc/shared/taskqueue.hpp"
|
||||
#include "memory/padded.hpp"
|
||||
|
||||
// Closures for ParNewGeneration
|
||||
|
||||
@ -3545,6 +3545,10 @@ public:
|
||||
};
|
||||
#endif // ASSERT
|
||||
|
||||
uint G1CollectedHeap::num_task_queues() const {
|
||||
return _task_queues->size();
|
||||
}
|
||||
|
||||
#if TASKQUEUE_STATS
|
||||
void G1CollectedHeap::print_taskqueue_stats_hdr(outputStream* const st) {
|
||||
st->print_raw_cr("GC Task Stats");
|
||||
@ -3556,7 +3560,7 @@ void G1CollectedHeap::print_taskqueue_stats(outputStream* const st) const {
|
||||
print_taskqueue_stats_hdr(st);
|
||||
|
||||
TaskQueueStats totals;
|
||||
const uint n = workers()->total_workers();
|
||||
const uint n = num_task_queues();
|
||||
for (uint i = 0; i < n; ++i) {
|
||||
st->print("%3u ", i); task_queue(i)->stats.print(st); st->cr();
|
||||
totals += task_queue(i)->stats;
|
||||
@ -3567,7 +3571,7 @@ void G1CollectedHeap::print_taskqueue_stats(outputStream* const st) const {
|
||||
}
|
||||
|
||||
void G1CollectedHeap::reset_taskqueue_stats() {
|
||||
const uint n = workers()->total_workers();
|
||||
const uint n = num_task_queues();
|
||||
for (uint i = 0; i < n; ++i) {
|
||||
task_queue(i)->stats.reset();
|
||||
}
|
||||
|
||||
@ -981,6 +981,8 @@ public:
|
||||
|
||||
RefToScanQueue *task_queue(uint i) const;
|
||||
|
||||
uint num_task_queues() const;
|
||||
|
||||
// A set of cards where updates happened during the GC
|
||||
DirtyCardQueueSet& dirty_card_queue_set() { return _dirty_card_queue_set; }
|
||||
|
||||
|
||||
@ -35,11 +35,6 @@ class CardTableModRefBS;
|
||||
class DefNewGeneration;
|
||||
class KlassRemSet;
|
||||
|
||||
template<class E, MEMFLAGS F, unsigned int N> class GenericTaskQueue;
|
||||
typedef GenericTaskQueue<oop, mtGC, TASKQUEUE_SIZE> OopTaskQueue;
|
||||
template<class T, MEMFLAGS F> class GenericTaskQueueSet;
|
||||
typedef GenericTaskQueueSet<OopTaskQueue, mtGC> OopTaskQueueSet;
|
||||
|
||||
// Closure for iterating roots from a particular generation
|
||||
// Note: all classes deriving from this MUST call this do_barrier
|
||||
// method at the end of their own do_oop method!
|
||||
|
||||
@ -382,6 +382,8 @@ public:
|
||||
bool steal(uint queue_num, int* seed, E& t);
|
||||
|
||||
bool peek();
|
||||
|
||||
uint size() const { return _n; }
|
||||
};
|
||||
|
||||
template<class T, MEMFLAGS F> void
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user