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
|