From mboxrd@z Thu Jan 1 00:00:00 1970 From: Valentin Schneider Subject: [RFC PATCH 1/5] trace: Add trace_ipi_send_{cpu, cpumask} Date: Fri, 7 Oct 2022 16:45:29 +0100 Message-ID: <20221007154533.1878285-1-vschneid@redhat.com> References: <20221007154145.1877054-1-vschneid@redhat.com> Mime-Version: 1.0 Content-Transfer-Encoding: 8bit Return-path: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1665157554; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=LMgaXogbXPhOabUcxt7UADYdICMU0udr545Ze04p+j4=; b=QMhcXAyIv65abDqObu6am37pXo5onpRU8rusO1cam+6FPdzOQcv942DZarpOIqWjcPpPFS xDYIB0H56udzBmjlyqYIAnxJzkBL3f8cWLKU5ieuuFtAkczaLeXr08GS5dWec8aurd+DF8 fByHYjIZH8vbNsb3BIQAdlyFbk3jgH0= In-Reply-To: <20221007154145.1877054-1-vschneid@redhat.com> List-ID: Content-Type: text/plain; charset="us-ascii" To: linux-alpha@vger.kernel.org, linux-kernel@vger.kernel.org, linux-snps-arc@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-csky@vger.kernel.org, linux-hexagon@vger.kernel.org, linux-ia64@vger.kernel.org, loongarch@lists.linux.dev, linux-mips@vger.kernel.org, openrisc@lists.librecores.org, linux-parisc@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, linux-riscv@lists.infradead.org, linux-s390@vger.kernel.org, linux-sh@vger.kernel.org, sparclinux@vger.kernel.org, linux-xtensa@linux-xtensa.org, x86@kernel.org Cc: "Paul E. McKenney" , Steven Rostedt , Peter Zijlstra , Thomas Gleixner , Sebastian Andrzej Siewior , Juri Lelli , Daniel Bristot de Oliveira , Marcelo Tosatti , Frederic Weisbecker , Ingo Molnar , Borislav Petkov , Dave Hansen , "H. Peter Anvin" , Marc Zyngier , Mark Rutland , Russell King , Nicholas Piggin , Guo Ren , "David S. Miller" trace_ipi_raise is unsuitable for generically tracing IPI sources; add a variant of it that takes a callsite and a CPU. Define a macro helper for handling IPIs sent to multiple CPUs. Signed-off-by: Valentin Schneider --- include/trace/events/ipi.h | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/include/trace/events/ipi.h b/include/trace/events/ipi.h index 0be71dad6ec0..fd2f2aeb36fe 100644 --- a/include/trace/events/ipi.h +++ b/include/trace/events/ipi.h @@ -35,6 +35,33 @@ TRACE_EVENT(ipi_raise, TP_printk("target_mask=%s (%s)", __get_bitmask(target_cpus), __entry->reason) ); +TRACE_EVENT(ipi_send_cpu, + + TP_PROTO(unsigned long callsite, unsigned int cpu), + + TP_ARGS(callsite, cpu), + + TP_STRUCT__entry( + __field(unsigned long, callsite) + __field(unsigned int, cpu) + ), + + TP_fast_assign( + __entry->callsite = callsite; + __entry->cpu = cpu; + ), + + TP_printk("callsite=%pS target_cpu=%d", (void *)__entry->callsite, __entry->cpu) +); + +#define trace_ipi_send_cpumask(callsite, mask) do { \ + if (static_key_false(&__tracepoint_ipi_send_cpu.key)) { \ + int cpu; \ + for_each_cpu(cpu, mask) \ + trace_ipi_send_cpu(callsite, cpu); \ + } \ +} while (0) + DECLARE_EVENT_CLASS(ipi_handler, TP_PROTO(const char *reason), -- 2.31.1