--- old/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp Thu Aug 8 22:01:32 2019 +++ new/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp Thu Aug 8 22:01:32 2019 @@ -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 jhat 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 {