Skip to content

Commit 6714184

Browse files
committed
8279700: Parallel: Simplify ScavengeRootsTask constructor API
Reviewed-by: tschatzl, sjohanss
1 parent cfee451 commit 6714184

File tree

1 file changed

+8
-21
lines changed

1 file changed

+8
-21
lines changed

src/hotspot/share/gc/parallel/psScavenge.cpp

Lines changed: 8 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -283,37 +283,30 @@ class ScavengeRootsTask : public WorkerTask {
283283
PSOldGen* _old_gen;
284284
HeapWord* _gen_top;
285285
uint _active_workers;
286-
bool _is_empty;
286+
bool _is_old_gen_empty;
287287
TaskTerminator _terminator;
288288

289289
public:
290290
ScavengeRootsTask(PSOldGen* old_gen,
291-
HeapWord* gen_top,
292-
uint active_workers,
293-
bool is_empty) :
291+
uint active_workers) :
294292
WorkerTask("ScavengeRootsTask"),
295293
_strong_roots_scope(active_workers),
296294
_subtasks(ParallelRootType::sentinel),
297295
_old_gen(old_gen),
298-
_gen_top(gen_top),
296+
_gen_top(old_gen->object_space()->top()),
299297
_active_workers(active_workers),
300-
_is_empty(is_empty),
298+
_is_old_gen_empty(old_gen->object_space()->is_empty()),
301299
_terminator(active_workers, PSPromotionManager::vm_thread_promotion_manager()->stack_array_depth()) {
300+
assert(_old_gen != NULL, "Sanity");
302301
}
303302

304303
virtual void work(uint worker_id) {
304+
assert(worker_id < _active_workers, "Sanity");
305305
ResourceMark rm;
306306

307-
if (!_is_empty) {
307+
if (!_is_old_gen_empty) {
308308
// There are only old-to-young pointers if there are objects
309309
// in the old gen.
310-
311-
assert(_old_gen != NULL, "Sanity");
312-
// There are no old-to-young pointers if the old gen is empty.
313-
assert(!_old_gen->object_space()->is_empty(), "Should not be called is there is no work");
314-
assert(_old_gen->object_space()->contains(_gen_top) || _gen_top == _old_gen->object_space()->top(), "Sanity");
315-
assert(worker_id < ParallelGCThreads, "Sanity");
316-
317310
{
318311
PSPromotionManager* pm = PSPromotionManager::gc_thread_promotion_manager(worker_id);
319312
PSCardTable* card_table = ParallelScavengeHeap::heap()->card_table();
@@ -453,12 +446,6 @@ bool PSScavenge::invoke_no_policy() {
453446
// Reset our survivor overflow.
454447
set_survivor_overflow(false);
455448

456-
// We need to save the old top values before
457-
// creating the promotion_manager. We pass the top
458-
// values to the card_table, to prevent it from
459-
// straying into the promotion labs.
460-
HeapWord* old_top = old_gen->object_space()->top();
461-
462449
const uint active_workers =
463450
WorkerPolicy::calc_active_workers(ParallelScavengeHeap::heap()->workers().max_workers(),
464451
ParallelScavengeHeap::heap()->workers().active_workers(),
@@ -472,7 +459,7 @@ bool PSScavenge::invoke_no_policy() {
472459
{
473460
GCTraceTime(Debug, gc, phases) tm("Scavenge", &_gc_timer);
474461

475-
ScavengeRootsTask task(old_gen, old_top, active_workers, old_gen->object_space()->is_empty());
462+
ScavengeRootsTask task(old_gen, active_workers);
476463
ParallelScavengeHeap::heap()->workers().run_task(&task);
477464
}
478465

0 commit comments

Comments
 (0)