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-6 used memory in percent
49 * - bits 7-13 live memory in percent
50 * - bits 14-20 tlab allocated memory in percent
51 * - bits 21-27 gclab allocated memory in percent
52 * - bits 28-34 shared allocated memory in percent
53 * - bits 35-41 <reserved>
54 * - bits 42-50 <reserved>
55 * - bits 51-57 <reserved>
56 * - bits describe the state as recorded in ShenandoahHeapRegion
57 */
58 class ShenandoahHeapRegionCounters : public CHeapObj<mtGC> {
59 private:
60 static const jlong PERCENT_MASK = 0x7f;
61 static const jlong STATUS_MASK = 0x3f;
|
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 * - bit 3 set when traversal in progress
43 *
44 * one variable counter per region, with $max_regions (see above) counters:
45 * - sun.gc.shenandoah.regions.region.$i.data
46 * where $ is the region number from 0 <= i < $max_regions
47 *
48 * .data is in the following format:
49 * - bits 0-6 used memory in percent
50 * - bits 7-13 live memory in percent
51 * - bits 14-20 tlab allocated memory in percent
52 * - bits 21-27 gclab allocated memory in percent
53 * - bits 28-34 shared allocated memory in percent
54 * - bits 35-41 <reserved>
55 * - bits 42-50 <reserved>
56 * - bits 51-57 <reserved>
57 * - bits describe the state as recorded in ShenandoahHeapRegion
58 */
59 class ShenandoahHeapRegionCounters : public CHeapObj<mtGC> {
60 private:
61 static const jlong PERCENT_MASK = 0x7f;
62 static const jlong STATUS_MASK = 0x3f;
|