Defined in 2 files as a function:
- kernel/sched/sched.h, line 1419 (as a function)
- tools/sched_ext/include/scx/common.bpf.h, line 535 (as a function)
Referenced in 8 files:
- kernel/sched/core.c
- kernel/sched/deadline.c
- kernel/sched/ext/ext.c
- kernel/sched/ext/sub.c
- kernel/sched/ext/sub.h, line 206
- kernel/sched/rt.c
- tools/sched_ext/scx_central.bpf.c, line 159
- tools/testing/selftests/sched_ext/dsp_local_on.bpf.c, line 46
Smatch caller information:
kernel/sched/build_policy.c find_lock_later_rq() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| CAPPED_DATA | 0 | p | 1 |
| DATA_SOURCE | 0 | p | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &p->pi_lock |
kernel/sched/build_policy.c find_lock_lowest_rq() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| PARAM_VALUE | 0 | p->migration_disabled | 0 |
| CAPPED_DATA | 0 | p | 1 |
| CAPPED_DATA | 0 | p->prio | 1 |
| DATA_SOURCE | 0 | p | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | 0 | &p->pi_lock |
kernel/sched/build_policy.c pull_dl_task() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| DATA_SOURCE | 0 | p | r pick_earliest_pushable_dl_task |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | irq |
kernel/sched/build_policy.c pull_rt_task() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| CAPPED_DATA | 0 | p->prio | 1 |
| DATA_SOURCE | 0 | p | r pick_highest_pushable_task |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | irq |
kernel/sched/build_policy.c push_dl_task() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
kernel/sched/build_policy.c push_rt_task() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| CAPPED_DATA | 0 | p->prio | 1 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
kernel/sched/core.c __cant_migrate() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &cq->lock | ||
| HALF_LOCKED2 | &ctx->uring_lock | ||
| HALF_LOCKED2 | &queue->rx_lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read |
kernel/sched/core.c __cant_migrate() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| HALF_LOCKED2 | &cq->lock | ||
| HALF_LOCKED2 | &ctx->uring_lock | ||
| HALF_LOCKED2 | &queue->rx_lock | ||
| HALF_LOCKED2 | bh | ||
| HALF_LOCKED2 | rcu_read |
kernel/sched/core.c __set_cpus_allowed_ptr_locked() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p->group_leader | (-1),1-s32max |
| BUF_SIZE | 0 | p->mempolicy | (-1),1-s32max |
| DATA_SOURCE | 0 | p | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | p->exit_signal | 1-64[c] |
| NO_OVERFLOW_SIMPLE | 0 | p->dl.pi_se->dl_runtime | |
| LOCK2 | rf.flags | ||
| LOCK2 | 0 | &p->pi_lock | |
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/sched/core.c __set_cpus_allowed_ptr_locked() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p->group_leader | (-1),1-s32max |
| BUF_SIZE | 0 | p->mempolicy | (-1),1-s32max |
| CAPPED_DATA | 0 | p | 1 |
| DATA_SOURCE | 0 | p | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | p->exit_signal | 1-64[c] |
| NO_OVERFLOW_SIMPLE | 0 | p->dl.pi_se->dl_runtime | |
| LOCK2 | rf.flags | ||
| LOCK2 | 0 | &p->pi_lock | |
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/sched/core.c affine_move_task() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p->group_leader | (-1),1-s32max |
| BUF_SIZE | 0 | p->mempolicy | (-1),1-s32max |
| BUF_SIZE | 0 | p->migration_pending | (-1),176 |
| CAPPED_DATA | 0 | p | 1 |
| DATA_SOURCE | 0 | p | $1 |
| NOSPEC | 0 | p->thread.fsbase | |
| NOSPEC | 0 | p->thread.gsbase | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | p->dl.pi_se->runtime | 1-17592186044415[c] |
| USER_DATA | 0 | p->exit_signal | 1-64[c] |
| USER_DATA | 0 | p->group_leader->thread.fsbase | 0-s32max[c] |
| USER_DATA | 0 | p->group_leader->thread.gsbase | 0-s32max[c] |
| USER_DATA | 0 | p->thread.fsbase | 0-s32max[c] |
| USER_DATA | 0 | p->thread.gsbase | 0-s32max[c] |
| NO_OVERFLOW_SIMPLE | 0 | p->dl.pi_se->dl_runtime | |
| LOCK2 | rf.flags | ||
| LOCK2 | 0 | &p->pi_lock | |
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/sched/core.c balance_push() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | rq |
kernel/sched/core.c is_cpu_allowed() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| BUF_SIZE | 0 | p | (-1)-s32max |
| BUF_SIZE | 0 | p | (-1)-s32max |
| BUF_SIZE | 0 | p->vfork_done | (-1),96 |
| DATA_SOURCE | 0 | p | $0 |
| NOSPEC | 0 | p->thread.fsbase | |
| NOSPEC | 0 | p->thread.gsbase | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | p->dl.pi_se->runtime | 1-17592186044415[c] |
| USER_DATA | 0 | p->exit_code | 0-64 |
| USER_DATA | 0 | p->exit_signal | 1-64[c] |
| USER_DATA | 0 | p->group_leader->thread.fsbase | 0-s32max[c] |
| USER_DATA | 0 | p->group_leader->thread.gsbase | 0-s32max[c] |
| USER_DATA | 0 | p->ptrace | 0-u32max[c] |
| USER_DATA | 0 | p->syscall_dispatch.len | 0-u64max |
| USER_DATA | 0 | p->syscall_dispatch.offset | 0-s32max[c] |
| USER_DATA | 0 | p->thread.ds | 0-u16max |
| USER_DATA | 0 | p->thread.es | 0-u16max |
| USER_DATA | 0 | p->thread.features_locked | 0-u64max[c][u] |
| USER_DATA | 0 | p->thread.fsbase | 0-s32max[c] |
| USER_DATA | 0 | p->thread.fsindex | 0-u16max |
| USER_DATA | 0 | p->thread.gsbase | 0-s32max[c] |
| USER_DATA | 0 | p->thread.gsindex | 0-u16max |
| USER_DATA | 0 | p->thread.ptrace_dr7 | 0-u64max |
| USER_DATA | 0 | p->thread.virtual_dr6 | 0-u64max |
| NO_OVERFLOW_SIMPLE | 0 | p->dl.pi_se->dl_runtime | |
| NO_OVERFLOW_SIMPLE | 0 | p->nsproxy->pid_ns_for_children->pid_cachep->object_size | |
| NO_OVERFLOW_SIMPLE | 0 | p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity | |
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | 0 | &p->pi_lock | |
| HALF_LOCKED2 | 0 | &p->sighand->siglock |
kernel/sched/core.c migration_cpu_stop() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | rf.flags | ||
| LOCK2 | 0 | &p->pi_lock | |
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/sched/core.c push_cpu_stop() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| DATA_SOURCE | 0 | p | $0 |
| PREEMPT_ADD | <- disables preempt | ||
| LOCK2 | irq | ||
| LOCK2 | 0 | &p->pi_lock | |
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/sched/core.c select_task_rq() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| BUF_SIZE | 0 | p | (-1)-s32max |
| BUF_SIZE | 0 | p | (-1)-s32max |
| BUF_SIZE | 0 | p->group_leader | (-1),1-s32max |
| BUF_SIZE | 0 | p->mempolicy | (-1),1-s32max |
| BUF_SIZE | 0 | p->vfork_done | (-1),96 |
| CAPPED_DATA | 0 | p | 1 |
| DATA_SOURCE | 0 | p | $0 |
| NOSPEC | 0 | p->thread.fsbase | |
| NOSPEC | 0 | p->thread.gsbase | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | p->dl.pi_se->runtime | 1-17592186044415[c] |
| USER_DATA | 0 | p->exit_code | 0-64 |
| USER_DATA | 0 | p->exit_signal | 1-64[c] |
| USER_DATA | 0 | p->group_leader->thread.fsbase | 0-u32max |
| USER_DATA | 0 | p->group_leader->thread.gsbase | 0-u32max |
| USER_DATA | 0 | p->ptrace | 0-u32max[c] |
| USER_DATA | 0 | p->syscall_dispatch.len | 0-u64max |
| USER_DATA | 0 | p->syscall_dispatch.offset | 0-s32max[c] |
| USER_DATA | 0 | p->thread.ds | 0-u16max |
| USER_DATA | 0 | p->thread.es | 0-u16max |
| USER_DATA | 0 | p->thread.features_locked | 0-u64max[c][u] |
| USER_DATA | 0 | p->thread.fsbase | 0-u32max |
| USER_DATA | 0 | p->thread.fsindex | 0-u16max |
| USER_DATA | 0 | p->thread.gsbase | 0-u32max |
| USER_DATA | 0 | p->thread.gsindex | 0-u16max |
| USER_DATA | 0 | p->thread.ptrace_dr7 | 0-u64max |
| USER_DATA | 0 | p->thread.virtual_dr6 | 0-u64max |
| NO_OVERFLOW_SIMPLE | 0 | p->dl.pi_se->dl_runtime | |
| NO_OVERFLOW_SIMPLE | 0 | p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity | |
| UNITS | 0 | p | unit_byte |
| LOCK2 | 0 | &p->pi_lock | |
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | rf.flags | ||
| HALF_LOCKED2 | 0 | &p->sighand->siglock | |
| TYPE_LOCK | (struct task_struct)->pi_lock |
kernel/sched/core.c set_task_cpu() -> is_migration_disabled()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | p | 4096-ptr_max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p | (-1),1-s32max |
| BUF_SIZE | 0 | p->group_leader | (-1),1-s32max |
| BUF_SIZE | 0 | p->mempolicy | (-1),1-s32max |
| BUF_SIZE | 0 | p->migration_pending | (-1),176 |
| CAPPED_DATA | 0 | p | 1 |
| DATA_SOURCE | 0 | p | $0 |
| NOSPEC | 0 | p->thread.fsbase | |
| NOSPEC | 0 | p->thread.gsbase | |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | p->dl.pi_se->runtime | 1-17592186044415[c] |
| USER_DATA | 0 | p->exit_code | 0-64 |
| USER_DATA | 0 | p->exit_signal | 1-64[c] |
| USER_DATA | 0 | p->group_leader->thread.fsbase | 0-s32max[c] |
| USER_DATA | 0 | p->group_leader->thread.gsbase | 0-s32max[c] |
| USER_DATA | 0 | p->ptrace | 0-u32max[c] |
| USER_DATA | 0 | p->syscall_dispatch.len | 0-u64max |
| USER_DATA | 0 | p->syscall_dispatch.offset | 0-s32max[c] |
| USER_DATA | 0 | p->thread.ds | 0-u16max |
| USER_DATA | 0 | p->thread.es | 0-u16max |
| USER_DATA | 0 | p->thread.features_locked | 0-u64max[c][u] |
| USER_DATA | 0 | p->thread.fsbase | 0-s32max[c] |
| USER_DATA | 0 | p->thread.fsindex | 0-u16max |
| USER_DATA | 0 | p->thread.gsbase | 0-s32max[c] |
| USER_DATA | 0 | p->thread.gsindex | 0-u16max |
| USER_DATA | 0 | p->thread.ptrace_dr7 | 0-u64max |
| USER_DATA | 0 | p->thread.virtual_dr6 | 0-u64max |
| NO_OVERFLOW_SIMPLE | 0 | p->dl.pi_se->dl_runtime | |
| NO_OVERFLOW_SIMPLE | 0 | p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity | |
| UNITS | 0 | p | unit_byte |
| HALF_LOCKED2 | irq | ||
| HALF_LOCKED2 | rf.flags | ||
| HALF_LOCKED2 | rq | ||
| HALF_LOCKED2 | 0 | &p->pi_lock | |
| HALF_LOCKED2 | 0 | &p->sighand->siglock |