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, Mutex* fl_lock,
39 int process_completed_threshold,
40 uint buffer_enqueue_threshold_percentage,
41 Mutex* lock) {
42 SATBMarkQueueSet::initialize(cbl_mon, fl_lock,
43 process_completed_threshold,
44 buffer_enqueue_threshold_percentage,
45 lock);
46 _g1h = g1h;
47 }
48
49 void G1SATBMarkQueueSet::handle_zero_index_for_thread(JavaThread* t) {
50 G1ThreadLocalData::satb_mark_queue(t).handle_zero_index();
51 }
52
53 SATBMarkQueue& G1SATBMarkQueueSet::satb_queue_for_thread(JavaThread* 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.
|
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 int process_completed_threshold,
41 uint buffer_enqueue_threshold_percentage,
42 Mutex* lock) {
43 SATBMarkQueueSet::initialize(cbl_mon,
44 allocator,
45 process_completed_threshold,
46 buffer_enqueue_threshold_percentage,
47 lock);
48 _g1h = g1h;
49 }
50
51 void G1SATBMarkQueueSet::handle_zero_index_for_thread(JavaThread* t) {
52 G1ThreadLocalData::satb_mark_queue(t).handle_zero_index();
53 }
54
55 SATBMarkQueue& G1SATBMarkQueueSet::satb_queue_for_thread(JavaThread* const t) const{
56 return G1ThreadLocalData::satb_mark_queue(t);
57 }
58
59 // Return true if a SATB buffer entry refers to an object that
60 // requires marking.
61 //
62 // The entry must point into the G1 heap. In particular, it must not
63 // be a NULL pointer. NULL pointers are pre-filtered and never
64 // inserted into a SATB buffer.
|