github.com/google/syzkaller@v0.0.0-20240517125934-c0f1611a36d6/sys/linux/damon.txt (about)

     1  # Copyright 2018 syzkaller project authors. All rights reserved.
     2  # Use of this source code is governed by Apache 2 LICENSE that can be found in the LICENSE file.
     3  
     4  include <uapi/linux/fcntl.h>
     5  include <uapi/linux/mount.h>
     6  
     7  resource fd_damon_target_ids[fd]
     8  resource fd_damon_attrs[fd]
     9  resource fd_damon_monitor_on[fd]
    10  resource fd_damon_init_regions[fd]
    11  resource fd_damon_schemes[fd]
    12  resource fd_damon_contexts[fd]
    13  
    14  openat$damon_target_ids(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/target_ids"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_target_ids
    15  openat$damon_attrs(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/attrs"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_attrs
    16  openat$damon_init_regions(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/init_regions"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_init_regions
    17  openat$damon_monitor_on(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/monitor_on"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_monitor_on
    18  openat$damon_schemes(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/schemes"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_schemes
    19  openat$damon_kdamond_pid(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/kdamond_pid"]], flags flags[open_flags], mode flags[open_mode]) fd
    20  openat$damon_mk_contexts(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/mk_contexts"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_contexts
    21  openat$damon_rm_contexts(fd const[AT_FDCWD], file ptr[in, string["/sys/kernel/debug/damon/rm_contexts"]], flags flags[open_flags], mode flags[open_mode]) fd_damon_contexts
    22  
    23  write$damon_target_ids(fd fd_damon_target_ids, buf ptr[in, damon_target_id_input], count bytesize[buf])
    24  write$damon_attrs(fd fd_damon_attrs, buf ptr[in, damon_attrs], count len[buf])
    25  write$damon_init_regions(fd fd_damon_init_regions, buf ptr[in, damon_init_regions], count len[buf])
    26  write$damon_monitor_on(fd fd_damon_monitor_on, buf ptr[in, string["on"]], count len[buf])
    27  write$damon_schemes(fd fd_damon_schemes, buf ptr[in, damon_schemes], count len[buf])
    28  write$damon_contexts(fd fd_damon_contexts, buf ptr[in, array[damon_contexts]], count len[buf])
    29  
    30  damon_schemes {
    31  	min_size	fmt[dec, int32]
    32  	max_size	fmt[dec, int32]
    33  	min_acc		const[' ', int8]
    34  	max_acc		const[' ', int8]
    35  	min_age		fmt[dec, int32]
    36  	max_age		fmt[dec, int32]
    37  	action		fmt[dec, int32]
    38  } [packed]
    39  
    40  damon_target_id_input {
    41  	paddr	optional[string["paddr\n"]]
    42  	pids	array[damon_target_pid]
    43  } [packed]
    44  
    45  damon_target_pid {
    46  	space	stringnoz[" "]
    47  	pid	fmt[dec, pid]
    48  }
    49  
    50  damon_attrs {
    51  	sampl_interval		damon_attr
    52  	aggr_interval		damon_attr
    53  	reg_upd_interval	damon_attr
    54  	min			damon_attr
    55  	max			damon_attr
    56  } [packed]
    57  
    58  damon_attr {
    59  	space	stringnoz[" "]
    60  	val	fmt[dec, int32]
    61  }
    62  
    63  damon_init_regions {
    64  	target	damon_target_pid
    65  	start	damon_addr
    66  	end	damon_addr
    67  } [packed]
    68  
    69  damon_addr {
    70  	space	stringnoz[" "]
    71  	val	fmt[dec, int64]
    72  }
    73  
    74  damon_contexts {
    75  	space		stringnoz[" "]
    76  	dir_name	stringnoz[filename]
    77  }