Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\traps.c Create Date:2022-07-28 07:31:52
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:In IST context, we explicitly disable preemption. This serves two* purposes: it makes it much less likely that we would accidentally* schedule in IST context and it will force a warning if we somehow* manage to schedule by accident.

Proto:void ist_enter(struct pt_regs *regs)

Type:void

Parameter:

TypeParameterName
struct pt_regs *regs
92  If ser_mode(regs) determines whether a register set came from user* mode Then
93  RCU_LOCKDEP_WARN(!_is_watching - see if RCU thinks that the current CPU is not idle* Return true if RCU is watching the running CPU, which means that this* CPU can safely enter RCU read-side critical sections, "entry code didn't wake RCU")
94  Else
101  rcu_nmi_enter()
104  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.()
107  RCU_LOCKDEP_WARN(!_is_watching - see if RCU thinks that the current CPU is not idle* Return true if RCU is watching the running CPU, which means that this* CPU can safely enter RCU read-side critical sections, "ist_enter didn't work")
Caller
NameDescribe
do_double_faultRuns on an IST stack for x86_64 and on a special task stack for x86_32.* On x86_64, this is more or less a normal kernel entry. Notwithstanding the* SDM's warnings about double faults being unrecoverable, returning works as* expected
do_int3
do_debugOur handling of the processor debug registers is non-trivial.* We do not clear them on entry and exit from the kernel. Therefore* it is possible to get a watchpoint trap here from inside the kernel.* However, the code in
do_machine_checkThe actual machine check handler. This only handles real* exceptions when something got corrupted coming in through int 18.* This is executed in NMI context not subject to normal locking rules. This* implies that most kernel services cannot be safely used
winchip_machine_checkMachine check handler for WinChip C6:
pentium_machine_checkMachine check handler for Pentium class Intel CPUs: