< 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 >