Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 3 files:

Smatch caller information:

kernel/smpboot.c __smpboot_create_thread() -> kthread_set_per_cpu()

Type Parameter Key Value
PARAM_VALUE 0 k 4096-ptr_max
PARAM_VALUE 0 k->flags 0,67108864-u32max
PARAM_VALUE 0 k->worker_private 4096-ptr_max
CAPPED_DATA 0 k 1
DATA_SOURCE 0 k r kthread_create_on_cpu
DATA_SOURCE 1 cpu $1
BIT_INFO 1 cpu 0x0,0x7fffffff
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &smpboot_threads_lock

kernel/workqueue.c rebind_workers() -> kthread_set_per_cpu()

Type Parameter Key Value
CAPPED_DATA 1 cpu 1
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 cpu unit_array_size
LOCK2 global &wq_pool_attach_mutex
LOCK2 global &wq_pool_mutex
HALF_LOCKED2 global &cpuhp_state_mutex
HALF_LOCKED2 irq

kernel/workqueue.c unbind_worker() -> kthread_set_per_cpu()

Type Parameter Key Value
PARAM_VALUE 1 cpu (-1)
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
LOCK2 global &wq_pool_attach_mutex
HALF_LOCKED2 global &wq_pool_mutex

kernel/workqueue.c worker_attach_to_pool() -> kthread_set_per_cpu()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
UNITS 1 cpu unit_array_size
LOCK2 global &wq_pool_attach_mutex

kernel/sched/core.c init_idle() -> kthread_set_per_cpu()

Type Parameter Key Value
PARAM_VALUE 0 k 4096-ptr_max
PARAM_VALUE 0 k->flags 0,2097152-u32max
PARAM_VALUE 1 cpu 1-64
CAPPED_DATA 1 cpu 1
DATA_SOURCE 0 k $0
DATA_SOURCE 1 cpu $1
BIT_INFO 0 k->flags 0x4200000,0xffffffff
PREEMPT_ADD <- disables preempt
NOCHECK_CALL
LOCK2 flags
LOCK2 0 &k->pi_lock
TYPE_LOCK (struct task_struct)->pi_lock