src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/gc_implementation/concurrentMarkSweep

src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp

Print this page




 140 void AdaptiveFreeList<Chunk>::verify_stats() const {
 141   // The +1 of the LH comparand is to allow some "looseness" in
 142   // checking: we usually call this interface when adding a block
 143   // and we'll subsequently update the stats; we cannot update the
 144   // stats beforehand because in the case of the large-block BT
 145   // dictionary for example, this might be the first block and
 146   // in that case there would be no place that we could record
 147   // the stats (which are kept in the block itself).
 148   assert((_allocation_stats.prev_sweep() + _allocation_stats.split_births()
 149           + _allocation_stats.coal_births() + 1)   // Total Production Stock + 1
 150          >= (_allocation_stats.split_deaths() + _allocation_stats.coal_deaths()
 151              + (ssize_t)count()),                // Total Current Stock + depletion
 152          err_msg("FreeList " PTR_FORMAT " of size " SIZE_FORMAT
 153                  " violates Conservation Principle: "
 154                  "prev_sweep(" SIZE_FORMAT ")"
 155                  " + split_births(" SIZE_FORMAT ")"
 156                  " + coal_births(" SIZE_FORMAT ") + 1 >= "
 157                  " split_deaths(" SIZE_FORMAT ")"
 158                  " coal_deaths(" SIZE_FORMAT ")"
 159                  " + count(" SSIZE_FORMAT ")",
 160                  this, size(), _allocation_stats.prev_sweep(), _allocation_stats.split_births(),
 161                  _allocation_stats.split_births(), _allocation_stats.split_deaths(),
 162                  _allocation_stats.coal_deaths(), count()));
 163 }
 164 #endif
 165 
 166 // Needs to be after the definitions have been seen.
 167 template class AdaptiveFreeList<FreeChunk>;


 140 void AdaptiveFreeList<Chunk>::verify_stats() const {
 141   // The +1 of the LH comparand is to allow some "looseness" in
 142   // checking: we usually call this interface when adding a block
 143   // and we'll subsequently update the stats; we cannot update the
 144   // stats beforehand because in the case of the large-block BT
 145   // dictionary for example, this might be the first block and
 146   // in that case there would be no place that we could record
 147   // the stats (which are kept in the block itself).
 148   assert((_allocation_stats.prev_sweep() + _allocation_stats.split_births()
 149           + _allocation_stats.coal_births() + 1)   // Total Production Stock + 1
 150          >= (_allocation_stats.split_deaths() + _allocation_stats.coal_deaths()
 151              + (ssize_t)count()),                // Total Current Stock + depletion
 152          err_msg("FreeList " PTR_FORMAT " of size " SIZE_FORMAT
 153                  " violates Conservation Principle: "
 154                  "prev_sweep(" SIZE_FORMAT ")"
 155                  " + split_births(" SIZE_FORMAT ")"
 156                  " + coal_births(" SIZE_FORMAT ") + 1 >= "
 157                  " split_deaths(" SIZE_FORMAT ")"
 158                  " coal_deaths(" SIZE_FORMAT ")"
 159                  " + count(" SSIZE_FORMAT ")",
 160                  p2i(this), size(), _allocation_stats.prev_sweep(), _allocation_stats.split_births(),
 161                  _allocation_stats.split_births(), _allocation_stats.split_deaths(),
 162                  _allocation_stats.coal_deaths(), count()));
 163 }
 164 #endif
 165 
 166 // Needs to be after the definitions have been seen.
 167 template class AdaptiveFreeList<FreeChunk>;
src/share/vm/gc_implementation/concurrentMarkSweep/adaptiveFreeList.cpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File