annotate src/share/vm/gc_implementation/g1/dirtyCardQueue.hpp @ 8733:9def4075da6d

8008079: G1: Add nextObject routine to CMBitMapRO and replace nextWord Summary: Update the task local finger to the start of the next object when marking aborts, in order to avoid the redundant scanning of all 0's when the marking task restarts, if otherwise updating to the next word. In addition, reuse the routine nextObject() in routine iterate(). Reviewed-by: johnc, ysr Contributed-by: tamao <tao.mao@oracle.com>
author tamao
date Tue, 05 Mar 2013 15:36:56 -0800
parents b9a9ed0f8eeb
children 8847586c9037
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
1 /*
6842
b9a9ed0f8eeb 7197424: update copyright year to match last edit in jdk8 hotspot repository
mikael
parents: 6197
diff changeset
2 * Copyright (c) 2001, 2012, Oracle and/or its affiliates. All rights reserved.
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
4 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
7 * published by the Free Software Foundation.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
8 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
13 * accompanied this code).
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
14 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
18 *
1552
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1111
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1111
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
c18cbe5936b8 6941466: Oracle rebranding changes for Hotspot repositories
trims
parents: 1111
diff changeset
21 * questions.
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
22 *
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
23 */
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
24
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
25 #ifndef SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
26 #define SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
27
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
28 #include "gc_implementation/g1/ptrQueue.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
29 #include "memory/allocation.hpp"
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
30
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
31 class FreeIdSet;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
32
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
33 // A closure class for processing card table entries. Note that we don't
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
34 // require these closure objects to be stack-allocated.
6197
d2a62e0f25eb 6995781: Native Memory Tracking (Phase 1)
zgu
parents: 1972
diff changeset
35 class CardTableEntryClosure: public CHeapObj<mtGC> {
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
36 public:
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
37 // Process the card whose card table entry is "card_ptr". If returns
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
38 // "false", terminate the iteration early.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
39 virtual bool do_card_ptr(jbyte* card_ptr, int worker_i = 0) = 0;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
40 };
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
41
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
42 // A ptrQueue whose elements are "oops", pointers to object heads.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
43 class DirtyCardQueue: public PtrQueue {
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
44 public:
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
45 DirtyCardQueue(PtrQueueSet* qset_, bool perm = false) :
1842
6e0aac35bfa9 6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue
tonyp
parents: 1705
diff changeset
46 // Dirty card queues are always active, so we create them with their
6e0aac35bfa9 6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue
tonyp
parents: 1705
diff changeset
47 // active field set to true.
6e0aac35bfa9 6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue
tonyp
parents: 1705
diff changeset
48 PtrQueue(qset_, perm, true /* active */) { }
6e0aac35bfa9 6980838: G1: guarantee(false) failed: thread has an unexpected active value in its SATB queue
tonyp
parents: 1705
diff changeset
49
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
50 // Apply the closure to all elements, and reset the index to make the
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
51 // buffer empty. If a closure application returns "false", return
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
52 // "false" immediately, halting the iteration. If "consume" is true,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
53 // deletes processed entries from logs.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
54 bool apply_closure(CardTableEntryClosure* cl,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
55 bool consume = true,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
56 size_t worker_i = 0);
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
57
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
58 // Apply the closure to all elements of "buf", down to "index"
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
59 // (inclusive.) If returns "false", then a closure application returned
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
60 // "false", and we return immediately. If "consume" is true, entries are
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
61 // set to NULL as they are processed, so they will not be processed again
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
62 // later.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
63 static bool apply_closure_to_buffer(CardTableEntryClosure* cl,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
64 void** buf, size_t index, size_t sz,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
65 bool consume = true,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
66 int worker_i = 0);
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
67 void **get_buf() { return _buf;}
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
68 void set_buf(void **buf) {_buf = buf;}
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
69 size_t get_index() { return _index;}
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
70 void reinitialize() { _buf = 0; _sz = 0; _index = 0;}
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
71 };
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
72
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
73
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
74
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
75 class DirtyCardQueueSet: public PtrQueueSet {
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
76 CardTableEntryClosure* _closure;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
77
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
78 DirtyCardQueue _shared_dirty_card_queue;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
79
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
80 // Override.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
81 bool mut_process_buffer(void** buf);
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
82
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
83 // Protected by the _cbl_mon.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
84 FreeIdSet* _free_ids;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
85
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
86 // The number of completed buffers processed by mutator and rs thread,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
87 // respectively.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
88 jint _processed_buffers_mut;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
89 jint _processed_buffers_rs_thread;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
90
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
91 public:
1111
44f61c24ddab 6862387: tune concurrent refinement further
iveresov
parents: 1090
diff changeset
92 DirtyCardQueueSet(bool notify_when_complete = true);
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
93
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
94 void initialize(Monitor* cbl_mon, Mutex* fl_lock,
1111
44f61c24ddab 6862387: tune concurrent refinement further
iveresov
parents: 1090
diff changeset
95 int process_completed_threshold,
44f61c24ddab 6862387: tune concurrent refinement further
iveresov
parents: 1090
diff changeset
96 int max_completed_queue,
44f61c24ddab 6862387: tune concurrent refinement further
iveresov
parents: 1090
diff changeset
97 Mutex* lock, PtrQueueSet* fl_owner = NULL);
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
98
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
99 // The number of parallel ids that can be claimed to allow collector or
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
100 // mutator threads to do card-processing work.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
101 static size_t num_par_ids();
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
102
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
103 static void handle_zero_index_for_thread(JavaThread* t);
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
104
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
105 // Register "blk" as "the closure" for all queues. Only one such closure
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
106 // is allowed. The "apply_closure_to_completed_buffer" method will apply
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
107 // this closure to a completed buffer, and "iterate_closure_all_threads"
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
108 // applies it to partially-filled buffers (the latter should only be done
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
109 // with the world stopped).
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
110 void set_closure(CardTableEntryClosure* closure);
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
111
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
112 // If there is a registered closure for buffers, apply it to all entries
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
113 // in all currently-active buffers. This should only be applied at a
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
114 // safepoint. (Currently must not be called in parallel; this should
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
115 // change in the future.) If "consume" is true, processed entries are
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
116 // discarded.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
117 void iterate_closure_all_threads(bool consume = true,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
118 size_t worker_i = 0);
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
119
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
120 // If there exists some completed buffer, pop it, then apply the
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
121 // registered closure to all its elements, nulling out those elements
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
122 // processed. If all elements are processed, returns "true". If no
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
123 // completed buffers exist, returns false. If a completed buffer exists,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
124 // but is only partially completed before a "yield" happens, the
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
125 // partially completed buffer (with its processed elements set to NULL)
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
126 // is returned to the completed buffer set, and this call returns false.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
127 bool apply_closure_to_completed_buffer(int worker_i = 0,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
128 int stop_at = 0,
1090
fa357420e7d2 6899058: G1: Internal error in ptrQueue.cpp:201 in nightly tests
johnc
parents: 616
diff changeset
129 bool during_pause = false);
fa357420e7d2 6899058: G1: Internal error in ptrQueue.cpp:201 in nightly tests
johnc
parents: 616
diff changeset
130
1705
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
131 // If there exists some completed buffer, pop it, then apply the
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
132 // specified closure to all its elements, nulling out those elements
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
133 // processed. If all elements are processed, returns "true". If no
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
134 // completed buffers exist, returns false. If a completed buffer exists,
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
135 // but is only partially completed before a "yield" happens, the
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
136 // partially completed buffer (with its processed elements set to NULL)
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
137 // is returned to the completed buffer set, and this call returns false.
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
138 bool apply_closure_to_completed_buffer(CardTableEntryClosure* cl,
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
139 int worker_i = 0,
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
140 int stop_at = 0,
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
141 bool during_pause = false);
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
142
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
143 // Helper routine for the above.
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
144 bool apply_closure_to_completed_buffer_helper(CardTableEntryClosure* cl,
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
145 int worker_i,
1111
44f61c24ddab 6862387: tune concurrent refinement further
iveresov
parents: 1090
diff changeset
146 BufferNode* nd);
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
147
1111
44f61c24ddab 6862387: tune concurrent refinement further
iveresov
parents: 1090
diff changeset
148 BufferNode* get_completed_buffer(int stop_at);
1090
fa357420e7d2 6899058: G1: Internal error in ptrQueue.cpp:201 in nightly tests
johnc
parents: 616
diff changeset
149
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
150 // Applies the current closure to all completed buffers,
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
151 // non-consumptively.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
152 void apply_closure_to_all_completed_buffers();
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
153
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
154 DirtyCardQueue* shared_dirty_card_queue() {
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
155 return &_shared_dirty_card_queue;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
156 }
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
157
1705
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
158 // Deallocate any completed log buffers
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
159 void clear();
2d160770d2e5 6814437: G1: remove the _new_refs array
johnc
parents: 1552
diff changeset
160
342
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
161 // If a full collection is happening, reset partial logs, and ignore
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
162 // completed ones: the full collection will make them all irrelevant.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
163 void abandon_logs();
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
164
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
165 // If any threads have partial logs, add them to the global list of logs.
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
166 void concatenate_logs();
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
167 void clear_n_completed_buffers() { _n_completed_buffers = 0;}
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
168
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
169 jint processed_buffers_mut() {
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
170 return _processed_buffers_mut;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
171 }
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
172 jint processed_buffers_rs_thread() {
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
173 return _processed_buffers_rs_thread;
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
174 }
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
175
37f87013dfd8 6711316: Open source the Garbage-First garbage collector
ysr
parents:
diff changeset
176 };
1972
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
177
f95d63e2154a 6989984: Use standard include model for Hospot
stefank
parents: 1842
diff changeset
178 #endif // SHARE_VM_GC_IMPLEMENTATION_G1_DIRTYCARDQUEUE_HPP