Lines Matching full:monitoring

38  * struct damon_region - Represents a monitoring target region.
62 * struct damon_target - Represents a monitoring target.
64 * @nr_regions: Number of monitoring target regions of this target.
65 * @regions_list: Head of the monitoring target regions of this target.
68 * Each monitoring context could have multiple targets. For example, a context
71 * example, in the virtual address monitoring context, it could be a pidfd or
82 * enum damos_action - Represents an action of a Data Access Monitoring-based
126 * &weight_nr_accesses, and &weight_age, because monitoring primitives are
176 * means DAMON does monitoring and applying the action of the scheme to
212 * struct damos - Represents a Data Access Monitoring-based Operation Scheme.
233 * monitoring context are inactive, DAMON stops monitoring either, and just
237 * stops monitoring and just repeatedly checks the watermarks.
260 * struct damon_primitive - Monitoring primitives for given use cases.
266 * @reset_aggregated: Reset aggregated accesses monitoring results.
274 * space and usecase via the &damon_ctx.primitive. Then, the monitoring thread
276 * the monitoring, @update after each &damon_ctx.primitive_update_interval, and
282 * this could be used to construct proper monitoring target regions and link
285 * this could be used to update monitoring target regions for current status.
286 * @prepare_access_checks should manipulate the monitoring regions to be
292 * @reset_aggregated should reset the access monitoring results that aggregated
301 * monitoring.
321 * struct damon_callback - Monitoring events notification callbacks.
323 * @before_start: Called before starting the monitoring.
326 * @before_terminate: Called before terminating the monitoring.
329 * The monitoring thread (&damon_ctx.kdamond) calls @before_start and
330 * @before_terminate just before starting and finishing the monitoring,
334 * The monitoring thread calls @after_sampling and @after_aggregation for each
336 * Therefore, users can safely access the monitoring results without additional
340 * If any callback returns non-zero, monitoring stops.
352 * struct damon_ctx - Represents a context for each monitoring. This is the
354 * of the monitoring.
358 * @primitive_update_interval: The time between monitoring primitive updates.
364 * in case of virtual memory monitoring) and applies the changes for each
369 * @kdamond: Kernel thread who does the monitoring.
373 * For each monitoring context, one kernel thread for the monitoring is
376 * Once started, the monitoring thread runs until explicitly required to be
377 * terminated or every monitoring target is invalid. The validity of the
381 * Therefore, users can know whether the monitoring is ongoing or terminated by
383 * outside of the monitoring thread must be protected by @kdamond_lock.
385 * Note that the monitoring thread protects only @kdamond and @kdamond_stop via
388 * @primitive: Set of monitoring primitives for given use cases.
389 * @callback: Set of callbacks for monitoring events notifications.
391 * @min_nr_regions: The minimum number of adaptive monitoring regions.
392 * @max_nr_regions: The maximum number of adaptive monitoring regions.
393 * @adaptive_targets: Head of monitoring targets (&damon_target) list.