18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/g1/g1CollectedHeap.inline.hpp"
27 #include "gc/g1/g1SATBMarkQueueSet.hpp"
28 #include "gc/g1/g1ThreadLocalData.hpp"
29 #include "gc/g1/heapRegion.hpp"
30 #include "gc/shared/satbMarkQueue.hpp"
31 #include "oops/oop.hpp"
32 #include "utilities/debug.hpp"
33 #include "utilities/globalDefinitions.hpp"
34
35 G1SATBMarkQueueSet::G1SATBMarkQueueSet() : _g1h(NULL) {}
36
37 void G1SATBMarkQueueSet::initialize(G1CollectedHeap* g1h,
38 Monitor* cbl_mon,
39 BufferNode::Allocator* allocator,
40 size_t process_completed_buffers_threshold,
41 uint buffer_enqueue_threshold_percentage) {
42 SATBMarkQueueSet::initialize(cbl_mon,
43 allocator,
44 process_completed_buffers_threshold,
45 buffer_enqueue_threshold_percentage);
46 _g1h = g1h;
47 }
48
49 void G1SATBMarkQueueSet::handle_zero_index_for_thread(Thread* t) {
50 G1ThreadLocalData::satb_mark_queue(t).handle_zero_index();
51 }
52
53 SATBMarkQueue& G1SATBMarkQueueSet::satb_queue_for_thread(Thread* const t) const{
54 return G1ThreadLocalData::satb_mark_queue(t);
55 }
56
57 // Return true if a SATB buffer entry refers to an object that
58 // requires marking.
59 //
60 // The entry must point into the G1 heap. In particular, it must not
61 // be a NULL pointer. NULL pointers are pre-filtered and never
62 // inserted into a SATB buffer.
63 //
|
18 *
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
22 *
23 */
24
25 #include "precompiled.hpp"
26 #include "gc/g1/g1CollectedHeap.inline.hpp"
27 #include "gc/g1/g1SATBMarkQueueSet.hpp"
28 #include "gc/g1/g1ThreadLocalData.hpp"
29 #include "gc/g1/heapRegion.hpp"
30 #include "gc/shared/satbMarkQueue.hpp"
31 #include "oops/oop.hpp"
32 #include "utilities/debug.hpp"
33 #include "utilities/globalDefinitions.hpp"
34
35 G1SATBMarkQueueSet::G1SATBMarkQueueSet() : _g1h(NULL) {}
36
37 void G1SATBMarkQueueSet::initialize(G1CollectedHeap* g1h,
38 BufferNode::Allocator* allocator,
39 size_t process_completed_buffers_threshold,
40 uint buffer_enqueue_threshold_percentage) {
41 SATBMarkQueueSet::initialize(allocator,
42 process_completed_buffers_threshold,
43 buffer_enqueue_threshold_percentage);
44 _g1h = g1h;
45 }
46
47 void G1SATBMarkQueueSet::handle_zero_index_for_thread(Thread* t) {
48 G1ThreadLocalData::satb_mark_queue(t).handle_zero_index();
49 }
50
51 SATBMarkQueue& G1SATBMarkQueueSet::satb_queue_for_thread(Thread* const t) const{
52 return G1ThreadLocalData::satb_mark_queue(t);
53 }
54
55 // Return true if a SATB buffer entry refers to an object that
56 // requires marking.
57 //
58 // The entry must point into the G1 heap. In particular, it must not
59 // be a NULL pointer. NULL pointers are pre-filtered and never
60 // inserted into a SATB buffer.
61 //
|