25 #include "precompiled.hpp" |
25 #include "precompiled.hpp" |
26 #include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" |
26 #include "gc_implementation/g1/g1BlockOffsetTable.inline.hpp" |
27 #include "memory/space.hpp" |
27 #include "memory/space.hpp" |
28 #include "oops/oop.inline.hpp" |
28 #include "oops/oop.inline.hpp" |
29 #include "runtime/java.hpp" |
29 #include "runtime/java.hpp" |
|
30 #include "services/memTracker.hpp" |
30 |
31 |
31 ////////////////////////////////////////////////////////////////////// |
32 ////////////////////////////////////////////////////////////////////// |
32 // G1BlockOffsetSharedArray |
33 // G1BlockOffsetSharedArray |
33 ////////////////////////////////////////////////////////////////////// |
34 ////////////////////////////////////////////////////////////////////// |
34 |
35 |
42 vm_exit_during_initialization("Could not reserve enough space for heap offset array"); |
43 vm_exit_during_initialization("Could not reserve enough space for heap offset array"); |
43 } |
44 } |
44 if (!_vs.initialize(rs, 0)) { |
45 if (!_vs.initialize(rs, 0)) { |
45 vm_exit_during_initialization("Could not reserve enough space for heap offset array"); |
46 vm_exit_during_initialization("Could not reserve enough space for heap offset array"); |
46 } |
47 } |
|
48 |
|
49 MemTracker::record_virtual_memory_type((address)rs.base(), mtGC); |
|
50 |
47 _offset_array = (u_char*)_vs.low_boundary(); |
51 _offset_array = (u_char*)_vs.low_boundary(); |
48 resize(init_word_size); |
52 resize(init_word_size); |
49 if (TraceBlockOffsetTable) { |
53 if (TraceBlockOffsetTable) { |
50 gclog_or_tty->print_cr("G1BlockOffsetSharedArray::G1BlockOffsetSharedArray: "); |
54 gclog_or_tty->print_cr("G1BlockOffsetSharedArray::G1BlockOffsetSharedArray: "); |
51 gclog_or_tty->print_cr(" " |
55 gclog_or_tty->print_cr(" " |