函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\include\asm\preempt.h Create Date:2022-07-27 06:39:12
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:抢占计数值

函数原型:static __always_inline int preempt_count(void)

返回类型:int

参数:

26  返回:raw_cpu_read_4(__preempt_count)按位与We use the MSB mostly because its available 的反
调用者
名称描述
irqsafe1_hard_spin_12
irqsafe1_hard_spin_21
irqsafe1_hard_rlock_12
irqsafe1_hard_rlock_21
irqsafe1_hard_wlock_12
irqsafe1_hard_wlock_21
irqsafe1_soft_spin_12
irqsafe1_soft_spin_21
irqsafe1_soft_rlock_12
irqsafe1_soft_rlock_21
irqsafe1_soft_wlock_12
irqsafe1_soft_wlock_21
irqsafe2A_spin_12
irqsafe2A_spin_21
irqsafe2A_wlock_12
irqsafe2A_wlock_21
irqsafe2A_rlock_12
irqsafe2A_rlock_21
irqsafe2B_hard_spin_12
irqsafe2B_hard_spin_21
irqsafe2B_hard_rlock_12
irqsafe2B_hard_rlock_21
irqsafe2B_hard_wlock_12
irqsafe2B_hard_wlock_21
irqsafe2B_soft_spin_12
irqsafe2B_soft_spin_21
irqsafe2B_soft_rlock_12
irqsafe2B_soft_rlock_21
irqsafe2B_soft_wlock_12
irqsafe2B_soft_wlock_21
irqsafe3_hard_spin_123
irqsafe3_hard_spin_132
irqsafe3_hard_spin_213
irqsafe3_hard_spin_231
irqsafe3_hard_spin_312
irqsafe3_hard_spin_321
irqsafe3_hard_rlock_123
irqsafe3_hard_rlock_132
irqsafe3_hard_rlock_213
irqsafe3_hard_rlock_231
irqsafe3_hard_rlock_312
irqsafe3_hard_rlock_321
irqsafe3_hard_wlock_123
irqsafe3_hard_wlock_132
irqsafe3_hard_wlock_213
irqsafe3_hard_wlock_231
irqsafe3_hard_wlock_312
irqsafe3_hard_wlock_321
irqsafe3_soft_spin_123
irqsafe3_soft_spin_132
irqsafe3_soft_spin_213
irqsafe3_soft_spin_231
irqsafe3_soft_spin_312
irqsafe3_soft_spin_321
irqsafe3_soft_rlock_123
irqsafe3_soft_rlock_132
irqsafe3_soft_rlock_213
irqsafe3_soft_rlock_231
irqsafe3_soft_rlock_312
irqsafe3_soft_rlock_321
irqsafe3_soft_wlock_123
irqsafe3_soft_wlock_132
irqsafe3_soft_wlock_213
irqsafe3_soft_wlock_231
irqsafe3_soft_wlock_312
irqsafe3_soft_wlock_321
irqsafe4_hard_spin_123
irqsafe4_hard_spin_132
irqsafe4_hard_spin_213
irqsafe4_hard_spin_231
irqsafe4_hard_spin_312
irqsafe4_hard_spin_321
irqsafe4_hard_rlock_123
irqsafe4_hard_rlock_132
irqsafe4_hard_rlock_213
irqsafe4_hard_rlock_231
irqsafe4_hard_rlock_312
irqsafe4_hard_rlock_321
irqsafe4_hard_wlock_123
irqsafe4_hard_wlock_132
irqsafe4_hard_wlock_213
irqsafe4_hard_wlock_231
irqsafe4_hard_wlock_312
irqsafe4_hard_wlock_321
irqsafe4_soft_spin_123
irqsafe4_soft_spin_132
irqsafe4_soft_spin_213
irqsafe4_soft_spin_231
irqsafe4_soft_spin_312
irqsafe4_soft_spin_321
irqsafe4_soft_rlock_123
irqsafe4_soft_rlock_132
irqsafe4_soft_rlock_213
irqsafe4_soft_rlock_231
irqsafe4_soft_rlock_312
irqsafe4_soft_rlock_321
irqsafe4_soft_wlock_123
irqsafe4_soft_wlock_132
irqsafe4_soft_wlock_213
irqsafe4_soft_wlock_231
irqsafe4_soft_wlock_312
irqsafe4_soft_wlock_321
irq_inversion_hard_spin_123
irq_inversion_hard_spin_132
irq_inversion_hard_spin_213
irq_inversion_hard_spin_231
irq_inversion_hard_spin_312
irq_inversion_hard_spin_321
irq_inversion_hard_rlock_123
irq_inversion_hard_rlock_132
irq_inversion_hard_rlock_213
irq_inversion_hard_rlock_231
irq_inversion_hard_rlock_312
irq_inversion_hard_rlock_321
irq_inversion_hard_wlock_123
irq_inversion_hard_wlock_132
irq_inversion_hard_wlock_213
irq_inversion_hard_wlock_231
irq_inversion_hard_wlock_312
irq_inversion_hard_wlock_321
irq_inversion_soft_spin_123
irq_inversion_soft_spin_132
irq_inversion_soft_spin_213
irq_inversion_soft_spin_231
irq_inversion_soft_spin_312
irq_inversion_soft_spin_321
irq_inversion_soft_rlock_123
irq_inversion_soft_rlock_132
irq_inversion_soft_rlock_213
irq_inversion_soft_rlock_231
irq_inversion_soft_rlock_312
irq_inversion_soft_rlock_321
irq_inversion_soft_wlock_123
irq_inversion_soft_wlock_132
irq_inversion_soft_wlock_213
irq_inversion_soft_wlock_231
irq_inversion_soft_wlock_312
irq_inversion_soft_wlock_321
irq_read_recursion_hard_123
irq_read_recursion_hard_132
irq_read_recursion_hard_213
irq_read_recursion_hard_231
irq_read_recursion_hard_312
irq_read_recursion_hard_321
irq_read_recursion_soft_123
irq_read_recursion_soft_132
irq_read_recursion_soft_213
irq_read_recursion_soft_231
irq_read_recursion_soft_312
irq_read_recursion_soft_321
dotest
check_preemption_disabled
kvm_async_pf_task_wait@interrupt_kernel: Is this called from a routine which interrupts the kernel* (other than user space)?
do_exit
__local_bh_enableThis one is for softirq.c-internal use,* where hardirqs are disabled legitimately:
__do_softirq
process_one_workprocess_one_work - process single work*@worker: self*@work: work to process* Process @work
finish_task_switchsh_task_switch - clean up after a task-switch*@prev: the thread we just switched away from
__schedule_bugPrint scheduling while atomic bug:
preempt_schedule_irqThis is the entry point to schedule() from kernel preemption* off of irq context.* Note, that this is called and return with irqs disabled. This will* protect us against recursive calling from irq.
rcu_read_delay
rcu_corePerform RCU core processing work for the current CPU.
call_timer_fn
cpu_stopper_thread
trace_recursive_lockThe lock and unlock are done within a preempt disable section
__trace_puts__trace_puts - write a constant string into the trace buffer.*@ip: The address of the caller*@str: The constant string to write*@size: The size of the string.
__trace_bputs__trace_bputs - write the pointer to a constant string into trace buffer*@ip: The address of the caller*@str: The constant string to write to the buffer to
trace_dump_stackrace_dump_stack - record a stack back trace in the trace buffer*@skip: Number of functions to skip (helper handlers)
trace_vbprintkrace_vbprintk - write binary msg to tracing buffer*@ip: The address of the caller*@fmt: The string format to write to the buffer*@args: Arguments for @fmt
__trace_array_vprintk
tracing_mark_write
tracing_mark_raw_write
function_trace_call
function_stack_trace_call
func_prolog_decPrologue for the preempt and irqs off function tracers.* Returns 1 if it is OK to continue, and data->disabled is* incremented.* 0 if the trace is to be ignored, and data->disabled* is kept the same.* Note, this function is also used outside this ifdef but
irqsoff_tracer_callqsoff uses its own tracer function to keep the overhead down:
check_critical_timing
start_critical_timingsstart and stop critical timings used to for stoppage (in idle)
stop_critical_timings
tracer_hardirqs_onWe are only interested in hardirq on/off events:
tracer_hardirqs_off
tracer_preempt_on
tracer_preempt_off
func_prolog_preempt_disable禁用抢占和中断
probe_wakeup_sched_switch
probe_wakeup
trace_hwlat_sample
__trace_mmiotrace_rw
__trace_mmiotrace_map
trace_graph_entry
trace_graph_return
trace_event_buffer_reserve
ftrace_syscall_enter
ftrace_syscall_exit
perf_trace_buf_update
parse_entryCaller is responsible to free the *pentry.
__kprobe_trace_funcKprobe handler
__kretprobe_trace_funcKretprobe handler
do_one_initcall
stack_tracer_disablestack_tracer_disable - temporarily disable the stack tracer* There's a few locations (namely in RCU) where stack tracing* cannot be executed
stack_tracer_enablestack_tracer_enable - re-enable the stack tracer* After stack_tracer_disable() is called, stack_tracer_enable()* must be called shortly afterward.