Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\stop_machine.c Create Date:2022-07-28 11:21:04
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:queue_stop_cpus_work

Proto:static bool queue_stop_cpus_work(const struct cpumask *cpumask, cpu_stop_fn_t fn, void *arg, struct cpu_stop_done *done)

Type:bool

Parameter:

TypeParameterName
const struct cpumask *cpumask
cpu_stop_fn_tfn
void *arg
struct cpu_stop_done *done
380  bool queued = false
387  Even if we don't have any preemption, we need preempt disable/enable* to be barriers, so that we don't have things like get_user/put_user* that can cause faults and scheduling migrate into our preempt-protected* region.()
388  stop_cpus_in_progress = true
389  The "volatile" is due to gcc bugs ()
391  work = per_cpu(stop_work, cpu)
392  fn = fn
393  arg = arg
394  done = done
395  If queue @work to @stopper. if offline, @work is completed immediately Then queued = true
398  The "volatile" is due to gcc bugs ()
399  stop_cpus_in_progress = false
400  preempt_enable()
402  Return queued
Caller
NameDescribe
__stop_cpus
stop_machine_from_inactive_cpustop_machine_from_inactive_cpu - stop_machine() from inactive CPU*@fn: the function to run*@data: the data ptr for the @fn()*@cpus: the cpus to run the @fn() on (NULL = any online cpu)* This is identical to stop_machine() but can be called from a CPU which