函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Callback function for perf event subsystem

函数原型:static void watchdog_overflow_callback(struct perf_event *event, struct perf_sample_data *data, struct pt_regs *regs)

返回类型:void

参数:

类型参数名称
struct perf_event *event
struct perf_sample_data *data
struct pt_regs *regs
115  interrupts等于0
117  如果(Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(watchdog_nmi_touch) == true)则
118  __this_cpu_write(watchdog_nmi_touch, false)
119  返回
122  如果非watchdog_check_timestamp()则返回
131  如果is_hardlockup()则
132  this_cpu等于当前cpu ID()
135  如果(Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(hard_watchdog_warn) == true)则返回
138  These can be used to print at the various log levels.* All of these will print unconditionally, although note that pr_debug()* and other debug macros are compiled out unless either DEBUG is defined* or CONFIG_DYNAMIC_DEBUG is set.("Watchdog detected hard LOCKUP on cpu %d\n", this_cpu)
140  Don't grab lock, we're oopsing.
141  print_irqtrace_events(当前进程)
142  如果regsshow_regs(regs)
144  否则dump_stack()
151  如果sysctl_hardlockup_all_cpu_backtrace且非st_and_set_bit - Set a bit and return its old value*@nr: Bit to set*@addr: Address to count from* This is an atomic fully-ordered operation (implied full memory barrier).trigger_allbutself_cpu_backtrace()
155  如果hardlockup_panicA variant of panic() called from NMI context. We return if we've already* panicked on this CPU. If another CPU already panicked, loop in* nmi_panic_self_stop() which can provide architecture dependent code such* as saving register state for crash dump.
158  __this_cpu_write(hard_watchdog_warn, true)
159  返回
162  __this_cpu_write(hard_watchdog_warn, false)
163  返回