mirror of
https://github.com/torvalds/linux.git
synced 2026-06-04 12:35:52 +02:00
sched_ext: Add SCX_EV_ENQ_SKIP_MIGRATION_DISABLED
Count the number of times a migration disabled task is automatically dispatched to its local DSQ. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: Changwoo Min <changwoo@igalia.com>
This commit is contained in:
parent
26176116d9
commit
eace54dff0
|
|
@ -1483,6 +1483,13 @@ struct scx_event_stats {
|
|||
*/
|
||||
u64 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.
|
||||
*/
|
||||
u64 SCX_EV_ENQ_SKIP_MIGRATION_DISABLED;
|
||||
|
||||
/*
|
||||
* The total number of tasks enqueued (or pick_task-ed) with a
|
||||
* default time slice (SCX_SLICE_DFL).
|
||||
|
|
@ -2119,8 +2126,10 @@ static void do_enqueue_task(struct rq *rq, struct task_struct *p, u64 enq_flags,
|
|||
|
||||
/* see %SCX_OPS_ENQ_MIGRATION_DISABLED */
|
||||
if (!static_branch_unlikely(&scx_ops_enq_migration_disabled) &&
|
||||
is_migration_disabled(p))
|
||||
is_migration_disabled(p)) {
|
||||
__scx_add_event(SCX_EV_ENQ_SKIP_MIGRATION_DISABLED, 1);
|
||||
goto local;
|
||||
}
|
||||
|
||||
if (!SCX_HAS_OP(enqueue))
|
||||
goto global;
|
||||
|
|
@ -5067,6 +5076,7 @@ static void scx_dump_state(struct scx_exit_info *ei, size_t dump_len)
|
|||
scx_dump_event(s, &events, SCX_EV_DISPATCH_LOCAL_DSQ_OFFLINE);
|
||||
scx_dump_event(s, &events, SCX_EV_DISPATCH_KEEP_LAST);
|
||||
scx_dump_event(s, &events, SCX_EV_ENQ_SKIP_EXITING);
|
||||
scx_dump_event(s, &events, SCX_EV_ENQ_SKIP_MIGRATION_DISABLED);
|
||||
scx_dump_event(s, &events, SCX_EV_ENQ_SLICE_DFL);
|
||||
scx_dump_event(s, &events, SCX_EV_BYPASS_DURATION);
|
||||
scx_dump_event(s, &events, SCX_EV_BYPASS_DISPATCH);
|
||||
|
|
@ -7210,6 +7220,7 @@ __bpf_kfunc void scx_bpf_events(struct scx_event_stats *events,
|
|||
scx_agg_event(&e_sys, e_cpu, SCX_EV_DISPATCH_LOCAL_DSQ_OFFLINE);
|
||||
scx_agg_event(&e_sys, e_cpu, SCX_EV_DISPATCH_KEEP_LAST);
|
||||
scx_agg_event(&e_sys, e_cpu, SCX_EV_ENQ_SKIP_EXITING);
|
||||
scx_agg_event(&e_sys, e_cpu, SCX_EV_ENQ_SKIP_MIGRATION_DISABLED);
|
||||
scx_agg_event(&e_sys, e_cpu, SCX_EV_ENQ_SLICE_DFL);
|
||||
scx_agg_event(&e_sys, e_cpu, SCX_EV_BYPASS_DURATION);
|
||||
scx_agg_event(&e_sys, e_cpu, SCX_EV_BYPASS_DISPATCH);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user