@@ -80,6 +80,42 @@ def assert_migrate_dests_committed(dests, dump):
8080 assert_true (dump ['node_id_arr' ][idx ] == dest .id , 'node_id' , dump )
8181 assert_true (dump ['weight_arr' ][idx ] == dest .weight , 'weight' , dump )
8282
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+
83119def main ():
84120 kdamonds = _damon_sysfs .Kdamonds (
85121 [_damon_sysfs .Kdamond (
@@ -127,28 +163,7 @@ def main():
127163 if len (ctx ['schemes' ]) != 1 :
128164 fail ('number of schemes' , status )
129165
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 ])
152167
153168 kdamonds .stop ()
154169
0 commit comments