src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp

changeset 4037
da91efe96a93
parent 3900
d2a62e0f25eb
child 4128
f81a7c0c618d
     1.1 --- a/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Fri Aug 31 16:39:35 2012 -0700
     1.2 +++ b/src/share/vm/gc_implementation/parallelScavenge/psScavenge.cpp	Sat Sep 01 13:25:18 2012 -0400
     1.3 @@ -284,7 +284,6 @@
     1.4  
     1.5    PSYoungGen* young_gen = heap->young_gen();
     1.6    PSOldGen* old_gen = heap->old_gen();
     1.7 -  PSPermGen* perm_gen = heap->perm_gen();
     1.8    PSAdaptiveSizePolicy* size_policy = heap->size_policy();
     1.9    heap->increment_total_collections();
    1.10  
    1.11 @@ -338,7 +337,6 @@
    1.12      if (VerifyObjectStartArray &&
    1.13          VerifyBeforeGC) {
    1.14        old_gen->verify_object_start_array();
    1.15 -      perm_gen->verify_object_start_array();
    1.16      }
    1.17  
    1.18      // Verify no unmarked old->young roots
    1.19 @@ -370,12 +368,11 @@
    1.20      // Reset our survivor overflow.
    1.21      set_survivor_overflow(false);
    1.22  
    1.23 -    // We need to save the old/perm top values before
    1.24 +    // We need to save the old top values before
    1.25      // creating the promotion_manager. We pass the top
    1.26      // values to the card_table, to prevent it from
    1.27      // straying into the promotion labs.
    1.28      HeapWord* old_top = old_gen->object_space()->top();
    1.29 -    HeapWord* perm_top = perm_gen->object_space()->top();
    1.30  
    1.31      // Release all previously held resources
    1.32      gc_task_manager()->release_all_resources();
    1.33 @@ -403,8 +400,6 @@
    1.34          q->enqueue(new OldToYoungRootsTask(old_gen, old_top, i, stripe_total));
    1.35        }
    1.36  
    1.37 -      q->enqueue(new SerialOldToYoungRootsTask(perm_gen, perm_top));
    1.38 -
    1.39        q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::universe));
    1.40        q->enqueue(new ScavengeRootsTask(ScavengeRootsTask::jni_handles));
    1.41        // We scan the thread roots in parallel
    1.42 @@ -454,13 +449,11 @@
    1.43        reference_processor()->enqueue_discovered_references(NULL);
    1.44      }
    1.45  
    1.46 -    if (!JavaObjectsInPerm) {
    1.47        // Unlink any dead interned Strings
    1.48        StringTable::unlink(&_is_alive_closure);
    1.49        // Process the remaining live ones
    1.50        PSScavengeRootsClosure root_closure(promotion_manager);
    1.51        StringTable::oops_do(&root_closure);
    1.52 -    }
    1.53  
    1.54      // Finally, flush the promotion_manager's labs, and deallocate its stacks.
    1.55      PSPromotionManager::post_scavenge();
    1.56 @@ -503,10 +496,8 @@
    1.57                           heap->total_collections());
    1.58  
    1.59            if (Verbose) {
    1.60 -            gclog_or_tty->print("old_gen_capacity: %d young_gen_capacity: %d"
    1.61 -              " perm_gen_capacity: %d ",
    1.62 -              old_gen->capacity_in_bytes(), young_gen->capacity_in_bytes(),
    1.63 -              perm_gen->capacity_in_bytes());
    1.64 +            gclog_or_tty->print("old_gen_capacity: %d young_gen_capacity: %d",
    1.65 +              old_gen->capacity_in_bytes(), young_gen->capacity_in_bytes());
    1.66            }
    1.67          }
    1.68  
    1.69 @@ -564,7 +555,6 @@
    1.70            size_policy->compute_generation_free_space(young_gen->used_in_bytes(),
    1.71                                     young_gen->eden_space()->used_in_bytes(),
    1.72                                     old_gen->used_in_bytes(),
    1.73 -                                   perm_gen->used_in_bytes(),
    1.74                                     young_gen->eden_space()->capacity_in_bytes(),
    1.75                                     old_gen->max_gen_size(),
    1.76                                     max_eden_size,
    1.77 @@ -614,7 +604,6 @@
    1.78      if (VerifyObjectStartArray &&
    1.79          VerifyAfterGC) {
    1.80        old_gen->verify_object_start_array();
    1.81 -      perm_gen->verify_object_start_array();
    1.82      }
    1.83  
    1.84      // Verify all old -> young cards are now precise
    1.85 @@ -810,11 +799,8 @@
    1.86  
    1.87    PSYoungGen* young_gen = heap->young_gen();
    1.88    PSOldGen* old_gen = heap->old_gen();
    1.89 -  PSPermGen* perm_gen = heap->perm_gen();
    1.90  
    1.91    // Set boundary between young_gen and old_gen
    1.92 -  assert(perm_gen->reserved().end() <= old_gen->object_space()->bottom(),
    1.93 -         "perm above old");
    1.94    assert(old_gen->reserved().end() <= young_gen->eden_space()->bottom(),
    1.95           "old above young");
    1.96    _young_generation_boundary = young_gen->eden_space()->bottom();

mercurial