mirror of
https://github.com/torvalds/linux.git
synced 2026-05-28 17:13:52 +02:00
sched_ext: Relocate scx_event_stats definition
In prepration of moving event_stats_cpu into scx_sched, move scx_event_stats definitions above scx_sched definition. No functional changes. Signed-off-by: Tejun Heo <tj@kernel.org> Reviewed-by: Andrea Righi <arighi@nvidia.com> Acked-by: Changwoo Min <changwoo@igalia.com>
This commit is contained in:
parent
8409b800a0
commit
f97a79156a
|
|
@ -766,6 +766,63 @@ enum scx_opi {
|
|||
SCX_OPI_END = SCX_OP_IDX(init),
|
||||
};
|
||||
|
||||
/*
|
||||
* Collection of event counters. Event types are placed in descending order.
|
||||
*/
|
||||
struct scx_event_stats {
|
||||
/*
|
||||
* If ops.select_cpu() returns a CPU which can't be used by the task,
|
||||
* the core scheduler code silently picks a fallback CPU.
|
||||
*/
|
||||
s64 SCX_EV_SELECT_CPU_FALLBACK;
|
||||
|
||||
/*
|
||||
* When dispatching to a local DSQ, the CPU may have gone offline in
|
||||
* the meantime. In this case, the task is bounced to the global DSQ.
|
||||
*/
|
||||
s64 SCX_EV_DISPATCH_LOCAL_DSQ_OFFLINE;
|
||||
|
||||
/*
|
||||
* If SCX_OPS_ENQ_LAST is not set, the number of times that a task
|
||||
* continued to run because there were no other tasks on the CPU.
|
||||
*/
|
||||
s64 SCX_EV_DISPATCH_KEEP_LAST;
|
||||
|
||||
/*
|
||||
* If SCX_OPS_ENQ_EXITING is not set, the number of times that a task
|
||||
* is dispatched to a local DSQ when exiting.
|
||||
*/
|
||||
s64 SCX_EV_ENQ_SKIP_EXITING;
|
||||
|
||||
/*
|
||||
* If SCX_OPS_ENQ_MIGRATION_DISABLED is not set, the number of times a
|
||||
* migration disabled task skips ops.enqueue() and is dispatched to its
|
||||
* local DSQ.
|
||||
*/
|
||||
s64 SCX_EV_ENQ_SKIP_MIGRATION_DISABLED;
|
||||
|
||||
/*
|
||||
* Total number of times a task's time slice was refilled with the
|
||||
* default value (SCX_SLICE_DFL).
|
||||
*/
|
||||
s64 SCX_EV_REFILL_SLICE_DFL;
|
||||
|
||||
/*
|
||||
* The total duration of bypass modes in nanoseconds.
|
||||
*/
|
||||
s64 SCX_EV_BYPASS_DURATION;
|
||||
|
||||
/*
|
||||
* The number of tasks dispatched in the bypassing mode.
|
||||
*/
|
||||
s64 SCX_EV_BYPASS_DISPATCH;
|
||||
|
||||
/*
|
||||
* The number of times the bypassing mode has been activated.
|
||||
*/
|
||||
s64 SCX_EV_BYPASS_ACTIVATE;
|
||||
};
|
||||
|
||||
struct scx_sched {
|
||||
struct sched_ext_ops ops;
|
||||
DECLARE_BITMAP(has_op, SCX_OPI_END);
|
||||
|
|
@ -1542,63 +1599,6 @@ static struct task_struct *scx_task_iter_next_locked(struct scx_task_iter *iter)
|
|||
return p;
|
||||
}
|
||||
|
||||
/*
|
||||
* Collection of event counters. Event types are placed in descending order.
|
||||
*/
|
||||
struct scx_event_stats {
|
||||
/*
|
||||
* If ops.select_cpu() returns a CPU which can't be used by the task,
|
||||
* the core scheduler code silently picks a fallback CPU.
|
||||
*/
|
||||
s64 SCX_EV_SELECT_CPU_FALLBACK;
|
||||
|
||||
/*
|
||||
* When dispatching to a local DSQ, the CPU may have gone offline in
|
||||
* the meantime. In this case, the task is bounced to the global DSQ.
|
||||
*/
|
||||
s64 SCX_EV_DISPATCH_LOCAL_DSQ_OFFLINE;
|
||||
|
||||
/*
|
||||
* If SCX_OPS_ENQ_LAST is not set, the number of times that a task
|
||||
* continued to run because there were no other tasks on the CPU.
|
||||
*/
|
||||
s64 SCX_EV_DISPATCH_KEEP_LAST;
|
||||
|
||||
/*
|
||||
* If SCX_OPS_ENQ_EXITING is not set, the number of times that a task
|
||||
* is dispatched to a local DSQ when exiting.
|
||||
*/
|
||||
s64 SCX_EV_ENQ_SKIP_EXITING;
|
||||
|
||||
/*
|
||||
* If SCX_OPS_ENQ_MIGRATION_DISABLED is not set, the number of times a
|
||||
* migration disabled task skips ops.enqueue() and is dispatched to its
|
||||
* local DSQ.
|
||||
*/
|
||||
s64 SCX_EV_ENQ_SKIP_MIGRATION_DISABLED;
|
||||
|
||||
/*
|
||||
* Total number of times a task's time slice was refilled with the
|
||||
* default value (SCX_SLICE_DFL).
|
||||
*/
|
||||
s64 SCX_EV_REFILL_SLICE_DFL;
|
||||
|
||||
/*
|
||||
* The total duration of bypass modes in nanoseconds.
|
||||
*/
|
||||
s64 SCX_EV_BYPASS_DURATION;
|
||||
|
||||
/*
|
||||
* The number of tasks dispatched in the bypassing mode.
|
||||
*/
|
||||
s64 SCX_EV_BYPASS_DISPATCH;
|
||||
|
||||
/*
|
||||
* The number of times the bypassing mode has been activated.
|
||||
*/
|
||||
s64 SCX_EV_BYPASS_ACTIVATE;
|
||||
};
|
||||
|
||||
/*
|
||||
* The event counter is organized by a per-CPU variable to minimize the
|
||||
* accounting overhead without synchronization. A system-wide view on the
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user