< prev index next >

src/hotspot/share/gc/z/zObjectAllocator.cpp

Print this page




 283 }
 284 
 285 size_t ZObjectAllocator::remaining() const {
 286   assert(ZThread::is_java(), "Should be a Java thread");
 287 
 288   ZPage* page = _shared_small_page.get();
 289   if (page != NULL) {
 290     return page->remaining();
 291   }
 292 
 293   return 0;
 294 }
 295 
 296 void ZObjectAllocator::retire_tlabs() {
 297   ZStatTimer timer(ZSubPhasePauseRetireTLABS);
 298   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 299 
 300   // Retire TLABs
 301   if (UseTLAB) {
 302     ZCollectedHeap* heap = ZCollectedHeap::heap();
 303     heap->accumulate_statistics_all_tlabs();
 304     heap->ensure_parsability(true /* retire_tlabs */);
 305     heap->resize_all_tlabs();
 306   }
 307 
 308   // Reset used
 309   _used.set_all(0);
 310 
 311   // Reset allocation pages
 312   _shared_medium_page.set(NULL);
 313   _shared_small_page.set_all(NULL);
 314   _worker_small_page.set_all(NULL);
 315 }
 316 
 317 static void remap_tlab_address(HeapWord** p) {
 318   *p = (HeapWord*)ZAddress::good_or_null((uintptr_t)*p);
 319 }
 320 
 321 void ZObjectAllocator::remap_tlabs() {
 322   ZStatTimer timer(ZSubPhasePauseRemapTLABS);
 323   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");


 283 }
 284 
 285 size_t ZObjectAllocator::remaining() const {
 286   assert(ZThread::is_java(), "Should be a Java thread");
 287 
 288   ZPage* page = _shared_small_page.get();
 289   if (page != NULL) {
 290     return page->remaining();
 291   }
 292 
 293   return 0;
 294 }
 295 
 296 void ZObjectAllocator::retire_tlabs() {
 297   ZStatTimer timer(ZSubPhasePauseRetireTLABS);
 298   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
 299 
 300   // Retire TLABs
 301   if (UseTLAB) {
 302     ZCollectedHeap* heap = ZCollectedHeap::heap();

 303     heap->ensure_parsability(true /* retire_tlabs */);
 304     heap->resize_all_tlabs();
 305   }
 306 
 307   // Reset used
 308   _used.set_all(0);
 309 
 310   // Reset allocation pages
 311   _shared_medium_page.set(NULL);
 312   _shared_small_page.set_all(NULL);
 313   _worker_small_page.set_all(NULL);
 314 }
 315 
 316 static void remap_tlab_address(HeapWord** p) {
 317   *p = (HeapWord*)ZAddress::good_or_null((uintptr_t)*p);
 318 }
 319 
 320 void ZObjectAllocator::remap_tlabs() {
 321   ZStatTimer timer(ZSubPhasePauseRemapTLABS);
 322   assert(SafepointSynchronize::is_at_safepoint(), "Should be at safepoint");
< prev index next >