Defined in 1 files as a function:

Referenced in 4 files:

Smatch caller information:

kernel/sched/build_policy.c get_prio_dl() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p->group_leader (-1),1-s32max
BUF_SIZE 1 p->io_uring (-1),640
BUF_SIZE 1 p->mempolicy (-1),1-s32max
BUF_SIZE 1 p->numa_faults (-1),64-65600
BUF_SIZE 1 p->vfork_done (-1),96
CAPPED_DATA 1 p 1
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
STR_LEN 0 rq (-1),8-9,11-29,31-34,38
STR_LEN 0 rq (-1),8-9,11-29,31-34,38
STR_LEN 1 p (-1),8-9,11-29,31-34,38
STR_LEN 1 p (-1),8-9,11-29,31-34,38
NOSPEC 1 p->thread.fsbase
NOSPEC 1 p->thread.gsbase
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 1 p->dl.runtime 1-17592186044415[c]
USER_DATA 1 p->exit_code 0-64,256-65280[c]
USER_DATA 1 p->exit_signal 1-64[c]
USER_DATA 1 p->group_leader->thread.fsbase 0-s32max[c]
USER_DATA 1 p->group_leader->thread.gsbase 0-s32max[c]
USER_DATA 1 p->ptrace 0-u32max[c]
USER_DATA 1 p->sched_reset_on_fork 0-1
USER_DATA 1 p->signal->group_exit_code 0,256-65280[c]
USER_DATA 1 p->syscall_dispatch.len 0-u64max
USER_DATA 1 p->syscall_dispatch.offset 0-s32max[c]
USER_DATA 1 p->thread.ds 0-u16max
USER_DATA 1 p->thread.es 0-u16max
USER_DATA 1 p->thread.features_locked 0-u64max[c][u]
USER_DATA 1 p->thread.fsbase 0-s32max[c]
USER_DATA 1 p->thread.fsindex 0-u16max
USER_DATA 1 p->thread.gsbase 0-s32max[c]
USER_DATA 1 p->thread.gsindex 0-u16max
USER_DATA 1 p->thread.ptrace_dr7 0-u64max
USER_DATA 1 p->thread.virtual_dr6 0-u64max
NO_OVERFLOW_SIMPLE 1 p->dl.dl_runtime
NO_OVERFLOW_SIMPLE 1 p->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 1 p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity
HALF_LOCKED2 1 &p->pi_lock
HALF_LOCKED2 1 &p->sighand->siglock

kernel/sched/build_policy.c pick_next_pushable_task() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 0 rq->next_class (-1),248
CAPPED_DATA 0 rq 1
CAPPED_DATA 0 rq->cpu 1
CAPPED_DATA 1 p 1
DATA_SOURCE 0 rq $0
PARAM_COMPARE 0 &rq->rt.pushable_tasks.node_list != $0->rt.pushable_tasks.node_list.next
PARAM_COMPARE 1 p != $0->curr
PARAM_COMPARE 1 p != $0->curr
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 rq->fair_server.pi_se->dl_runtime
HALF_LOCKED2 0 rq

kernel/sched/build_policy.c prio_changed_dl() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
RX_PATH
TASK_NOT_RUNNING

kernel/sched/build_policy.c prio_changed_rt() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
RX_PATH
TASK_NOT_RUNNING

kernel/sched/fair.c can_migrate_task() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
DATA_SOURCE 1 p $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 busiest
HALF_LOCKED2 busiest_rq
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read
HALF_LOCKED2 rf.flags

kernel/sched/fair.c detach_task() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
CAPPED_DATA 1 p 1
DATA_SOURCE 1 p $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 busiest
HALF_LOCKED2 busiest_rq
HALF_LOCKED2 irq
HALF_LOCKED2 rcu_read
HALF_LOCKED2 rf.flags

