Lines Matching full:monitoring
29 * struct damon_region - Represents a monitoring target region.
43 * struct damon_target - Represents a monitoring target.
45 * @nr_regions: Number of monitoring target regions of this target.
46 * @regions_list: Head of the monitoring target regions of this target.
49 * Each monitoring context could have multiple targets. For example, a context
52 * example, in the virtual address monitoring context, it could be a pidfd or
65 * struct damon_primitive Monitoring primitives for given use cases.
71 * @reset_aggregated: Reset aggregated accesses monitoring results.
77 * space and usecase via the &damon_ctx.primitive. Then, the monitoring thread
79 * the monitoring, @update after each &damon_ctx.primitive_update_interval, and
85 * this could be used to construct proper monitoring target regions and link
88 * this could be used to update monitoring target regions for current status.
89 * @prepare_access_checks should manipulate the monitoring regions to be
95 * @reset_aggregated should reset the access monitoring results that aggregated
98 * monitoring.
112 * struct damon_callback Monitoring events notification callbacks.
114 * @before_start: Called before starting the monitoring.
117 * @before_terminate: Called before terminating the monitoring.
120 * The monitoring thread (&damon_ctx.kdamond) calls @before_start and
121 * @before_terminate just before starting and finishing the monitoring,
125 * The monitoring thread calls @after_sampling and @after_aggregation for each
127 * Therefore, users can safely access the monitoring results without additional
131 * If any callback returns non-zero, monitoring stops.
143 * struct damon_ctx - Represents a context for each monitoring. This is the
145 * of the monitoring.
149 * @primitive_update_interval: The time between monitoring primitive updates.
155 * in case of virtual memory monitoring) and applies the changes for each
160 * @kdamond: Kernel thread who does the monitoring.
164 * For each monitoring context, one kernel thread for the monitoring is
167 * Once started, the monitoring thread runs until explicitly required to be
168 * terminated or every monitoring target is invalid. The validity of the
172 * Therefore, users can know whether the monitoring is ongoing or terminated by
174 * outside of the monitoring thread must be protected by @kdamond_lock.
176 * Note that the monitoring thread protects only @kdamond and @kdamond_stop via
179 * @primitive: Set of monitoring primitives for given use cases.
180 * @callback: Set of callbacks for monitoring events notifications.
182 * @min_nr_regions: The minimum number of adaptive monitoring regions.
183 * @max_nr_regions: The maximum number of adaptive monitoring regions.
184 * @adaptive_targets: Head of monitoring targets (&damon_target) list.
257 /* Monitoring primitives for virtual memory address spaces */