RFR: Report Traversal status in heap sampling
Aleksey Shipilev
shade at redhat.com
Wed Aug 15 16:16:14 UTC 2018
Trivial change to allow Visualizer capture Traversal-in-progress:
diff -r 004f55114c5f src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp Wed Aug 15 17:52:58 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.cpp Wed Aug 15 18:14:55 2018 +0200
@@ -93,7 +93,8 @@
ShenandoahHeap* heap = ShenandoahHeap::heap();
jlong status = 0;
- if (heap->is_concurrent_mark_in_progress()) status |= 1 << 0;
- if (heap->is_evacuation_in_progress()) status |= 1 << 1;
- if (heap->is_update_refs_in_progress()) status |= 1 << 2;
+ if (heap->is_concurrent_mark_in_progress()) status |= 1 << 0;
+ if (heap->is_evacuation_in_progress()) status |= 1 << 1;
+ if (heap->is_update_refs_in_progress()) status |= 1 << 2;
+ if (heap->is_concurrent_traversal_in_progress()) status |= 1 << 3;
_status->set_value(status);
diff -r 004f55114c5f src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp
--- a/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp Wed Aug 15 17:52:58 2018 +0200
+++ b/src/hotspot/share/gc/shenandoah/shenandoahHeapRegionCounters.hpp Wed Aug 15 18:14:55 2018 +0200
@@ -40,4 +40,5 @@
* - bit 1 set when evacuation in progress
* - bit 2 set when update refs in progress
+ * - bit 3 set when traversal in progress
*
* two variable counters per region, with $max_regions (see above) counters:
Testing: eyeballing Visualizer
Thanks,
-Aleksey
More information about the shenandoah-dev
mailing list