< prev index next >

src/share/vm/gc_implementation/shenandoah/shenandoahHeapRegionCounters.hpp

Print this page
rev 9705 : [backport] Implement early update references phase.


  21  *
  22  */
  23 
  24 #ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
  25 #define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
  26 
  27 #include "memory/allocation.hpp"
  28 
  29 /**
  30  * This provides the following in JVMStat:
  31  *
  32  * constants:
  33  * - sun.gc.shenandoah.regions.timestamp    the timestamp for this sample
  34  * - sun.gc.shenandoah.regions.max_regions  maximum number of regions
  35  * - sun.gc.shenandoah.regions.region_size  size per region, in kilobytes
  36  *
  37  * variables:
  38  * - sun.gc.shenandoah.regions.status       current GC status:
  39  *     - bit 0 set when marking in progress
  40  *     - bit 1 set when evacuation in progress

  41  *
  42  * one variable counter per region, with $max_regions (see above) counters:
  43  * - sun.gc.shenandoah.regions.region.$i.data
  44  * where $ is the region number from 0 <= i < $max_regions
  45  *
  46  * in the following format:
  47  * - bits 0-28   used memory in kilobytes
  48  * - bits 29-58  live memory in kilobytes
  49  * - bits 58-63  status
  50  *      - bit 58 set when region is not used yet
  51  *      - bit 59 set when region in collection set
  52  *      - bit 60 set when region is humongous
  53  *      - bit 61 set when region is recently allocated
  54  *      - bit 62 set when region is pinned
  55  */
  56 class ShenandoahHeapRegionCounters : public CHeapObj<mtGC>  {
  57 private:
  58   static const jlong USED_MASK   = 0x1fffffff; // bits 0-28
  59   static const jlong USED_SHIFT  = 0;
  60 
  61   static const jlong LIVE_MASK   = 0x1fffffff; // bits 29-58
  62   static const jlong LIVE_SHIFT  = 29;
  63 
  64   static const jlong FLAGS_MASK  = 0x3f;       // bits 58-63
  65   static const jlong FLAGS_SHIFT = 58;         // bits 58-63
  66 


  21  *
  22  */
  23 
  24 #ifndef SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
  25 #define SHARE_VM_GC_SHENANDOAH_SHENANDOAHHEAPREGIONCOUNTERS_HPP
  26 
  27 #include "memory/allocation.hpp"
  28 
  29 /**
  30  * This provides the following in JVMStat:
  31  *
  32  * constants:
  33  * - sun.gc.shenandoah.regions.timestamp    the timestamp for this sample
  34  * - sun.gc.shenandoah.regions.max_regions  maximum number of regions
  35  * - sun.gc.shenandoah.regions.region_size  size per region, in kilobytes
  36  *
  37  * variables:
  38  * - sun.gc.shenandoah.regions.status       current GC status:
  39  *     - bit 0 set when marking in progress
  40  *     - bit 1 set when evacuation in progress
  41  *     - bit 2 set when update refs in progress
  42  *
  43  * one variable counter per region, with $max_regions (see above) counters:
  44  * - sun.gc.shenandoah.regions.region.$i.data
  45  * where $ is the region number from 0 <= i < $max_regions
  46  *
  47  * .data is in the following format:
  48  * - bits 0-28   used memory in kilobytes
  49  * - bits 29-58  live memory in kilobytes
  50  * - bits 58-63  status
  51  *      - bit 58 set when region is not used yet
  52  *      - bit 59 set when region in collection set
  53  *      - bit 60 set when region is humongous
  54  *      - bit 61 set when region is recently allocated
  55  *      - bit 62 set when region is pinned
  56  */
  57 class ShenandoahHeapRegionCounters : public CHeapObj<mtGC>  {
  58 private:
  59   static const jlong USED_MASK   = 0x1fffffff; // bits 0-28
  60   static const jlong USED_SHIFT  = 0;
  61 
  62   static const jlong LIVE_MASK   = 0x1fffffff; // bits 29-58
  63   static const jlong LIVE_SHIFT  = 29;
  64 
  65   static const jlong FLAGS_MASK  = 0x3f;       // bits 58-63
  66   static const jlong FLAGS_SHIFT = 58;         // bits 58-63
  67 
< prev index next >