From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-ed1-f73.google.com (mail-ed1-f73.google.com [209.85.208.73]) (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 578C32FFF90 for ; Wed, 3 Dec 2025 14:48:20 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.73 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764773302; cv=none; b=D48lf9O9YxYPf41YaV/9hqaUW0G56kX5ukpV+PSLyNfJRRCnzTNU1onLQyEg19WCuophYBoBKcGck7XftGxPz1blUgn9ZZlBcKK8HlC3eWSoQl7/f6K/35N6SlZ4HYyGleKJ8yYQx8/hEC1FcGZaNCkfYUhhVPV/lMd3lOwmpJ0= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764773302; c=relaxed/simple; bh=vFB2acYC6UTXJg6iXZzHyk84lfxBya/wDI98yOVq4Q4=; h=Date:Mime-Version:Message-ID:Subject:From:To:Cc:Content-Type; b=UGV5/jA5xc6w8+GJOUnICEl15+AbZbUFZpuEfXhXUmVFJM8FLUlAFigCzsRx+pEcMuc/uA5v97zzgIY8WzjBYoVfloHtocExe6rZ2xspfmqZrz+xANJbr5OZl8cGZJ74EJBFljEGYcObGtAAo6BU8MpMNcriS2fkW5D74m8mbsk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b=ufaStzlv; arc=none smtp.client-ip=209.85.208.73 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=google.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=flex--aliceryhl.bounces.google.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=google.com header.i=@google.com header.b="ufaStzlv" Received: by mail-ed1-f73.google.com with SMTP id 4fb4d7f45d1cf-6411c626af4so6548901a12.1 for ; Wed, 03 Dec 2025 06:48:20 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20230601; t=1764773299; x=1765378099; darn=vger.kernel.org; h=cc:to:from:subject:message-id:mime-version:date:from:to:cc:subject :date:message-id:reply-to; bh=R083YyKkmXAmCxeRjmCF4aawwgPM5D8Vwqqo+kBw6zI=; b=ufaStzlv1v8+KGYxJv97F3nm6GKnSBHiOy46uhwtGfUd1BC2bSd8TTcS8CARUP53XG YMsyA0e/CBB4uzafEgWA+oo5h1OvgFM8UaU9cCHWSPRBsTB7QRa80mtE3s127gd17MPY f30NHaVCX2naEzIozn9mYLB5lyne8n7p99V+appvEmBip5LhoC9j5aBjM39+ynoq053h Y+/aQonJCTp1j2u8i6lEPd7abL9VgZxfd9ByvLEFH9R0iHlwLUlaFQTYv85TUXu/z8DG CAKZ2zZLNViZgh1sbdrDsbnUNOpH4fHUpsMHSfORPS1wY0j/sFWhbbHdtXa3+AEVXb24 Dsbg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764773299; x=1765378099; h=cc:to:from:subject:message-id:mime-version:date:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=R083YyKkmXAmCxeRjmCF4aawwgPM5D8Vwqqo+kBw6zI=; b=tBzOwQg2K3jIaXL9+EFSjyoBgvgh8yS9Odw0idsXo3zrA7YsED2dG5qDuzrsZHc0VV qY3cWOJdxVMowX8UE7xgbgUQjCVI0GACcFF+VHdmAUNi24k/tQzODxb+ZACuwMRN2vkD NwSCTYAnz8gt2tLu8ZrBZ5Y57HrfKx1Lzz7FPYLSrZxnnscGaWNi50SZMWdQl9jcgq7T EqUXgpXChKE3hWTolWvt+8hWfMLfVSMQ2ba0GOv6NvOlCiUJ5bXu1WEygW8e/C7jF5Zr jcM00dV8WzzEvNlgnRKF5ZGetEqlrFa9JASSkwGW9NlmSoC0hEs+daUzIcJNBPqUmVbw zU+A== X-Forwarded-Encrypted: i=1; AJvYcCVNZChDksXgvKwRhvKagaPouMIQyI3PmA9Klj6DQesvcoGnigPtToOaZgh1eYbmUUKgRQzYFEGdcp6BP8U=@vger.kernel.org X-Gm-Message-State: AOJu0YwgHSwlNSlJgHBFSGV35MhESB6qMTAD/TUmPKEgNTF759Ph2AHZ x/JTQ+zltZJMh2LVAiDDzUbfHnrOIDM2Ra94RvGiLt9BSgdWCxBeBRVVhUirAMSB9RDQEEoiMte 2dr9WF9fQK3zFbBp6ow== X-Google-Smtp-Source: AGHT+IEOBrAUlvapQuOyBy5jLmZU8vMlqp6OWY7wtvuY1C4CBIRQn9B9eNChTLF1OBbMVW1ZRA4jP3gDO07ldLs= X-Received: from ejctb5.prod.google.com ([2002:a17:907:8b85:b0:b73:7130:388f]) (user=aliceryhl job=prod-delivery.src-stubby-dispatcher) by 2002:a17:907:3da1:b0:b73:6c97:af4b with SMTP id a640c23a62f3a-b79dc761116mr253949466b.45.1764773298562; Wed, 03 Dec 2025 06:48:18 -0800 (PST) Date: Wed, 03 Dec 2025 14:48:07 +0000 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 X-B4-Tracking: v=1; b=H4sIAKdNMGkC/x3MQQqAIBBA0avErBMcJaGuEi0sx5qNxRgRiHdPW r7F/wUyCVOGqSsg9HDmMzVg38F2+LST4tAMRpsBEa1aOQUSdYvfCNVqgnVjdJashtZcQpHf/zc vtX6ifxjIXwAAAA== X-Change-Id: 20251113-binder-trace1-b2d369f63e30 X-Developer-Key: i=aliceryhl@google.com; a=openpgp; fpr=49F6C1FAA74960F43A5B86A1EE7A392FDE96209F X-Developer-Signature: v=1; a=openpgp-sha256; l=1251; i=aliceryhl@google.com; h=from:subject:message-id; bh=vFB2acYC6UTXJg6iXZzHyk84lfxBya/wDI98yOVq4Q4=; b=owEBbQKS/ZANAwAKAQRYvu5YxjlGAcsmYgBpME2q3rzX3kZ/g2sO46GEgDlqP/69bBV5ZQAjj YNx+34KjjqJAjMEAAEKAB0WIQSDkqKUTWQHCvFIvbIEWL7uWMY5RgUCaTBNqgAKCRAEWL7uWMY5 Rl9PEACfjHXgsSQs1n2Agm9h7nDpT9RCupir36hDaGt15q2kZU14zBE9ojt8gzeFWWFyQajGbVa tRdZOkktVnqjZYAoNdufX07/XLD2Qw2ItItsYYf302fNsc7HKToL4qBc2Uy1n+D8WEc4L7DkWw+ kypM/O6cLFXeWzhneVRJerJen03UZ0tCbvuqFFjpxe3l8Klr3G633ciYnrWyfwqd/WBMWIQ1Mpb lNDV+Yxv031WD36KQLwP5HLwTjRc0Dqg+RaO5LUKjgVVekofm+/lQ4LrYTiGdah0RsCRPy+ltUQ SifBXS+t+a+ZrGxfoItxbNZK3kgzgB+HHcokH6by1EeBn7gzxlyWfeEQ5gyu8khxxuBhopFQsZ0 1WUq86Vt3xlNP/HasmFB+Upn4vSdByHyG1GGYksWRirMpVCHKIt5hVgTLAtPp4c6Q7XhVRXgUHm +WKSWJLSadavjuimRXBQg46llVRqg8bRMxkRRby3+Uwgi8fqVN6zpsmZ2BxGn27h28rvGqxorIr KCaRjR31rsQ6qQj/Yme253wnPtDsrClDQkU552SpTzW7X6yp0msA6wcpTl9mD1YwJRERCQMU5J7 2zcDekDvTeYl7FevQpHKI99C4FtVhfD5k2uB9/WPzqa0yB5tfUQ5tdtgjRbC0qpu74ogpuvxMBk PXnNOno5o+3Cefw== X-Mailer: b4 0.14.2 Message-ID: <20251203-binder-trace1-v1-0-22d3ffddb44e@google.com> Subject: [PATCH 0/2] Access Rust fields from TP_fast_assign in TRACE_EVENT From: Alice Ryhl To: Greg Kroah-Hartman , Carlos Llamas , Steven Rostedt Cc: Masami Hiramatsu , Mathieu Desnoyers , Miguel Ojeda , Boqun Feng , Gary Guo , "=?utf-8?q?Bj=C3=B6rn_Roy_Baron?=" , Benno Lossin , Andreas Hindborg , Trevor Gross , Danilo Krummrich , "=?utf-8?q?Arve_Hj=C3=B8nnev=C3=A5g?=" , Todd Kjos , Martijn Coenen , Joel Fernandes , Christian Brauner , Suren Baghdasaryan , rust-for-linux@vger.kernel.org, linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org, Alice Ryhl Content-Type: text/plain; charset="utf-8" This patch shows one possible mechanism for accessing Rust fields from the TP_fast_assign() body of a trace event. The idea is to have the driver expose the offsets of the relevant fields, and to have the C code use those offsets to access the data. I'm currently using this mechanism in the Rust Binder driver on Android's fork of 6.12. Signed-off-by: Alice Ryhl --- Alice Ryhl (2): rust: sync: add Arc::DATA_OFFSET rust_binder: add binder_transaction tracepoint drivers/android/binder/node.rs | 8 +++ drivers/android/binder/process.rs | 7 +++ drivers/android/binder/rust_binder.h | 79 +++++++++++++++++++++++++++++ drivers/android/binder/rust_binder_events.h | 30 +++++++++++ drivers/android/binder/rust_binder_main.rs | 8 +++ drivers/android/binder/thread.rs | 1 + drivers/android/binder/trace.rs | 21 ++++++++ drivers/android/binder/transaction.rs | 14 +++++ rust/kernel/sync/arc.rs | 3 ++ 9 files changed, 171 insertions(+) --- base-commit: 211ddde0823f1442e4ad052a2f30f050145ccada change-id: 20251113-binder-trace1-b2d369f63e30 Best regards, -- Alice Ryhl