xref: /linux/tools/sched_ext/scx_flatcg.h (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1 #ifndef __SCX_EXAMPLE_FLATCG_H
2 #define __SCX_EXAMPLE_FLATCG_H
3 
4 enum {
5 	FCG_HWEIGHT_ONE		= 1LLU << 16,
6 };
7 
8 enum fcg_stat_idx {
9 	FCG_STAT_ACT,
10 	FCG_STAT_DEACT,
11 	FCG_STAT_LOCAL,
12 	FCG_STAT_GLOBAL,
13 
14 	FCG_STAT_HWT_UPDATES,
15 	FCG_STAT_HWT_CACHE,
16 	FCG_STAT_HWT_SKIP,
17 	FCG_STAT_HWT_RACE,
18 
19 	FCG_STAT_ENQ_SKIP,
20 	FCG_STAT_ENQ_RACE,
21 
22 	FCG_STAT_CNS_KEEP,
23 	FCG_STAT_CNS_EXPIRE,
24 	FCG_STAT_CNS_EMPTY,
25 	FCG_STAT_CNS_GONE,
26 
27 	FCG_STAT_PNC_NO_CGRP,
28 	FCG_STAT_PNC_NEXT,
29 	FCG_STAT_PNC_EMPTY,
30 	FCG_STAT_PNC_GONE,
31 	FCG_STAT_PNC_RACE,
32 	FCG_STAT_PNC_FAIL,
33 
34 	FCG_STAT_BAD_REMOVAL,
35 
36 	FCG_NR_STATS,
37 };
38 
39 struct fcg_cgrp_ctx {
40 	u32			nr_active;
41 	u32			nr_runnable;
42 	u32			queued;
43 	u32			weight;
44 	u32			hweight;
45 	u64			child_weight_sum;
46 	u64			hweight_gen;
47 	s64			cvtime_delta;
48 	u64			tvtime_now;
49 };
50 
51 #endif /* __SCX_EXAMPLE_FLATCG_H */
52