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:23
Last Modify:2020-03-12 14:18:49 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:start_critical_timing

Proto:static inline __attribute__((__always_inline__)) void start_critical_timing(unsigned long ip, unsigned long parent_ip, int pc)

Type:void

Parameter:

TypeParameterName
unsigned longip
unsigned longparent_ip
intpc
373  tr = irqsoff_trace
377  If Not tracer_enabled || Not racing_is_enabled - Show if global_trace has been disabled* Shows if the global trace has been enabled or not. It uses the* mirror flag "buffer_disabled" to be used in fast paths such as for* the irqsoff tracer Then Return
380  cpu = These macros fold the SMP functionality into a single CPU system()
382  If per_cpu(tracing_cpu, cpu) Then Return
385  data = per_cpu_ptr(data, cpu)
387  If Value for the false possibility is greater at compile time(!data) || atomic_read( & disabled) Then Return
390  atomic_inc( & disabled)
392  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
393  preempt_timestamp = ftrace_now(cpu)
394  critical_start = If parent_ip Else ip
396  local_save_flags(flags)
398  __trace_function(tr, ip, parent_ip, flags, pc)
400  per_cpu(tracing_cpu, cpu) = 1
402  atomic_dec( & disabled)
Caller
NameDescribe
start_critical_timingsstart and stop critical timings used to for stoppage (in idle)
tracer_hardirqs_off
tracer_preempt_off