Lines Matching full:monitoring
39 * struct damon_region - Represents a monitoring target region.
59 * for it before getting the access monitoring results.
79 * struct damon_target - Represents a monitoring target.
81 * @nr_regions: Number of monitoring target regions of this target.
82 * @regions_list: Head of the monitoring target regions of this target.
85 * Each monitoring context could have multiple targets. For example, a context
88 * virtual address spaces monitoring operations.
98 * enum damos_action - Represents an action of a Data Access Monitoring-based
215 * &weight_nr_accesses, and &weight_age, because monitoring operations are
269 * means DAMON does monitoring and applying the action of the scheme to
330 * @DAMOS_FILTER_TYPE_TARGET: Data Access Monitoring target.
427 * struct damos - Represents a Data Access Monitoring-based Operation Scheme.
447 * monitoring context are inactive, DAMON stops monitoring either, and just
501 * enum damon_ops_id - Identifier for each monitoring operations implementation
503 * @DAMON_OPS_VADDR: Monitoring operations for virtual address spaces
504 * @DAMON_OPS_FVADDR: Monitoring operations for only fixed ranges of virtual
506 * @DAMON_OPS_PADDR: Monitoring operations for the physical address space
507 * @NR_DAMON_OPS: Number of monitoring operations implementations
517 * struct damon_operations - Monitoring operations for given use cases.
524 * @reset_aggregated: Reset aggregated accesses monitoring results.
532 * space and usecase via the &damon_ctx.ops. Then, the monitoring thread
534 * the monitoring, @update after each &damon_attrs.ops_update_interval, and
542 * this could be used to construct proper monitoring target regions and link
545 * this could be used to update monitoring target regions for current status.
546 * @prepare_access_checks should manipulate the monitoring regions to be
552 * @reset_aggregated should reset the access monitoring results that aggregated
562 * monitoring.
583 * struct damon_callback - Monitoring events notification callbacks.
585 * @before_start: Called before starting the monitoring.
590 * @before_terminate: Called before terminating the monitoring.
593 * The monitoring thread (&damon_ctx.kdamond) calls @before_start and
594 * @before_terminate just before starting and finishing the monitoring,
598 * The monitoring thread calls @after_wmarks_check after each DAMON-based
600 * attributes of the monitoring context while it's deactivated due to the
603 * The monitoring thread calls @after_sampling and @after_aggregation for each
605 * Therefore, users can safely access the monitoring results without additional
609 * If any callback returns non-zero, monitoring stops.
647 * struct damon_attrs - Monitoring attributes for accuracy/overhead control.
651 * @ops_update_interval: The time between monitoring operations updates.
652 * @min_nr_regions: The minimum number of adaptive monitoring
654 * @max_nr_regions: The maximum number of adaptive monitoring
662 * ``mmap()`` calls from the application, in case of virtual memory monitoring)
676 * struct damon_ctx - Represents a context for each monitoring. This is the
678 * of the monitoring.
680 * @attrs: Monitoring attributes for accuracy/overhead control.
681 * @kdamond: Kernel thread who does the monitoring.
684 * For each monitoring context, one kernel thread for the monitoring is
687 * Once started, the monitoring thread runs until explicitly required to be
688 * terminated or every monitoring target is invalid. The validity of the
692 * know whether the monitoring is ongoing or terminated by reading @kdamond.
693 * Reads and writes to @kdamond from outside of the monitoring thread must
696 * Note that the monitoring thread protects only @kdamond via @kdamond_lock.
699 * @ops: Set of monitoring operations for given use cases.
700 * @callback: Set of callbacks for monitoring events notifications.
702 * @adaptive_targets: Head of monitoring targets (&damon_target) list.