< prev index next >

src/share/vm/gc/shared/cardTableModRefBS.cpp

Print this page

        

*** 26,35 **** --- 26,36 ---- #include "gc/shared/cardTableModRefBS.inline.hpp" #include "gc/shared/collectedHeap.hpp" #include "gc/shared/genCollectedHeap.hpp" #include "gc/shared/space.inline.hpp" #include "memory/virtualspace.hpp" + #include "logging/log.hpp" #include "services/memTracker.hpp" #include "utilities/macros.hpp" // This kind of "BarrierSet" allows a "CollectedHeap" to detect and // enumerate ref fields that have been modified (since the last
*** 113,133 **** _guard_region = MemRegion((HeapWord*)guard_page, _page_size); os::commit_memory_or_exit((char*)guard_page, _page_size, _page_size, !ExecMem, "card table last card"); *guard_card = last_card; ! if (TraceCardTableModRefBS) { ! gclog_or_tty->print_cr("CardTableModRefBS::CardTableModRefBS: "); ! gclog_or_tty->print_cr(" " ! " &_byte_map[0]: " INTPTR_FORMAT ! " &_byte_map[_last_valid_index]: " INTPTR_FORMAT, ! p2i(&_byte_map[0]), ! p2i(&_byte_map[_last_valid_index])); ! gclog_or_tty->print_cr(" " ! " byte_map_base: " INTPTR_FORMAT, ! p2i(byte_map_base)); ! } } CardTableModRefBS::~CardTableModRefBS() { if (_covered) { delete[] _covered; --- 114,127 ---- _guard_region = MemRegion((HeapWord*)guard_page, _page_size); os::commit_memory_or_exit((char*)guard_page, _page_size, _page_size, !ExecMem, "card table last card"); *guard_card = last_card; ! log_trace(gc, barrier)("CardTableModRefBS::CardTableModRefBS: "); ! log_trace(gc, barrier)(" &_byte_map[0]: " INTPTR_FORMAT " &_byte_map[_last_valid_index]: " INTPTR_FORMAT, ! p2i(&_byte_map[0]), p2i(&_byte_map[_last_valid_index])); ! log_trace(gc, barrier)(" byte_map_base: " INTPTR_FORMAT, p2i(byte_map_base)); } CardTableModRefBS::~CardTableModRefBS() { if (_covered) { delete[] _covered;
*** 348,380 **** memset(entry, clean_card, pointer_delta(end, entry, sizeof(jbyte))); } } // In any case, the covered size changes. _covered[ind].set_word_size(new_region.word_size()); ! if (TraceCardTableModRefBS) { ! gclog_or_tty->print_cr("CardTableModRefBS::resize_covered_region: "); ! gclog_or_tty->print_cr(" " ! " _covered[%d].start(): " INTPTR_FORMAT ! " _covered[%d].last(): " INTPTR_FORMAT, ! ind, p2i(_covered[ind].start()), ! ind, p2i(_covered[ind].last())); ! gclog_or_tty->print_cr(" " ! " _committed[%d].start(): " INTPTR_FORMAT ! " _committed[%d].last(): " INTPTR_FORMAT, ! ind, p2i(_committed[ind].start()), ! ind, p2i(_committed[ind].last())); ! gclog_or_tty->print_cr(" " ! " byte_for(start): " INTPTR_FORMAT ! " byte_for(last): " INTPTR_FORMAT, ! p2i(byte_for(_covered[ind].start())), ! p2i(byte_for(_covered[ind].last()))); ! gclog_or_tty->print_cr(" " ! " addr_for(start): " INTPTR_FORMAT ! " addr_for(last): " INTPTR_FORMAT, ! p2i(addr_for((jbyte*) _committed[ind].start())), ! p2i(addr_for((jbyte*) _committed[ind].last()))); ! } // Touch the last card of the covered region to show that it // is committed (or SEGV). debug_only((void) (*byte_for(_covered[ind].last()));) debug_only(verify_guard();) } --- 342,362 ---- memset(entry, clean_card, pointer_delta(end, entry, sizeof(jbyte))); } } // In any case, the covered size changes. _covered[ind].set_word_size(new_region.word_size()); ! ! log_trace(gc, barrier)("CardTableModRefBS::resize_covered_region: "); ! log_trace(gc, barrier)(" _covered[%d].start(): " INTPTR_FORMAT " _covered[%d].last(): " INTPTR_FORMAT, ! ind, p2i(_covered[ind].start()), ind, p2i(_covered[ind].last())); ! log_trace(gc, barrier)(" _committed[%d].start(): " INTPTR_FORMAT " _committed[%d].last(): " INTPTR_FORMAT, ! ind, p2i(_committed[ind].start()), ind, p2i(_committed[ind].last())); ! log_trace(gc, barrier)(" byte_for(start): " INTPTR_FORMAT " byte_for(last): " INTPTR_FORMAT, ! p2i(byte_for(_covered[ind].start())), p2i(byte_for(_covered[ind].last()))); ! log_trace(gc, barrier)(" addr_for(start): " INTPTR_FORMAT " addr_for(last): " INTPTR_FORMAT, ! p2i(addr_for((jbyte*) _committed[ind].start())), p2i(addr_for((jbyte*) _committed[ind].last()))); ! // Touch the last card of the covered region to show that it // is committed (or SEGV). debug_only((void) (*byte_for(_covered[ind].last()));) debug_only(verify_guard();) }
< prev index next >