函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Enable CMCI (Corrected Machine Check Interrupt) for available MCE banks* on this CPU. Use the algorithm recommended in the SDM to discover shared* banks.

函数原型:static void cmci_discover(int banks)

返回类型:void

参数:

类型参数名称
intbanks
268  owned等于this_cpu_ptr( & CMCI can be delivered to multiple cpus that share a machine check bank* so we need to designate a single cpu to process errors logged in each bank* in the interrupt handler (otherwise we would have many races and potential)
271  bios_wrong_thresh等于0
273  raw_spin_lock_irqsave( & cmci_discover_lock protects against parallel discovery attempts* which could race against each other., flags)
274 i小于banks循环
276  bios_zero_thresh等于0
278  如果st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from则继续下一循环
282  如果st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from则继续下一循环
285  rdmsrl(MSR_IA32_MCx_CTL2(i), val)
288  如果val按位与CTL2 register defines
291  继续下一循环
294  如果非bios_cmci_threshold
295  val与等于MCI_CTL2_CMCI_THRESHOLD_MASK的反
296  val或等于CMCI_THRESHOLD
297  否则如果非val按位与MCI_CTL2_CMCI_THRESHOLD_MASK的值则
303  bios_zero_thresh等于1
304  val或等于CMCI_THRESHOLD
307  val或等于CTL2 register defines
308  wrmsrl(MSR_IA32_MCx_CTL2(i), val)
309  rdmsrl(MSR_IA32_MCx_CTL2(i), val)
312  如果val按位与CTL2 register defines
324  否则
328  raw_spin_unlock_irqrestore( & cmci_discover_lock protects against parallel discovery attempts* which could race against each other., flags)
329  如果bios_cmci_thresholdbios_wrong_thresh
330  pr_info_once("bios_cmci_threshold: Some banks do not have valid thresholds set\n")
332  pr_info_once("bios_cmci_threshold: Make sure your BIOS supports this boot option\n")
调用者
名称描述
cmci_rediscover_work_func
cmci_reenableReenable CMCI on this CPU in case a CPU down failed.
intel_init_cmci