From: Thomas Ballasi <tballasi@linux.microsoft.com>
To: tballasi@linux.microsoft.com
Cc: akpm@linux-foundation.org, linux-mm@kvack.org,
linux-trace-kernel@vger.kernel.org, mhiramat@kernel.org,
rostedt@goodmis.org
Subject: [PATCH v5 1/3] tracing: Add __event_in_*irq() helpers
Date: Thu, 22 Jan 2026 10:25:08 -0800 [thread overview]
Message-ID: <20260122182510.2126-2-tballasi@linux.microsoft.com> (raw)
In-Reply-To: <20260122182510.2126-1-tballasi@linux.microsoft.com>
From: Steven Rostedt <rostedt@goodmis.org>
Some trace events want to expose in their output if they were triggered in
an interrupt or softirq context. Instead of recording this in the event
structure itself, as this information is stored in the flags portion of
the event header, add helper macros that can be used in the print format:
TP_printk("val=%d %s", __entry->val, __entry_in_irq() ? "(in-irq)" : "")
This will output "(in-irq)" for the event in the trace data if the event
was triggered in hard or soft interrupt context.
Link: https://lore.kernel.org/all/20251229132942.31a2b583@gandalf.local.home/
Signed-off-by: Steven Rostedt (Google) <rostedt@goodmis.org>
---
include/trace/stages/stage3_trace_output.h | 8 ++++++++
include/trace/stages/stage7_class_define.h | 19 +++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/include/trace/stages/stage3_trace_output.h b/include/trace/stages/stage3_trace_output.h
index 1e7b0bef95f52..53a23988a3b8a 100644
--- a/include/trace/stages/stage3_trace_output.h
+++ b/include/trace/stages/stage3_trace_output.h
@@ -150,3 +150,11 @@
#undef __get_buf
#define __get_buf(len) trace_seq_acquire(p, (len))
+
+#undef __event_in_hardirq
+#undef __event_in_softirq
+#undef __event_in_irq
+
+#define __event_in_hardirq() (__entry->ent.flags & TRACE_FLAG_HARDIRQ)
+#define __event_in_softirq() (__entry->ent.flags & TRACE_FLAG_SOFTIRQ)
+#define __event_in_irq() (__entry->ent.flags & (TRACE_FLAG_HARDIRQ | TRACE_FLAG_SOFTIRQ))
diff --git a/include/trace/stages/stage7_class_define.h b/include/trace/stages/stage7_class_define.h
index fcd564a590f43..47008897a7956 100644
--- a/include/trace/stages/stage7_class_define.h
+++ b/include/trace/stages/stage7_class_define.h
@@ -26,6 +26,25 @@
#undef __print_hex_dump
#undef __get_buf
+#undef __event_in_hardirq
+#undef __event_in_softirq
+#undef __event_in_irq
+
+/*
+ * The TRACE_FLAG_* are enums. Instead of using TRACE_DEFINE_ENUM(),
+ * use their hardcoded values. These values are parsed by user space
+ * tooling elsewhere so they will never change.
+ *
+ * See "enum trace_flag_type" in linux/trace_events.h:
+ * TRACE_FLAG_HARDIRQ
+ * TRACE_FLAG_SOFTIRQ
+ */
+
+/* This is what is displayed in the format files */
+#define __event_in_hardirq() (REC->common_flags & 0x8)
+#define __event_in_softirq() (REC->common_flags & 0x10)
+#define __event_in_irq() (REC->common_flags & 0x18)
+
/*
* The below is not executed in the kernel. It is only what is
* displayed in the print format for userspace to parse.
--
2.33.8
next prev parent reply other threads:[~2026-01-22 18:25 UTC|newest]
Thread overview: 41+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-08 18:14 [PATCH 0/2] mm: vmscan: add PID and cgroup ID to vmscan tracepoints Thomas Ballasi
2025-12-08 18:14 ` [PATCH 1/2] mm: vmscan: add cgroup IDs " Thomas Ballasi
2025-12-08 18:14 ` [PATCH 2/2] mm: vmscan: add PIDs " Thomas Ballasi
2025-12-10 3:09 ` Steven Rostedt
2025-12-16 14:02 ` [PATCH v2 0/2] mm: vmscan: add PID and cgroup ID " Thomas Ballasi
2025-12-16 14:02 ` [PATCH v2 1/2] mm: vmscan: add cgroup IDs " Thomas Ballasi
2025-12-16 18:50 ` Shakeel Butt
2025-12-17 22:21 ` Steven Rostedt
2025-12-16 14:02 ` [PATCH v2 2/2] mm: vmscan: add PIDs " Thomas Ballasi
2025-12-16 18:03 ` Steven Rostedt
2025-12-29 10:54 ` Thomas Ballasi
2025-12-29 18:29 ` Steven Rostedt
2025-12-29 21:36 ` Steven Rostedt
2026-01-05 16:04 ` [PATCH v3 0/2] mm: vmscan: add PID and cgroup ID " Thomas Ballasi
2026-01-05 16:04 ` [PATCH v3 1/2] mm: vmscan: add cgroup IDs " Thomas Ballasi
2026-01-05 22:46 ` Shakeel Butt
2026-01-07 18:14 ` Shakeel Butt
2026-01-07 18:32 ` Andrew Morton
2026-01-07 20:35 ` Shakeel Butt
2026-01-07 1:56 ` build error on CONFIG_MEMCG=n "error: invalid use of undefined type 'struct mem_cgroup'" Harry Yoo
2026-01-07 2:17 ` Andrew Morton
2026-01-05 16:04 ` [PATCH v3 2/2] mm: vmscan: add PIDs to vmscan tracepoints Thomas Ballasi
2026-01-06 2:06 ` [PATCH v3 0/2] mm: vmscan: add PID and cgroup ID " Andrew Morton
2026-01-06 2:21 ` Steven Rostedt
2026-01-15 12:38 ` [PATCH v4 0/3] " Thomas Ballasi
2026-01-15 12:38 ` [PATCH v4 1/3] tracing: Add __event_in_*irq() helpers Thomas Ballasi
2026-01-15 12:38 ` [PATCH v4 2/3] mm: vmscan: add cgroup IDs to vmscan tracepoints Thomas Ballasi
2026-01-15 12:38 ` [PATCH v4 3/3] mm: vmscan: add PIDs " Thomas Ballasi
2026-01-22 18:25 ` [PATCH v5 0/3] mm: vmscan: add PID and cgroup ID " Thomas Ballasi
2026-01-22 18:25 ` Thomas Ballasi [this message]
2026-01-22 18:25 ` [PATCH v5 2/3] mm: vmscan: add cgroup IDs " Thomas Ballasi
2026-01-27 23:43 ` Shakeel Butt
2026-01-22 18:25 ` [PATCH v5 3/3] mm: vmscan: add PIDs " Thomas Ballasi
2026-01-22 18:52 ` [PATCH v5 0/3] mm: vmscan: add PID and cgroup ID " Andrew Morton
2026-02-13 18:15 ` [PATCH v6 " Thomas Ballasi
2026-02-13 18:15 ` [PATCH v6 1/3] tracing: Add __event_in_*irq() helpers Thomas Ballasi
2026-02-16 16:13 ` Usama Arif
2026-02-17 0:54 ` Steven Rostedt
2026-02-13 18:15 ` [PATCH v6 2/3] mm: vmscan: add cgroup IDs to vmscan tracepoints Thomas Ballasi
2026-02-13 18:15 ` [PATCH v6 3/3] mm: vmscan: add PIDs " Thomas Ballasi
2026-02-16 16:02 ` Usama Arif
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260122182510.2126-2-tballasi@linux.microsoft.com \
--to=tballasi@linux.microsoft.com \
--cc=akpm@linux-foundation.org \
--cc=linux-mm@kvack.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=rostedt@goodmis.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox