函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\stop_machine.c Create Date:2022-07-27 12:24:02
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:stop_machine_cpuslocked

函数原型:int stop_machine_cpuslocked(cpu_stop_fn_t fn, void *data, const struct cpumask *cpus)

返回类型:int

参数:

类型参数名称
cpu_stop_fn_tfn
void *data
const struct cpumask *cpus
599  struct multi_stop_data msdata = {fn = fn, data = data, Like num_online_cpus(), but hotplug cpu uses us, so we need this. = num_online_cpus(), active_cpus = cpus, }
606  lockdep_assert_cpus_held()
608  如果非stop_machine_initialized
617  WARN_ON_ONCE( Like num_online_cpus(), but hotplug cpu uses us, so we need this. != 1)
619  local_irq_save(flags)
620  Some architectures might implement lazy enabling/disabling of* interrupts. In some cases, such as stop_machine, we might want* to ensure that after a local_irq_disable(), interrupts have* really been disabled in hardware. Such architectures need to()
621  ret = ( * fn)(data)
622  local_irq_restore(flags)
624  返回:ret
628  set_state( & msdata, MULTI_STOP_PREPARE)
629  返回:stop_cpus - stop multiple cpus*@cpumask: cpus to stop*@fn: function to execute*@arg: argument to @fn* Execute @fn(@arg) on online cpus in @cpumask. On each target cpu,*@fn is run in a process context with the highest priority
调用者
名称描述
microcode_reload_lateReload microcode late on all CPUs. Wait for a sec until they* all gather together.
stop_machine