kernel/sched/fair.c enqueue_throttled_task() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p->group_leader (-1),1-s32max
BUF_SIZE 1 p->mempolicy (-1),1-s32max
BUF_SIZE 1 p->migration_pending (-1),176
BUF_SIZE 1 p->vfork_done (-1),96
CAPPED_DATA 1 &p->throttle_node 1
DATA_SOURCE 1 p $0
NOSPEC 1 p->thread.fsbase
NOSPEC 1 p->thread.gsbase
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 1 p->exit_code 0-64
USER_DATA 1 p->exit_signal 1-64[c]
USER_DATA 1 p->group_leader->thread.fsbase 0-s32max[c]
USER_DATA 1 p->group_leader->thread.gsbase 0-s32max[c]
USER_DATA 1 p->ptrace 0-u32max[c]
USER_DATA 1 p->syscall_dispatch.len 0-u64max
USER_DATA 1 p->syscall_dispatch.offset 0-s32max[c]
USER_DATA 1 p->thread.ds 0-u16max
USER_DATA 1 p->thread.es 0-u16max
USER_DATA 1 p->thread.features_locked 0-u64max[c][u]
USER_DATA 1 p->thread.fsbase 0-s32max[c]
USER_DATA 1 p->thread.fsindex 0-u16max
USER_DATA 1 p->thread.gsbase 0-s32max[c]
USER_DATA 1 p->thread.gsindex 0-u16max
USER_DATA 1 p->thread.ptrace_dr7 0-u64max
USER_DATA 1 p->thread.virtual_dr6 0-u64max
NO_OVERFLOW_SIMPLE 1 p->dl.dl_runtime
NO_OVERFLOW_SIMPLE 1 p->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 1 p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity
HALF_LOCKED2 irq
HALF_LOCKED2 rq
HALF_LOCKED2 1 &p->pi_lock
HALF_LOCKED2 1 &p->sighand->siglock

kernel/sched/fair.c hrtick_start_fair() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 0 rq (-1),24
BUF_SIZE 0 rq (-1),24
CAPPED_DATA 0 rq 1
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
RX_PATH
TASK_NOT_RUNNING
NO_OVERFLOW_SIMPLE 0 rq->fair_server.dl_runtime
NO_OVERFLOW_SIMPLE 0 rq->fair_server.pi_se->dl_runtime
UNITS 1 p unit_byte
HALF_LOCKED2 irq
HALF_LOCKED2 0 rq

kernel/sched/fair.c prio_changed_fair() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
RX_PATH
TASK_NOT_RUNNING

kernel/sched/fair.c switched_to_fair() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
RX_PATH
TASK_NOT_RUNNING

kernel/sched/core.c affine_move_task() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p->group_leader (-1),1-s32max
BUF_SIZE 1 p->mempolicy (-1),1-s32max
CAPPED_DATA 1 p 1
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
NOSPEC 1 p->thread.fsbase
NOSPEC 1 p->thread.gsbase
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 1 p->exit_signal 1-64[c]
USER_DATA 1 p->group_leader->thread.fsbase 0-s32max[c]
USER_DATA 1 p->group_leader->thread.gsbase 0-s32max[c]
USER_DATA 1 p->thread.fsbase 0-s32max[c]
USER_DATA 1 p->thread.gsbase 0-s32max[c]
NO_OVERFLOW_SIMPLE 1 p->dl.pi_se->dl_runtime
LOCK2 rf.flags
LOCK2 1 &p->pi_lock
TYPE_LOCK (struct task_struct)->pi_lock

