Print this page
rev 4520 : 7066063: CMS: "Conservation Principle" assert failed
Summary: Add call to coalBirth() in CompactibleFreeListSpace::reset()
Reviewed-by: ysr, jmasa

Split Split Close
Expand all
Collapse all
          --- old/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
          +++ new/src/share/vm/gc_implementation/concurrentMarkSweep/compactibleFreeListSpace.cpp
↓ open down ↓ 277 lines elided ↑ open up ↑
 278  278      assert(mr.word_size() >= MinChunkSize, "Chunk size is too small");
 279  279      _bt.single_block(mr.start(), mr.word_size());
 280  280      FreeChunk* fc = (FreeChunk*) mr.start();
 281  281      fc->set_size(mr.word_size());
 282  282      if (mr.word_size() >= IndexSetSize ) {
 283  283        returnChunkToDictionary(fc);
 284  284      } else {
 285  285        _bt.verify_not_unallocated((HeapWord*)fc, fc->size());
 286  286        _indexedFreeList[mr.word_size()].return_chunk_at_head(fc);
 287  287      }
      288 +    coalBirth(mr.word_size());
 288  289    }
 289  290    _promoInfo.reset();
 290  291    _smallLinearAllocBlock._ptr = NULL;
 291  292    _smallLinearAllocBlock._word_size = 0;
 292  293  }
 293  294  
 294  295  void CompactibleFreeListSpace::reset_after_compaction() {
 295  296    // Reset the space to the new reality - one free chunk.
 296  297    MemRegion mr(compaction_top(), end());
 297  298    reset(mr);
↓ open down ↓ 2736 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX