< prev index next >

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

Print this page

        

@@ -101,10 +101,11 @@
   // a candidate relocation set and calculate the maximum space requirement for
   // their live objects.
   const size_t npages = _registered_pages.size();
   size_t selected_from = 0;
   size_t selected_to = 0;
+  size_t selected_from_size = 0;
   size_t from_size = 0;
 
   semi_sort();
 
   for (size_t from = 1; from <= npages; from++) {

@@ -125,10 +126,11 @@
     const size_t diff_to = to - selected_to;
     const double diff_reclaimable = 100 - percent_of(diff_to, diff_from);
     if (diff_reclaimable > ZFragmentationLimit) {
       selected_from = from;
       selected_to = to;
+      selected_from_size = from_size;
     }
 
     log_trace(gc, reloc)("Candidate Relocation Set (%s Pages): "
                          SIZE_FORMAT "->" SIZE_FORMAT ", %.1f%% relative defragmentation, %s",
                          _name, from, to, diff_reclaimable, (selected_from == from) ? "Selected" : "Rejected");

@@ -136,11 +138,11 @@
 
   // Finalize selection
   _nselected = selected_from;
 
   // Update statistics
-  _relocating = from_size;
+  _relocating = selected_from_size;
   for (size_t i = _nselected; i < npages; i++) {
     ZPage* const page = _sorted_pages[i];
     _fragmentation += page->size() - page->live_bytes();
   }
 
< prev index next >