< prev index next >
src/hotspot/share/gc/z/zMark.cpp
Print this page
*** 30,39 ****
--- 30,40 ----
#include "gc/z/zOopClosures.inline.hpp"
#include "gc/z/zPage.hpp"
#include "gc/z/zPageTable.inline.hpp"
#include "gc/z/zRootsIterator.hpp"
#include "gc/z/zStat.hpp"
+ #include "gc/z/zStatTLAB.hpp"
#include "gc/z/zTask.hpp"
#include "gc/z/zThread.hpp"
#include "gc/z/zUtils.inline.hpp"
#include "gc/z/zWorkers.inline.hpp"
#include "logging/log.hpp"
*** 117,131 ****
--- 118,146 ----
}
}
class ZMarkRootsIteratorClosure : public ZRootsIteratorClosure {
public:
+ ZMarkRootsIteratorClosure() {
+ ZStatTLAB::reset();
+ }
+
+ ~ZMarkRootsIteratorClosure() {
+ ZStatTLAB::publish();
+ }
+
virtual void do_thread(Thread* thread) {
ZRootsIteratorClosure::do_thread(thread);
// Update thread local address bad mask
ZThreadLocalData::set_address_bad_mask(thread, ZAddressBadMask);
+
+ // Retire TLAB
+ if (UseTLAB && thread->is_Java_thread()) {
+ thread->tlab().retire(ZStatTLAB::get());
+ thread->tlab().resize();
+ }
}
virtual void do_oop(oop* p) {
ZBarrier::mark_barrier_on_root_oop_field(p);
}
< prev index next >