< prev index next >

src/hotspot/share/gc/g1/g1CollectedHeap.cpp

Print this page
rev 49502 : imported patch 8199742-collectorstate-fixes
rev 49503 : [mq]: 8199742-stefanj-review
rev 49504 : imported patch 8151171-renamings
rev 49513 : [mq]: 8200385-prev-bitmap-marks-left


4674                                obj->is_typeArray()
4675                               );
4676       return false;
4677     }
4678 
4679     guarantee(obj->is_typeArray(),
4680               "Only eagerly reclaiming type arrays is supported, but the object "
4681               PTR_FORMAT " is not.", p2i(r->bottom()));
4682 
4683     log_debug(gc, humongous)("Dead humongous region %u object size " SIZE_FORMAT " start " PTR_FORMAT " with remset " SIZE_FORMAT " code roots " SIZE_FORMAT " is marked %d reclaim candidate %d type array %d",
4684                              region_idx,
4685                              (size_t)obj->size() * HeapWordSize,
4686                              p2i(r->bottom()),
4687                              r->rem_set()->occupied(),
4688                              r->rem_set()->strong_code_roots_list_length(),
4689                              next_bitmap->is_marked(r->bottom()),
4690                              g1h->is_humongous_reclaim_candidate(region_idx),
4691                              obj->is_typeArray()
4692                             );
4693 
4694     g1h->concurrent_mark()->humongous_object_eagerly_reclaimed(r);






4695     _humongous_objects_reclaimed++;
4696     do {
4697       HeapRegion* next = g1h->next_region_in_humongous(r);
4698       _freed_bytes += r->used();
4699       r->set_containing_set(NULL);
4700       _humongous_regions_reclaimed++;
4701       g1h->free_humongous_region(r, _free_region_list);
4702       r = next;
4703     } while (r != NULL);
4704 
4705     return false;
4706   }
4707 
4708   uint humongous_objects_reclaimed() {
4709     return _humongous_objects_reclaimed;
4710   }
4711 
4712   uint humongous_regions_reclaimed() {
4713     return _humongous_regions_reclaimed;
4714   }




4674                                obj->is_typeArray()
4675                               );
4676       return false;
4677     }
4678 
4679     guarantee(obj->is_typeArray(),
4680               "Only eagerly reclaiming type arrays is supported, but the object "
4681               PTR_FORMAT " is not.", p2i(r->bottom()));
4682 
4683     log_debug(gc, humongous)("Dead humongous region %u object size " SIZE_FORMAT " start " PTR_FORMAT " with remset " SIZE_FORMAT " code roots " SIZE_FORMAT " is marked %d reclaim candidate %d type array %d",
4684                              region_idx,
4685                              (size_t)obj->size() * HeapWordSize,
4686                              p2i(r->bottom()),
4687                              r->rem_set()->occupied(),
4688                              r->rem_set()->strong_code_roots_list_length(),
4689                              next_bitmap->is_marked(r->bottom()),
4690                              g1h->is_humongous_reclaim_candidate(region_idx),
4691                              obj->is_typeArray()
4692                             );
4693 
4694     G1ConcurrentMark* const cm = g1h->concurrent_mark();
4695     cm->humongous_object_eagerly_reclaimed(r);
4696     assert(!cm->is_marked_in_prev_bitmap(obj) && !cm->is_marked_in_next_bitmap(obj),
4697            "Eagerly reclaimed humongous region %u should not be marked at all but is in prev %s next %s",
4698            region_idx,
4699            BOOL_TO_STR(cm->is_marked_in_prev_bitmap(obj)),
4700            BOOL_TO_STR(cm->is_marked_in_next_bitmap(obj)));
4701     _humongous_objects_reclaimed++;
4702     do {
4703       HeapRegion* next = g1h->next_region_in_humongous(r);
4704       _freed_bytes += r->used();
4705       r->set_containing_set(NULL);
4706       _humongous_regions_reclaimed++;
4707       g1h->free_humongous_region(r, _free_region_list);
4708       r = next;
4709     } while (r != NULL);
4710 
4711     return false;
4712   }
4713 
4714   uint humongous_objects_reclaimed() {
4715     return _humongous_objects_reclaimed;
4716   }
4717 
4718   uint humongous_regions_reclaimed() {
4719     return _humongous_regions_reclaimed;
4720   }


< prev index next >