From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 7EA0D37882B for ; Mon, 18 May 2026 15:23:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779117832; cv=none; b=nwz2CoRcUJ6sA3Q0jwZsT+QFirlf77sKA3tiGbMgcS1rmD4TfmSlOacbCkKPicYoVdRJ+0dA6yb+m78WTm2avI4WHn0hC4DPGZIZgMyl5ABl47RLa86BFYd8JgteIzOl/X6IdPbQh3g2pInatzHXKqlcuHcgMFim+Z8dmWYwH+A= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1779117832; c=relaxed/simple; bh=oYKdPECkfbDJw5lqlozxgaBteqaMwPDfqiHCTq4kUKg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ngDUZxPV6DCyYbxaYycoP9WfFlKZ3FQvmDaxO9unW9ixl4gF66Wphj6kXtFeIEpUFb4qgWiza/Msh6srOJV0JmoVkiR1kKS01I3p6ZsCcFrOkP67QjsywGZLn3q6mZcRw35uEgocqpMLk8/dfZxMRnDO0uvb6i914k9dHOQI8Xw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=Wurm0NR9; arc=none smtp.client-ip=209.85.218.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="Wurm0NR9" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-bcc9fdc959cso476525666b.2 for ; Mon, 18 May 2026 08:23:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1779117828; x=1779722628; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=i65bSW/HxaH7lUOGXOnVjIeyPkR0t/BQOq8mUJVWZcs=; b=Wurm0NR9wHOu/Rkdt/W3t3yFHcqmmeL1T7bmXXEQGmNMgQDBf7Wj73AeSH59nTDmuJ L34l37Xc9URAtDfJbgQVt6/jxN4lTe3byf/A/kdbsp64kQBoPdOxVHs1uE4cDp/qKLZb Pu1SqJIgOxlfzgqTQy2yZTs5sd3FQkHHTW2PZF36x18yRS5HISKWmbGG/zuLntjN38bP 2vzCbwYMb0qtxuMw3ejwoalrgFKfqbSUyX55WIIn9Gmo1jQtDkeNX1dnRBCIgTSItBc6 fJCK0QJ7njQIuLityafZgGWUTX8K+u9RBMQ/KqpM9FIthA7L+oJiJBVt5x77KlKbWxDX zDeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1779117828; x=1779722628; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=i65bSW/HxaH7lUOGXOnVjIeyPkR0t/BQOq8mUJVWZcs=; b=nyn5dvWb7hEofGMuFYmcECXiA6mjD9FsgRqylGoRCGl4mF2p12SY/BTimzC3PuY9RO riGa2cYyQ2xWN4VD39KqEgSpXFChTnt+b5tROILPcKQ6Ih8tcbVuC+yhkdaYFLEEbec1 4f97x47q2IVymm7u0xxPS66lsxvZL12oYu2qOfMDzQstctjNdCNDb/m79oYugE5OCoid VMc3l0TNsD8t9lhrSTvlAfze1o0RKFMka4JWX05lmOjHTWLYG/aEGU1vAJpuX/wR5L9L Sm67xIiKkr6kFZ0pg1FtpKs8gsDRbhF7N4J1vXgTAEOdVm25IYAhQeIJRMFvSVaY8kxM 7OXA== X-Forwarded-Encrypted: i=1; AFNElJ8BxaFrWfxEJaPwymq71CIutvy+h5MQGdhqPYtwzeAQWTVNeFM56dEkGPT+9frEzxJ1POXiTl8i6ijZT9NLcVuUNCE=@vger.kernel.org X-Gm-Message-State: AOJu0YzvJ8c0SdrfcpXtxgxshfisO7r1SsPRILN+yRN0rNxkmbN9kWvj 42qf0VbVOMb3IvkiJkgyhxd+L8keYbPmxslaUIKeMPNoWHi/drItyWGc X-Gm-Gg: Acq92OFcxsChl3n791y4gdTQIRE4Pkgj9LS90wncxWeb20kn6Enaf+TKvDhewTWwFvf CnSH9oY4GpNLvb0kt9qzLOObrjmWJSi8Jb2clvBVj6GWHXTa6Ps5a6g5VbmLmorZJhmyd4rl55a 4UBitTvK72A+y8pJzx1tMZ/VrCik9nJXcsrnPUaRg4y00P0MkbVo1kvgdPTLlSmeVj7H33Im/vL scqFYaYFqF40o1HQCDzERR2ZIkHJL7fxGBE2/8xekO4z9IJlLTKFUKzhnpKlC+rJEPPtYCEiVWc Wm+p6FyPyPog6gnh4I98teJ+AnF2UZ5BFIfKHU6oMoxYkg0Wmgy5xGFf1ZdK1ILW/d//SLSUGV1 WDPIsQdgeubh+aRc4XvEKS/VrfgI2svWW8QpL3ZrWdQvYPtkuyIFAcIEypUlp6rLjVXawXQuR23 Vk4nYBh5QnTQAe X-Received: by 2002:a17:907:c00e:b0:bd5:af3:8a2a with SMTP id a640c23a62f3a-bd5177dbe1emr943312666b.18.1779117827668; Mon, 18 May 2026 08:23:47 -0700 (PDT) Received: from localhost ([2a03:2880:30ff:3::]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-bd4f4e5089fsm581002266b.49.2026.05.18.08.23.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 18 May 2026 08:23:46 -0700 (PDT) From: Mykyta Yatsenko Date: Mon, 18 May 2026 08:23:16 -0700 Subject: [PATCH bpf-next v2 2/3] tracing: Expose tracepoint BTF ids via tracefs Precedence: bulk X-Mailing-List: linux-trace-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Message-Id: <20260518-generic_tracepoint-v2-2-b755a5cf67bb@meta.com> References: <20260518-generic_tracepoint-v2-0-b755a5cf67bb@meta.com> In-Reply-To: <20260518-generic_tracepoint-v2-0-b755a5cf67bb@meta.com> To: bpf@vger.kernel.org, ast@kernel.org, andrii@kernel.org, daniel@iogearbox.net, kafai@meta.com, kernel-team@meta.com, eddyz87@gmail.com, memxor@gmail.com, rostedt@goodmis.org Cc: Mykyta Yatsenko , linux-trace-kernel@vger.kernel.org X-Mailer: b4 0.16-dev X-Developer-Signature: v=1; a=ed25519-sha256; t=1779117822; l=9249; i=yatsenko@meta.com; s=20260324; h=from:subject:message-id; bh=p3L+stMm3oR01jumzRDpRhjXxE3ix90HS/7k13ZUljc=; b=hjyPJeZIiqyH8Hi3pDNcFjxB55gfRJ9FeQz6d5/HFh3vtAPNWj8ttLeY7GLZV0lo4d72W1YFC KA+S24LxxG4Ae/TQtMggE7f4YS6k73FxgUJMSB+k+jZCEc4iEZg3WmW X-Developer-Key: i=yatsenko@meta.com; a=ed25519; pk=1zCUBXUa66KmzfjNsG8YNlMj2ckPdqBPvFq2ww3/YaA= From: Mykyta Yatsenko Add events///btf_ids, a per-template file that exposes the BTF ids resolve_btfids fills in for each tracepoint: btf_obj_id BTF object owning the ids below raw_btf_id FUNC_PROTO of __bpf_trace_ (named args), consumed by raw_tp / tp_btf BPF programs tp_btf_id trace_event_raw_ ring-buffer record, consumed by classic BPF_PROG_TYPE_TRACEPOINT programs DECLARE_EVENT_CLASS now emits a 2-entry BTF_ID_LIST (FUNC __bpf_trace_* and STRUCT trace_event_raw_*) and stores the pointer in trace_event_class. Per-syscall events under syscalls/ share the handcrafted classes event_class_syscall_{enter,exit} instead of going through DECLARE_EVENT_CLASS. Wire those classes to the BTF id lists generated for sys_enter / sys_exit so all ~700 per-syscall events expose the shared dispatcher prototype and record. The per-syscall events do not own their own tracepoint (they share sys_enter/sys_exit), so raw_btf_id is reported as 0 on those events; the meaningful raw_btf_id is exposed on raw_syscalls/sys_{enter,exit}/btf_ids where raw_tp / tp_btf programs can actually attach. Signed-off-by: Mykyta Yatsenko --- include/linux/trace_events.h | 9 +++++ include/trace/trace_events.h | 24 +++++++++++++ kernel/trace/trace_events.c | 80 ++++++++++++++++++++++++++++++++++++++++++- kernel/trace/trace_syscalls.c | 17 +++++++++ 4 files changed, 129 insertions(+), 1 deletion(-) diff --git a/include/linux/trace_events.h b/include/linux/trace_events.h index d49338c44014..3d55b3cc014a 100644 --- a/include/linux/trace_events.h +++ b/include/linux/trace_events.h @@ -298,6 +298,15 @@ struct trace_event_class { struct list_head *(*get_fields)(struct trace_event_call *); struct list_head fields; int (*raw_init)(struct trace_event_call *); +#ifdef CONFIG_BPF_EVENTS + /* + * Per-template BTF ids set by DECLARE_EVENT_CLASS via BTF_ID() and + * patched by resolve_btfids at link time. NULL for handcrafted classes. + * [0] FUNC __bpf_trace_