Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v6.17-rc6 70 lines 1.8 kB view raw
1#ifdef CONFIG_PREEMPTIRQ_TRACEPOINTS 2 3#undef TRACE_SYSTEM 4#define TRACE_SYSTEM preemptirq 5 6#if !defined(_TRACE_PREEMPTIRQ_H) || defined(TRACE_HEADER_MULTI_READ) 7#define _TRACE_PREEMPTIRQ_H 8 9#include <linux/ktime.h> 10#include <linux/tracepoint.h> 11#include <linux/string.h> 12#include <asm/sections.h> 13 14DECLARE_EVENT_CLASS(preemptirq_template, 15 16 TP_PROTO(unsigned long ip, unsigned long parent_ip), 17 18 TP_ARGS(ip, parent_ip), 19 20 TP_STRUCT__entry( 21 __field(s32, caller_offs) 22 __field(s32, parent_offs) 23 ), 24 25 TP_fast_assign( 26 __entry->caller_offs = (s32)(ip - (unsigned long)_stext); 27 __entry->parent_offs = (s32)(parent_ip - (unsigned long)_stext); 28 ), 29 30 TP_printk("caller=%pS parent=%pS", 31 (void *)((unsigned long)(_stext) + __entry->caller_offs), 32 (void *)((unsigned long)(_stext) + __entry->parent_offs)) 33); 34 35#ifdef CONFIG_TRACE_IRQFLAGS 36DEFINE_EVENT(preemptirq_template, irq_disable, 37 TP_PROTO(unsigned long ip, unsigned long parent_ip), 38 TP_ARGS(ip, parent_ip)); 39 40DEFINE_EVENT(preemptirq_template, irq_enable, 41 TP_PROTO(unsigned long ip, unsigned long parent_ip), 42 TP_ARGS(ip, parent_ip)); 43#else 44#define trace_irq_enable(...) 45#define trace_irq_disable(...) 46#endif 47 48#ifdef CONFIG_TRACE_PREEMPT_TOGGLE 49DEFINE_EVENT(preemptirq_template, preempt_disable, 50 TP_PROTO(unsigned long ip, unsigned long parent_ip), 51 TP_ARGS(ip, parent_ip)); 52 53DEFINE_EVENT(preemptirq_template, preempt_enable, 54 TP_PROTO(unsigned long ip, unsigned long parent_ip), 55 TP_ARGS(ip, parent_ip)); 56#else 57#define trace_preempt_enable(...) 58#define trace_preempt_disable(...) 59#endif 60 61#endif /* _TRACE_PREEMPTIRQ_H */ 62 63#include <trace/define_trace.h> 64 65#else /* !CONFIG_PREEMPTIRQ_TRACEPOINTS */ 66#define trace_irq_enable(...) 67#define trace_irq_disable(...) 68#define trace_preempt_enable(...) 69#define trace_preempt_disable(...) 70#endif