@@ -80,6 +80,42 @@ def assert_migrate_dests_committed(dests, dump):
80
80
assert_true (dump ['node_id_arr' ][idx ] == dest .id , 'node_id' , dump )
81
81
assert_true (dump ['weight_arr' ][idx ] == dest .weight , 'weight' , dump )
82
82
83
+ def assert_access_pattern_committed (pattern , dump ):
84
+ assert_true (dump ['min_sz_region' ] == pattern .size [0 ], 'min_sz_region' ,
85
+ dump )
86
+ assert_true (dump ['max_sz_region' ] == pattern .size [1 ], 'max_sz_region' ,
87
+ dump )
88
+ assert_true (dump ['min_nr_accesses' ] == pattern .nr_accesses [0 ],
89
+ 'min_nr_accesses' , dump )
90
+ assert_true (dump ['max_nr_accesses' ] == pattern .nr_accesses [1 ],
91
+ 'max_nr_accesses' , dump )
92
+ assert_true (dump ['min_age_region' ] == pattern .age [0 ], 'min_age_region' ,
93
+ dump )
94
+ assert_true (dump ['max_age_region' ] == pattern .age [1 ], 'miaxage_region' ,
95
+ dump )
96
+
97
+ def assert_scheme_committed (scheme , dump ):
98
+ assert_access_pattern_committed (scheme .access_pattern , dump ['pattern' ])
99
+ action_val = {
100
+ 'willneed' : 0 ,
101
+ 'cold' : 1 ,
102
+ 'pageout' : 2 ,
103
+ 'hugepage' : 3 ,
104
+ 'nohugeapge' : 4 ,
105
+ 'lru_prio' : 5 ,
106
+ 'lru_deprio' : 6 ,
107
+ 'migrate_hot' : 7 ,
108
+ 'migrate_cold' : 8 ,
109
+ 'stat' : 9 ,
110
+ }
111
+ assert_true (dump ['action' ] == action_val [scheme .action ], 'action' , dump )
112
+ assert_true (dump ['apply_interval_us' ] == scheme . apply_interval_us ,
113
+ 'apply_interval_us' , dump )
114
+ assert_true (dump ['target_nid' ] == scheme .target_nid , 'target_nid' , dump )
115
+ assert_migrate_dests_committed (scheme .dests , dump ['migrate_dests' ])
116
+ assert_quota_committed (scheme .quota , dump ['quota' ])
117
+ assert_watermarks_committed (scheme .watermarks , dump ['wmarks' ])
118
+
83
119
def main ():
84
120
kdamonds = _damon_sysfs .Kdamonds (
85
121
[_damon_sysfs .Kdamond (
@@ -127,28 +163,7 @@ def main():
127
163
if len (ctx ['schemes' ]) != 1 :
128
164
fail ('number of schemes' , status )
129
165
130
- scheme = ctx ['schemes' ][0 ]
131
- if scheme ['pattern' ] != {
132
- 'min_sz_region' : 0 ,
133
- 'max_sz_region' : 2 ** 64 - 1 ,
134
- 'min_nr_accesses' : 0 ,
135
- 'max_nr_accesses' : 2 ** 32 - 1 ,
136
- 'min_age_region' : 0 ,
137
- 'max_age_region' : 2 ** 32 - 1 ,
138
- }:
139
- fail ('damos pattern' , status )
140
- if scheme ['action' ] != 9 : # stat
141
- fail ('damos action' , status )
142
- if scheme ['apply_interval_us' ] != 0 :
143
- fail ('damos apply interval' , status )
144
- if scheme ['target_nid' ] != - 1 :
145
- fail ('damos target nid' , status )
146
-
147
- assert_migrate_dests_committed (_damon_sysfs .DamosDests (),
148
- scheme ['migrate_dests' ])
149
- assert_quota_committed (_damon_sysfs .DamosQuota (), scheme ['quota' ])
150
- assert_watermarks_committed (_damon_sysfs .DamosWatermarks (),
151
- scheme ['wmarks' ])
166
+ assert_scheme_committed (_damon_sysfs .Damos (), ctx ['schemes' ][0 ])
152
167
153
168
kdamonds .stop ()
154
169
0 commit comments