kernel/sched/core.c proxy_needs_return() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 1 p (-1),112
BUF_SIZE 1 p (-1),112
CAPPED_DATA 1 p 1
DATA_SOURCE 0 rq $0
DATA_SOURCE 1 p $1
PARAM_COMPARE 1 p != $0->curr
PARAM_COMPARE 1 p != $0->curr
NOSPEC 1 p->thread.fsbase
NOSPEC 1 p->thread.gsbase
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p->exit_code 0-64
USER_DATA 1 p->exit_signal 1-64[c]
USER_DATA 1 p->group_leader->thread.fsbase 0-s32max[c]
USER_DATA 1 p->group_leader->thread.gsbase 0-s32max[c]
USER_DATA 1 p->ptrace 0-u32max[c]
USER_DATA 1 p->syscall_dispatch.len 0-u64max
USER_DATA 1 p->syscall_dispatch.offset 0-s32max[c]
USER_DATA 1 p->thread.ds 0-u16max
USER_DATA 1 p->thread.es 0-u16max
USER_DATA 1 p->thread.features_locked 0-u64max[c][u]
USER_DATA 1 p->thread.fsbase 0-s32max[c]
USER_DATA 1 p->thread.fsindex 0-u16max
USER_DATA 1 p->thread.gsbase 0-s32max[c]
USER_DATA 1 p->thread.gsindex 0-u16max
USER_DATA 1 p->thread.ptrace_dr7 0-u64max
USER_DATA 1 p->thread.virtual_dr6 0-u64max
NO_OVERFLOW_SIMPLE 1 p->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 1 p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity
UNITS 1 p unit_byte
LOCK2 irq
LOCK2 1 &p->blocked_lock
LOCK2 1 &p->pi_lock
HALF_LOCKED2 flags
HALF_LOCKED2 1 &p->sighand->siglock
TYPE_LOCK (struct task_struct)->blocked_lock
TYPE_LOCK (struct task_struct)->pi_lock

kernel/sched/core.c sched_change_begin() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p (-1),1-s32max
BUF_SIZE 1 p->group_leader (-1),1-s32max
BUF_SIZE 1 p->io_uring (-1),640
BUF_SIZE 1 p->mempolicy (-1),1-s32max
BUF_SIZE 1 p->numa_faults (-1),64-65600
BUF_SIZE 1 p->vfork_done (-1),96
DATA_SOURCE 1 p $0
STR_LEN 0 rq (-1),8-9,11-29,31-34,38
STR_LEN 1 p (-1),8-9,11-29,31-34,38
NOSPEC 1 p->thread.fsbase
NOSPEC 1 p->thread.gsbase
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 1 p->dl.pi_se->runtime 1-17592186044415[c]
USER_DATA 1 p->dl.runtime 1-17592186044415[c]
USER_DATA 1 p->exit_code 0-64,256-65280[c]
USER_DATA 1 p->exit_signal 1-64[c]
USER_DATA 1 p->group_leader->thread.fsbase 0-s32max[c]
USER_DATA 1 p->group_leader->thread.gsbase 0-s32max[c]
USER_DATA 1 p->ptrace 0-u32max[c]
USER_DATA 1 p->sched_reset_on_fork 0-1
USER_DATA 1 p->signal->group_exit_code 0,256-65280[c]
USER_DATA 1 p->syscall_dispatch.len 0-u64max
USER_DATA 1 p->syscall_dispatch.offset 0-s32max[c]
USER_DATA 1 p->thread.ds 0-u16max
USER_DATA 1 p->thread.es 0-u16max
USER_DATA 1 p->thread.features_locked 0-u64max[c][u]
USER_DATA 1 p->thread.fsbase 0-s32max[c]
USER_DATA 1 p->thread.fsindex 0-u16max
USER_DATA 1 p->thread.gsbase 0-s32max[c]
USER_DATA 1 p->thread.gsindex 0-u16max
USER_DATA 1 p->thread.ptrace_dr7 0-u64max
USER_DATA 1 p->thread.virtual_dr6 0-u64max
NO_OVERFLOW_SIMPLE 1 p->dl.dl_runtime
NO_OVERFLOW_SIMPLE 1 p->dl.pi_se->dl_runtime
NO_OVERFLOW_SIMPLE 1 p->nsproxy->pid_ns_for_children->pid_cachep->sheaf_capacity
UNITS 1 p unit_byte
HALF_LOCKED2 1 &p->pi_lock
HALF_LOCKED2 1 &p->sighand->siglock

kernel/sched/core.c task_sched_runtime() -> task_current_donor()

Type Parameter Key Value
PARAM_VALUE 0 rq 4096-ptr_max
PARAM_VALUE 1 p 4096-ptr_max
DATA_SOURCE 0 rq r _task_rq_lock
DATA_SOURCE 1 p $0
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
LOCK2 rf.flags
LOCK2 1 &p->pi_lock
HALF_LOCKED2 global &ksm_thread_mutex
HALF_LOCKED2 1 &p->signal->exec_update_lock
TYPE_LOCK (struct task_struct)->pi_lock