xref: /aosp_15_r20/external/linux-kselftest/tools/testing/selftests/damon/sysfs.sh (revision 053f45be4e351dfd5e965df293cd45b779f579ee)
1*053f45beSAndroid Build Coastguard Worker#!/bin/bash
2*053f45beSAndroid Build Coastguard Worker# SPDX-License-Identifier: GPL-2.0
3*053f45beSAndroid Build Coastguard Worker
4*053f45beSAndroid Build Coastguard Worker# Kselftest frmework requirement - SKIP code is 4.
5*053f45beSAndroid Build Coastguard Workerksft_skip=4
6*053f45beSAndroid Build Coastguard Worker
7*053f45beSAndroid Build Coastguard Workerensure_write_succ()
8*053f45beSAndroid Build Coastguard Worker{
9*053f45beSAndroid Build Coastguard Worker	file=$1
10*053f45beSAndroid Build Coastguard Worker	content=$2
11*053f45beSAndroid Build Coastguard Worker	reason=$3
12*053f45beSAndroid Build Coastguard Worker
13*053f45beSAndroid Build Coastguard Worker	if ! echo "$content" > "$file"
14*053f45beSAndroid Build Coastguard Worker	then
15*053f45beSAndroid Build Coastguard Worker		echo "writing $content to $file failed"
16*053f45beSAndroid Build Coastguard Worker		echo "expected success because $reason"
17*053f45beSAndroid Build Coastguard Worker		exit 1
18*053f45beSAndroid Build Coastguard Worker	fi
19*053f45beSAndroid Build Coastguard Worker}
20*053f45beSAndroid Build Coastguard Worker
21*053f45beSAndroid Build Coastguard Workerensure_write_fail()
22*053f45beSAndroid Build Coastguard Worker{
23*053f45beSAndroid Build Coastguard Worker	file=$1
24*053f45beSAndroid Build Coastguard Worker	content=$2
25*053f45beSAndroid Build Coastguard Worker	reason=$3
26*053f45beSAndroid Build Coastguard Worker
27*053f45beSAndroid Build Coastguard Worker	if echo "$content" > "$file"
28*053f45beSAndroid Build Coastguard Worker	then
29*053f45beSAndroid Build Coastguard Worker		echo "writing $content to $file succeed ($fail_reason)"
30*053f45beSAndroid Build Coastguard Worker		echo "expected failure because $reason"
31*053f45beSAndroid Build Coastguard Worker		exit 1
32*053f45beSAndroid Build Coastguard Worker	fi
33*053f45beSAndroid Build Coastguard Worker}
34*053f45beSAndroid Build Coastguard Worker
35*053f45beSAndroid Build Coastguard Workerensure_dir()
36*053f45beSAndroid Build Coastguard Worker{
37*053f45beSAndroid Build Coastguard Worker	dir=$1
38*053f45beSAndroid Build Coastguard Worker	to_ensure=$2
39*053f45beSAndroid Build Coastguard Worker	if [ "$to_ensure" = "exist" ] && [ ! -d "$dir" ]
40*053f45beSAndroid Build Coastguard Worker	then
41*053f45beSAndroid Build Coastguard Worker		echo "$dir dir is expected but not found"
42*053f45beSAndroid Build Coastguard Worker		exit 1
43*053f45beSAndroid Build Coastguard Worker	elif [ "$to_ensure" = "not_exist" ] && [ -d "$dir" ]
44*053f45beSAndroid Build Coastguard Worker	then
45*053f45beSAndroid Build Coastguard Worker		echo "$dir dir is not expected but found"
46*053f45beSAndroid Build Coastguard Worker		exit 1
47*053f45beSAndroid Build Coastguard Worker	fi
48*053f45beSAndroid Build Coastguard Worker}
49*053f45beSAndroid Build Coastguard Worker
50*053f45beSAndroid Build Coastguard Workerensure_file()
51*053f45beSAndroid Build Coastguard Worker{
52*053f45beSAndroid Build Coastguard Worker	file=$1
53*053f45beSAndroid Build Coastguard Worker	to_ensure=$2
54*053f45beSAndroid Build Coastguard Worker	permission=$3
55*053f45beSAndroid Build Coastguard Worker	if [ "$to_ensure" = "exist" ]
56*053f45beSAndroid Build Coastguard Worker	then
57*053f45beSAndroid Build Coastguard Worker		if [ ! -f "$file" ]
58*053f45beSAndroid Build Coastguard Worker		then
59*053f45beSAndroid Build Coastguard Worker			echo "$file is expected but not found"
60*053f45beSAndroid Build Coastguard Worker			exit 1
61*053f45beSAndroid Build Coastguard Worker		fi
62*053f45beSAndroid Build Coastguard Worker		perm=$(stat -c "%a" "$file")
63*053f45beSAndroid Build Coastguard Worker		if [ ! "$perm" = "$permission" ]
64*053f45beSAndroid Build Coastguard Worker		then
65*053f45beSAndroid Build Coastguard Worker			echo "$file permission: expected $permission but $perm"
66*053f45beSAndroid Build Coastguard Worker			exit 1
67*053f45beSAndroid Build Coastguard Worker		fi
68*053f45beSAndroid Build Coastguard Worker	elif [ "$to_ensure" = "not_exist" ] && [ -f "$dir" ]
69*053f45beSAndroid Build Coastguard Worker	then
70*053f45beSAndroid Build Coastguard Worker		echo "$file is not expected but found"
71*053f45beSAndroid Build Coastguard Worker		exit 1
72*053f45beSAndroid Build Coastguard Worker	fi
73*053f45beSAndroid Build Coastguard Worker}
74*053f45beSAndroid Build Coastguard Worker
75*053f45beSAndroid Build Coastguard Workertest_range()
76*053f45beSAndroid Build Coastguard Worker{
77*053f45beSAndroid Build Coastguard Worker	range_dir=$1
78*053f45beSAndroid Build Coastguard Worker	ensure_dir "$range_dir" "exist"
79*053f45beSAndroid Build Coastguard Worker	ensure_file "$range_dir/min" "exist" 600
80*053f45beSAndroid Build Coastguard Worker	ensure_file "$range_dir/max" "exist" 600
81*053f45beSAndroid Build Coastguard Worker}
82*053f45beSAndroid Build Coastguard Worker
83*053f45beSAndroid Build Coastguard Workertest_stats()
84*053f45beSAndroid Build Coastguard Worker{
85*053f45beSAndroid Build Coastguard Worker	stats_dir=$1
86*053f45beSAndroid Build Coastguard Worker	ensure_dir "$stats_dir" "exist"
87*053f45beSAndroid Build Coastguard Worker	for f in nr_tried sz_tried nr_applied sz_applied qt_exceeds
88*053f45beSAndroid Build Coastguard Worker	do
89*053f45beSAndroid Build Coastguard Worker		ensure_file "$stats_dir/$f" "exist" "400"
90*053f45beSAndroid Build Coastguard Worker	done
91*053f45beSAndroid Build Coastguard Worker}
92*053f45beSAndroid Build Coastguard Worker
93*053f45beSAndroid Build Coastguard Workertest_watermarks()
94*053f45beSAndroid Build Coastguard Worker{
95*053f45beSAndroid Build Coastguard Worker	watermarks_dir=$1
96*053f45beSAndroid Build Coastguard Worker	ensure_dir "$watermarks_dir" "exist"
97*053f45beSAndroid Build Coastguard Worker	ensure_file "$watermarks_dir/metric" "exist" "600"
98*053f45beSAndroid Build Coastguard Worker	ensure_file "$watermarks_dir/interval_us" "exist" "600"
99*053f45beSAndroid Build Coastguard Worker	ensure_file "$watermarks_dir/high" "exist" "600"
100*053f45beSAndroid Build Coastguard Worker	ensure_file "$watermarks_dir/mid" "exist" "600"
101*053f45beSAndroid Build Coastguard Worker	ensure_file "$watermarks_dir/low" "exist" "600"
102*053f45beSAndroid Build Coastguard Worker}
103*053f45beSAndroid Build Coastguard Worker
104*053f45beSAndroid Build Coastguard Workertest_weights()
105*053f45beSAndroid Build Coastguard Worker{
106*053f45beSAndroid Build Coastguard Worker	weights_dir=$1
107*053f45beSAndroid Build Coastguard Worker	ensure_dir "$weights_dir" "exist"
108*053f45beSAndroid Build Coastguard Worker	ensure_file "$weights_dir/sz_permil" "exist" "600"
109*053f45beSAndroid Build Coastguard Worker	ensure_file "$weights_dir/nr_accesses_permil" "exist" "600"
110*053f45beSAndroid Build Coastguard Worker	ensure_file "$weights_dir/age_permil" "exist" "600"
111*053f45beSAndroid Build Coastguard Worker}
112*053f45beSAndroid Build Coastguard Worker
113*053f45beSAndroid Build Coastguard Workertest_quotas()
114*053f45beSAndroid Build Coastguard Worker{
115*053f45beSAndroid Build Coastguard Worker	quotas_dir=$1
116*053f45beSAndroid Build Coastguard Worker	ensure_dir "$quotas_dir" "exist"
117*053f45beSAndroid Build Coastguard Worker	ensure_file "$quotas_dir/ms" "exist" 600
118*053f45beSAndroid Build Coastguard Worker	ensure_file "$quotas_dir/bytes" "exist" 600
119*053f45beSAndroid Build Coastguard Worker	ensure_file "$quotas_dir/reset_interval_ms" "exist" 600
120*053f45beSAndroid Build Coastguard Worker	test_weights "$quotas_dir/weights"
121*053f45beSAndroid Build Coastguard Worker}
122*053f45beSAndroid Build Coastguard Worker
123*053f45beSAndroid Build Coastguard Workertest_access_pattern()
124*053f45beSAndroid Build Coastguard Worker{
125*053f45beSAndroid Build Coastguard Worker	access_pattern_dir=$1
126*053f45beSAndroid Build Coastguard Worker	ensure_dir "$access_pattern_dir" "exist"
127*053f45beSAndroid Build Coastguard Worker	test_range "$access_pattern_dir/age"
128*053f45beSAndroid Build Coastguard Worker	test_range "$access_pattern_dir/nr_accesses"
129*053f45beSAndroid Build Coastguard Worker	test_range "$access_pattern_dir/sz"
130*053f45beSAndroid Build Coastguard Worker}
131*053f45beSAndroid Build Coastguard Worker
132*053f45beSAndroid Build Coastguard Workertest_scheme()
133*053f45beSAndroid Build Coastguard Worker{
134*053f45beSAndroid Build Coastguard Worker	scheme_dir=$1
135*053f45beSAndroid Build Coastguard Worker	ensure_dir "$scheme_dir" "exist"
136*053f45beSAndroid Build Coastguard Worker	ensure_file "$scheme_dir/action" "exist" "600"
137*053f45beSAndroid Build Coastguard Worker	test_access_pattern "$scheme_dir/access_pattern"
138*053f45beSAndroid Build Coastguard Worker	test_quotas "$scheme_dir/quotas"
139*053f45beSAndroid Build Coastguard Worker	test_watermarks "$scheme_dir/watermarks"
140*053f45beSAndroid Build Coastguard Worker	test_stats "$scheme_dir/stats"
141*053f45beSAndroid Build Coastguard Worker}
142*053f45beSAndroid Build Coastguard Worker
143*053f45beSAndroid Build Coastguard Workertest_schemes()
144*053f45beSAndroid Build Coastguard Worker{
145*053f45beSAndroid Build Coastguard Worker	schemes_dir=$1
146*053f45beSAndroid Build Coastguard Worker	ensure_dir "$schemes_dir" "exist"
147*053f45beSAndroid Build Coastguard Worker	ensure_file "$schemes_dir/nr_schemes" "exist" 600
148*053f45beSAndroid Build Coastguard Worker
149*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$schemes_dir/nr_schemes" "1" "valid input"
150*053f45beSAndroid Build Coastguard Worker	test_scheme "$schemes_dir/0"
151*053f45beSAndroid Build Coastguard Worker
152*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$schemes_dir/nr_schemes" "2" "valid input"
153*053f45beSAndroid Build Coastguard Worker	test_scheme "$schemes_dir/0"
154*053f45beSAndroid Build Coastguard Worker	test_scheme "$schemes_dir/1"
155*053f45beSAndroid Build Coastguard Worker
156*053f45beSAndroid Build Coastguard Worker	ensure_write_succ "$schemes_dir/nr_schemes" "0" "valid input"
157*053f45beSAndroid Build Coastguard Worker	ensure_dir "$schemes_dir/0" "not_exist"
158*053f45beSAndroid Build Coastguard Worker	ensure_dir "$schemes_dir/1" "not_exist"
159*053f45beSAndroid Build Coastguard Worker}
160*053f45beSAndroid Build Coastguard Worker
161*053f45beSAndroid Build Coastguard Workertest_region()
162*053f45beSAndroid Build Coastguard Worker{
163*053f45beSAndroid Build Coastguard Worker	region_dir=$1
164*053f45beSAndroid Build Coastguard Worker	ensure_dir "$region_dir" "exist"
165*053f45beSAndroid Build Coastguard Worker	ensure_file "$region_dir/start" "exist" 600
166*053f45beSAndroid Build Coastguard Worker	ensure_file "$region_dir/end" "exist" 600
167*053f45beSAndroid Build Coastguard Worker}
168*053f45beSAndroid Build Coastguard Worker
169*053f45beSAndroid Build Coastguard Workertest_regions()
170*053f45beSAndroid Build Coastguard Worker{
171*053f45beSAndroid Build Coastguard Worker	regions_dir=$1
172*053f45beSAndroid Build Coastguard Worker	ensure_dir "$regions_dir" "exist"
173*053f45beSAndroid Build Coastguard Worker	ensure_file "$regions_dir/nr_regions" "exist" 600
174*053f45beSAndroid Build Coastguard Worker
175*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$regions_dir/nr_regions" "1" "valid input"
176*053f45beSAndroid Build Coastguard Worker	test_region "$regions_dir/0"
177*053f45beSAndroid Build Coastguard Worker
178*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$regions_dir/nr_regions" "2" "valid input"
179*053f45beSAndroid Build Coastguard Worker	test_region "$regions_dir/0"
180*053f45beSAndroid Build Coastguard Worker	test_region "$regions_dir/1"
181*053f45beSAndroid Build Coastguard Worker
182*053f45beSAndroid Build Coastguard Worker	ensure_write_succ "$regions_dir/nr_regions" "0" "valid input"
183*053f45beSAndroid Build Coastguard Worker	ensure_dir "$regions_dir/0" "not_exist"
184*053f45beSAndroid Build Coastguard Worker	ensure_dir "$regions_dir/1" "not_exist"
185*053f45beSAndroid Build Coastguard Worker}
186*053f45beSAndroid Build Coastguard Worker
187*053f45beSAndroid Build Coastguard Workertest_target()
188*053f45beSAndroid Build Coastguard Worker{
189*053f45beSAndroid Build Coastguard Worker	target_dir=$1
190*053f45beSAndroid Build Coastguard Worker	ensure_dir "$target_dir" "exist"
191*053f45beSAndroid Build Coastguard Worker	ensure_file "$target_dir/pid_target" "exist" "600"
192*053f45beSAndroid Build Coastguard Worker	test_regions "$target_dir/regions"
193*053f45beSAndroid Build Coastguard Worker}
194*053f45beSAndroid Build Coastguard Worker
195*053f45beSAndroid Build Coastguard Workertest_targets()
196*053f45beSAndroid Build Coastguard Worker{
197*053f45beSAndroid Build Coastguard Worker	targets_dir=$1
198*053f45beSAndroid Build Coastguard Worker	ensure_dir "$targets_dir" "exist"
199*053f45beSAndroid Build Coastguard Worker	ensure_file "$targets_dir/nr_targets" "exist" 600
200*053f45beSAndroid Build Coastguard Worker
201*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$targets_dir/nr_targets" "1" "valid input"
202*053f45beSAndroid Build Coastguard Worker	test_target "$targets_dir/0"
203*053f45beSAndroid Build Coastguard Worker
204*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$targets_dir/nr_targets" "2" "valid input"
205*053f45beSAndroid Build Coastguard Worker	test_target "$targets_dir/0"
206*053f45beSAndroid Build Coastguard Worker	test_target "$targets_dir/1"
207*053f45beSAndroid Build Coastguard Worker
208*053f45beSAndroid Build Coastguard Worker	ensure_write_succ "$targets_dir/nr_targets" "0" "valid input"
209*053f45beSAndroid Build Coastguard Worker	ensure_dir "$targets_dir/0" "not_exist"
210*053f45beSAndroid Build Coastguard Worker	ensure_dir "$targets_dir/1" "not_exist"
211*053f45beSAndroid Build Coastguard Worker}
212*053f45beSAndroid Build Coastguard Worker
213*053f45beSAndroid Build Coastguard Workertest_intervals()
214*053f45beSAndroid Build Coastguard Worker{
215*053f45beSAndroid Build Coastguard Worker	intervals_dir=$1
216*053f45beSAndroid Build Coastguard Worker	ensure_dir "$intervals_dir" "exist"
217*053f45beSAndroid Build Coastguard Worker	ensure_file "$intervals_dir/aggr_us" "exist" "600"
218*053f45beSAndroid Build Coastguard Worker	ensure_file "$intervals_dir/sample_us" "exist" "600"
219*053f45beSAndroid Build Coastguard Worker	ensure_file "$intervals_dir/update_us" "exist" "600"
220*053f45beSAndroid Build Coastguard Worker}
221*053f45beSAndroid Build Coastguard Worker
222*053f45beSAndroid Build Coastguard Workertest_monitoring_attrs()
223*053f45beSAndroid Build Coastguard Worker{
224*053f45beSAndroid Build Coastguard Worker	monitoring_attrs_dir=$1
225*053f45beSAndroid Build Coastguard Worker	ensure_dir "$monitoring_attrs_dir" "exist"
226*053f45beSAndroid Build Coastguard Worker	test_intervals "$monitoring_attrs_dir/intervals"
227*053f45beSAndroid Build Coastguard Worker	test_range "$monitoring_attrs_dir/nr_regions"
228*053f45beSAndroid Build Coastguard Worker}
229*053f45beSAndroid Build Coastguard Worker
230*053f45beSAndroid Build Coastguard Workertest_context()
231*053f45beSAndroid Build Coastguard Worker{
232*053f45beSAndroid Build Coastguard Worker	context_dir=$1
233*053f45beSAndroid Build Coastguard Worker	ensure_dir "$context_dir" "exist"
234*053f45beSAndroid Build Coastguard Worker	ensure_file "$context_dir/avail_operations" "exit" 400
235*053f45beSAndroid Build Coastguard Worker	ensure_file "$context_dir/operations" "exist" 600
236*053f45beSAndroid Build Coastguard Worker	test_monitoring_attrs "$context_dir/monitoring_attrs"
237*053f45beSAndroid Build Coastguard Worker	test_targets "$context_dir/targets"
238*053f45beSAndroid Build Coastguard Worker	test_schemes "$context_dir/schemes"
239*053f45beSAndroid Build Coastguard Worker}
240*053f45beSAndroid Build Coastguard Worker
241*053f45beSAndroid Build Coastguard Workertest_contexts()
242*053f45beSAndroid Build Coastguard Worker{
243*053f45beSAndroid Build Coastguard Worker	contexts_dir=$1
244*053f45beSAndroid Build Coastguard Worker	ensure_dir "$contexts_dir" "exist"
245*053f45beSAndroid Build Coastguard Worker	ensure_file "$contexts_dir/nr_contexts" "exist" 600
246*053f45beSAndroid Build Coastguard Worker
247*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$contexts_dir/nr_contexts" "1" "valid input"
248*053f45beSAndroid Build Coastguard Worker	test_context "$contexts_dir/0"
249*053f45beSAndroid Build Coastguard Worker
250*053f45beSAndroid Build Coastguard Worker	ensure_write_fail "$contexts_dir/nr_contexts" "2" "only 0/1 are supported"
251*053f45beSAndroid Build Coastguard Worker	test_context "$contexts_dir/0"
252*053f45beSAndroid Build Coastguard Worker
253*053f45beSAndroid Build Coastguard Worker	ensure_write_succ "$contexts_dir/nr_contexts" "0" "valid input"
254*053f45beSAndroid Build Coastguard Worker	ensure_dir "$contexts_dir/0" "not_exist"
255*053f45beSAndroid Build Coastguard Worker}
256*053f45beSAndroid Build Coastguard Worker
257*053f45beSAndroid Build Coastguard Workertest_kdamond()
258*053f45beSAndroid Build Coastguard Worker{
259*053f45beSAndroid Build Coastguard Worker	kdamond_dir=$1
260*053f45beSAndroid Build Coastguard Worker	ensure_dir "$kdamond_dir" "exist"
261*053f45beSAndroid Build Coastguard Worker	ensure_file "$kdamond_dir/state" "exist" "600"
262*053f45beSAndroid Build Coastguard Worker	ensure_file "$kdamond_dir/pid" "exist" 400
263*053f45beSAndroid Build Coastguard Worker	test_contexts "$kdamond_dir/contexts"
264*053f45beSAndroid Build Coastguard Worker}
265*053f45beSAndroid Build Coastguard Worker
266*053f45beSAndroid Build Coastguard Workertest_kdamonds()
267*053f45beSAndroid Build Coastguard Worker{
268*053f45beSAndroid Build Coastguard Worker	kdamonds_dir=$1
269*053f45beSAndroid Build Coastguard Worker	ensure_dir "$kdamonds_dir" "exist"
270*053f45beSAndroid Build Coastguard Worker
271*053f45beSAndroid Build Coastguard Worker	ensure_file "$kdamonds_dir/nr_kdamonds" "exist" "600"
272*053f45beSAndroid Build Coastguard Worker
273*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$kdamonds_dir/nr_kdamonds" "1" "valid input"
274*053f45beSAndroid Build Coastguard Worker	test_kdamond "$kdamonds_dir/0"
275*053f45beSAndroid Build Coastguard Worker
276*053f45beSAndroid Build Coastguard Worker	ensure_write_succ  "$kdamonds_dir/nr_kdamonds" "2" "valid input"
277*053f45beSAndroid Build Coastguard Worker	test_kdamond "$kdamonds_dir/0"
278*053f45beSAndroid Build Coastguard Worker	test_kdamond "$kdamonds_dir/1"
279*053f45beSAndroid Build Coastguard Worker
280*053f45beSAndroid Build Coastguard Worker	ensure_write_succ "$kdamonds_dir/nr_kdamonds" "0" "valid input"
281*053f45beSAndroid Build Coastguard Worker	ensure_dir "$kdamonds_dir/0" "not_exist"
282*053f45beSAndroid Build Coastguard Worker	ensure_dir "$kdamonds_dir/1" "not_exist"
283*053f45beSAndroid Build Coastguard Worker}
284*053f45beSAndroid Build Coastguard Worker
285*053f45beSAndroid Build Coastguard Workertest_damon_sysfs()
286*053f45beSAndroid Build Coastguard Worker{
287*053f45beSAndroid Build Coastguard Worker	damon_sysfs=$1
288*053f45beSAndroid Build Coastguard Worker	if [ ! -d "$damon_sysfs" ]
289*053f45beSAndroid Build Coastguard Worker	then
290*053f45beSAndroid Build Coastguard Worker		echo "$damon_sysfs not found"
291*053f45beSAndroid Build Coastguard Worker		exit $ksft_skip
292*053f45beSAndroid Build Coastguard Worker	fi
293*053f45beSAndroid Build Coastguard Worker
294*053f45beSAndroid Build Coastguard Worker	test_kdamonds "$damon_sysfs/kdamonds"
295*053f45beSAndroid Build Coastguard Worker}
296*053f45beSAndroid Build Coastguard Worker
297*053f45beSAndroid Build Coastguard Workercheck_dependencies()
298*053f45beSAndroid Build Coastguard Worker{
299*053f45beSAndroid Build Coastguard Worker	if [ $EUID -ne 0 ]
300*053f45beSAndroid Build Coastguard Worker	then
301*053f45beSAndroid Build Coastguard Worker		echo "Run as root"
302*053f45beSAndroid Build Coastguard Worker		exit $ksft_skip
303*053f45beSAndroid Build Coastguard Worker	fi
304*053f45beSAndroid Build Coastguard Worker}
305*053f45beSAndroid Build Coastguard Worker
306*053f45beSAndroid Build Coastguard Workercheck_dependencies
307*053f45beSAndroid Build Coastguard Workertest_damon_sysfs "/sys/kernel/mm/damon/admin"
308