Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:kernel\trace\trace_irqsoff.c Create Date:2022-07-28 12:09:21
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:check_critical_timing

Proto:static void check_critical_timing(struct trace_array *tr, struct trace_array_cpu *data, unsigned long parent_ip, int cpu)

Type:void

Parameter:

TypeParameterName
struct trace_array *tr
struct trace_array_cpu *data
unsigned longparent_ip
intcpu
327  T0 = preempt_timestamp
328  T1 = ftrace_now(cpu)
329  delta = T1 - T0
331  local_save_flags(flags)
333  pc = We mask the PREEMPT_NEED_RESCHED bit so as not to confuse all current users* that think a non-zero value indicates we cannot preempt.
335  If Not Should this new latency be reported/recorded? Then Go to out
338  raw_spin_lock_irqsave( & max_trace_lock, flags)
341  If Not Should this new latency be reported/recorded? Then Go to out_unlock
344  __trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc)
346  __trace_stack(tr, flags, 5, pc)
348  If critical_sequence != Sequence count - we record it when starting a measurement and* skip the latency if the sequence has changed - some other section* did a maximum and could disturb our measurement with serial console* printouts, etc Then Go to out_unlock
351  critical_end = parent_ip
353  If Value is more likely to compile time(!is_tracing_stopped()) Then
354  max_latency = delta
355  update_max_tr_single(tr, current process, cpu)
358  Sequence count - we record it when starting a measurement and* skip the latency if the sequence has changed - some other section* did a maximum and could disturb our measurement with serial console* printouts, etc++
360  out_unlock :
361  raw_spin_unlock_irqrestore( & max_trace_lock, flags)
363  out :
364  critical_sequence = Sequence count - we record it when starting a measurement and* skip the latency if the sequence has changed - some other section* did a maximum and could disturb our measurement with serial console* printouts, etc
365  preempt_timestamp = ftrace_now(cpu)
366  __trace_function(tr, CALLER_ADDR0, parent_ip, flags, pc)
Caller
NameDescribe
stop_critical_timing