RFR: 8u+9: ShenandoahHeuristics region comparator is broken

Aleksey Shipilev shade at redhat.com
Wed Apr 5 05:25:23 UTC 2017


Oops:

diff -r 3af62047e841 src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp
--- a/src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp  Sat Apr 01
16:45:58 2017 +0200
+++ b/src/share/vm/gc/shenandoah/shenandoahCollectorPolicy.cpp  Wed Apr 05
07:14:56 2017 +0200
@@ -48,7 +48,7 @@
   static int compare_by_garbage(RegionGarbage a, RegionGarbage b) {
     if (a.garbage > b.garbage)
       return -1;
-    else if (b.garbage < a.garbage)
+    else if (a.garbage < b.garbage)
       return 1;
     else return 0;
   }

Affects both 9 and 8u. Luckily, most our heuristics do not need this code, with
the notable exception of ConnectionHeuristics.

Testing: hotspot_gc_shenandoah

Thanks,
-Aleksey



More information about the shenandoah-dev mailing list