6984287: Regularize how GC parallel workers are specified

Associate number of GC workers with the workgang as opposed to the task.

Reviewed-by: johnc, ysr
This commit is contained in:
Jon Masamitsu 2010-09-20 14:38:38 -07:00
parent 3af63c10ab
commit 28e56b8970
29 changed files with 504 additions and 216 deletions

View file

@ -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
@ -44,7 +44,7 @@ void CardTableModRefBS::par_non_clean_card_iterate_work(Space* sp, MemRegion mr,
int n_strides = n_threads * StridesPerThread;
SequentialSubTasksDone* pst = sp->par_seq_tasks();
pst->set_par_threads(n_threads);
pst->set_n_threads(n_threads);
pst->set_n_tasks(n_strides);
int stride = 0;

View file

@ -1533,3 +1533,7 @@ void ParNewGeneration::ref_processor_init()
const char* ParNewGeneration::name() const {
return "par new generation";
}
bool ParNewGeneration::in_use() {
return UseParNewGC && ParallelGCThreads > 0;
}

View file

@ -350,6 +350,8 @@ class ParNewGeneration: public DefNewGeneration {
delete _task_queues;
}
static bool in_use();
virtual void ref_processor_init();
virtual Generation::Name kind() { return Generation::ParNew; }
virtual const char* name() const;