src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
changeset 57782 ca133d5ea78a
parent 57777 90ead0febf56
child 58679 9c3209ff7550
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Fri Aug 16 16:50:17 2019 +0200
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Fri Aug 16 18:06:51 2019 +0000
@@ -192,6 +192,9 @@
   // Used to keep track of limit of sweep for the space
   HeapWord* _sweep_limit;
 
+  // Stable value of used().
+  size_t _used_stable;
+
   // Used to make the young collector update the mod union table
   MemRegionClosure* _preconsumptionDirtyCardClosure;
 
@@ -412,6 +415,17 @@
   // which overestimates the region by returning the entire
   // committed region (this is safe, but inefficient).
 
+  // Returns monotonically increasing stable used space bytes for CMS.
+  // This is required for jstat and other memory monitoring tools
+  // that might otherwise see inconsistent used space values during a garbage
+  // collection, promotion or allocation into compactibleFreeListSpace.
+  // The value returned by this function might be smaller than the
+  // actual value.
+  size_t used_stable() const;
+  // Recalculate and cache the current stable used() value. Only to be called
+  // in places where we can be sure that the result is stable.
+  void recalculate_used_stable();
+
   // Returns a subregion of the space containing all the objects in
   // the space.
   MemRegion used_region() const {