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 * virtual address spaces monitoring operations.
81 * enum damos_action - Represents an action of a Data Access Monitoring-based
131 * &weight_nr_accesses, and &weight_age, because monitoring operations are
183 * means DAMON does monitoring and applying the action of the scheme to
237 * struct damos - Represents a Data Access Monitoring-based Operation Scheme.
251 * monitoring context are inactive, DAMON stops monitoring either, and just
255 * stops monitoring and just repeatedly checks the watermarks.
271 * enum damon_ops_id - Identifier for each monitoring operations implementation
273 * @DAMON_OPS_VADDR: Monitoring operations for virtual address spaces
274 * @DAMON_OPS_FVADDR: Monitoring operations for only fixed ranges of virtual
276 * @DAMON_OPS_PADDR: Monitoring operations for the physical address space
277 * @NR_DAMON_OPS: Number of monitoring operations implementations
289 * struct damon_operations - Monitoring operations for given use cases.
296 * @reset_aggregated: Reset aggregated accesses monitoring results.
304 * space and usecase via the &damon_ctx.ops. Then, the monitoring thread
306 * the monitoring, @update after each &damon_ctx.ops_update_interval, and
314 * this could be used to construct proper monitoring target regions and link
317 * this could be used to update monitoring target regions for current status.
318 * @prepare_access_checks should manipulate the monitoring regions to be
324 * @reset_aggregated should reset the access monitoring results that aggregated
333 * monitoring.
354 * struct damon_callback - Monitoring events notification callbacks.
356 * @before_start: Called before starting the monitoring.
360 * @before_terminate: Called before terminating the monitoring.
363 * The monitoring thread (&damon_ctx.kdamond) calls @before_start and
364 * @before_terminate just before starting and finishing the monitoring,
368 * The monitoring thread calls @after_wmarks_check after each DAMON-based
370 * attributes of the monitoring context while it's deactivated due to the
373 * The monitoring thread calls @after_sampling and @after_aggregation for each
375 * Therefore, users can safely access the monitoring results without additional
379 * If any callback returns non-zero, monitoring stops.
392 * struct damon_attrs - Monitoring attributes for accuracy/overhead control.
396 * @ops_update_interval: The time between monitoring operations updates.
397 * @min_nr_regions: The minimum number of adaptive monitoring
399 * @max_nr_regions: The maximum number of adaptive monitoring
406 * in case of virtual memory monitoring) and applies the changes for each
420 * struct damon_ctx - Represents a context for each monitoring. This is the
422 * of the monitoring.
424 * @attrs: Monitoring attributes for accuracy/overhead control.
425 * @kdamond: Kernel thread who does the monitoring.
428 * For each monitoring context, one kernel thread for the monitoring is
431 * Once started, the monitoring thread runs until explicitly required to be
432 * terminated or every monitoring target is invalid. The validity of the
436 * know whether the monitoring is ongoing or terminated by reading @kdamond.
437 * Reads and writes to @kdamond from outside of the monitoring thread must
440 * Note that the monitoring thread protects only @kdamond via @kdamond_lock.
443 * @ops: Set of monitoring operations for given use cases.
444 * @callback: Set of callbacks for monitoring events notifications.
446 * @adaptive_targets: Head of monitoring targets (&damon_target) list.