8080877: Don't use workers()->total_workers() when walking G1CollectedHeap::_task_queues

Reviewed-by: jmasa, drwhite
This commit is contained in:
Stefan Karlsson 2015-05-22 13:35:29 +02:00
parent 23b343af68
commit db20c1bc45
6 changed files with 12 additions and 7 deletions

View File

@ -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"
/////////////////////////////////////////////////////////////////

View File

@ -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

View File

@ -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();
}

View File

@ -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; }

View File

@ -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!

View File

@ -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