src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
changeset 55539 734e58d8477b
parent 53244 9807daeb47c4
child 55557 657924d1e2ba
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Mon Jul 01 08:24:45 2019 -0400
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp	Mon Jul 01 18:24:06 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 {