函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Wake up AP by INIT, INIT, STARTUP sequence.* Instead of waiting for STARTUP after INITs, BSP will execute the BIOS* boot-strap code which is not a desired behavior for waking up BSP. To* void the boot-strap code, wake up CPU0 by NMI instead.

函数原型:static int wakeup_cpu_via_init_nmi(int cpu, unsigned long start_ip, int apicid, int *cpu0_nmi_registered)

返回类型:int

参数:

类型参数名称
intcpu
unsigned longstart_ip
intapicid
int *cpu0_nmi_registered
960  禁止抢占()
965  如果cpu
966  boot_error等于wakeup_secondary_cpu_via_init(apicid, start_ip)
967  转到:out
975  boot_error等于register_nmi_handler(NMI_LOCAL, wakeup_cpu0_nmi, 0, "wake_cpu0")
978  如果非boot_error
979  enable_start_cpu0等于1
980  cpu0_nmi_registered等于1
981  如果dest_logical is used by the IPI functions 恒等于APIC_DEST_LOGICALid等于cpu0_logical_apicid
983  否则id等于apicid
985  boot_error等于Poke the other CPU in the eye via NMI to wake it up. Remember that the normal* INIT, INIT, STARTUP sequence will reset the chip hard for us, and this* won't ... remember to clear down the APIC, etc later.
988  out :
989  禁用抢占和中断()
991  返回:boot_error
调用者
名称描述
do_boot_cpuNOTE - on most systems this is a PHYSICAL apic ID, but on multiquad* (ie clustered apic addressing mode), this is a LOGICAL apic ID.* Returns zero if CPU booted OK, else error code from* ->wakeup_secondary_cpu.