comparison src/share/vm/gc_implementation/parallelScavenge/cardTableExtension.cpp @ 263:12eea04c8b06

6672698: mangle_unused_area() should not remangle the entire heap at each collection. Summary: Maintain a high water mark for the allocations in a space and mangle only up to that high water mark. Reviewed-by: ysr, apetrusenko
author jmasa
date Wed, 09 Jul 2008 15:08:55 -0700
parents ba764ed4b6f2
children 850fdf70db2b
comparison
equal deleted inserted replaced
225:286bee59f34b 263:12eea04c8b06
664 // |+ cur committed +++++++++++| 664 // |+ cur committed +++++++++++|
665 // |+ new committed +++++++| 665 // |+ new committed +++++++|
666 666
667 HeapWord* new_end_for_commit = 667 HeapWord* new_end_for_commit =
668 MIN2(cur_committed.end(), _guard_region.start()); 668 MIN2(cur_committed.end(), _guard_region.start());
669 MemRegion new_committed = 669 if(new_start_aligned < new_end_for_commit) {
670 MemRegion(new_start_aligned, new_end_for_commit); 670 MemRegion new_committed =
671 if(!new_committed.is_empty()) { 671 MemRegion(new_start_aligned, new_end_for_commit);
672 if (!os::commit_memory((char*)new_committed.start(), 672 if (!os::commit_memory((char*)new_committed.start(),
673 new_committed.byte_size())) { 673 new_committed.byte_size())) {
674 vm_exit_out_of_memory(new_committed.byte_size(), 674 vm_exit_out_of_memory(new_committed.byte_size(),
675 "card table expansion"); 675 "card table expansion");
676 } 676 }