RFR: Fix ShHeap::notify_alloc usages: it accepts words, not bytes

Roman Kennke roman at kennke.org
Wed Aug 22 09:57:02 UTC 2018


Yup. Good find.

Am 22. August 2018 11:24:23 MESZ schrieb Aleksey Shipilev <shade at redhat.com>:
>There is a little bug in tracking the current allocated size, which
>trips the new alloc-rate-based
>heuristics off. The argument for notify_alloc is words, not bytes. Fix:
>
>diff -r a98f127f8c22
>src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp
>--- a/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp     Wed Aug
>22 10:50:28 2018 +0200
>+++ b/src/hotspot/share/gc/shenandoah/shenandoahFreeSet.cpp     Wed Aug
>22 11:22:41 2018 +0200
>@@ -218,5 +218,5 @@
>     if (waste > 0) {
>       increase_used(waste);
>-      _heap->notify_alloc(waste, true);
>+      _heap->notify_alloc_words(waste >> LogHeapWordSize, true);
>     }
>
>@@ -329,5 +329,5 @@
>   if (remainder != 0) {
>     // Record this remainder as allocation waste
>-    _heap->notify_alloc(ShenandoahHeapRegion::region_size_words() -
>remainder, true);
>+   
>_heap->notify_alloc_words(ShenandoahHeapRegion::region_size_words() -
>remainder, true);
>   }
>
>diff -r a98f127f8c22 src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp
>--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp        Wed Aug
>22 10:50:28 2018 +0200
>+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.cpp        Wed Aug
>22 11:22:41 2018 +0200
>@@ -648,5 +648,5 @@
> }
>
>-void ShenandoahHeap::notify_alloc(size_t words, bool waste) {
>+void ShenandoahHeap::notify_alloc_words(size_t words, bool waste) {
>   size_t bytes = words * HeapWordSize;
>   if (!waste) {
>@@ -865,5 +865,5 @@
>             alloc_type_to_string(req.type()), requested, actual);
>
>-    notify_alloc(actual, false);
>+    notify_alloc_words(actual, false);
>
>// If we requested more than we were granted, give the rest back to
>pacer.
>diff -r a98f127f8c22 src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp
>--- a/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp        Wed Aug
>22 10:50:28 2018 +0200
>+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeap.hpp        Wed Aug
>22 11:22:41 2018 +0200
>@@ -515,5 +515,5 @@
>   void increase_allocated(size_t bytes);
>
>-  void notify_alloc(size_t words, bool waste);
>+  void notify_alloc_words(size_t words, bool waste);
>
>
>Testing: misbehaving heuristics, tier1_gc_shenandoah
>
>Thanks,
>-Aleksey

-- 
Diese Nachricht wurde von meinem Android-Gerät mit K-9 Mail gesendet.


More information about the shenandoah-dev mailing list