From: Jeremy Linton <jeremy.linton@arm.com>
To: linux-trace-kernel@vger.kernel.org
Cc: linux-perf-users@vger.kernel.org, mhiramat@kernel.org,
oleg@redhat.com, peterz@infradead.org, mingo@redhat.com,
acme@kernel.org, namhyung@kernel.org, mark.rutland@arm.com,
alexander.shishkin@linux.intel.com, jolsa@kernel.org,
irogers@google.com, adrian.hunter@intel.com,
kan.liang@linux.intel.com, thiago.bauermann@linaro.org,
broonie@kernel.org, yury.khrustalev@arm.com,
kristina.martsenko@arm.com, liaochang1@huawei.com,
catalin.marinas@arm.com, will@kernel.org,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org,
Jeremy Linton <jeremy.linton@arm.com>
Subject: [PATCH v7 0/7] arm64: Enable UPROBES with GCS
Date: Sun, 24 Aug 2025 22:34:14 -0500 [thread overview]
Message-ID: <20250825033421.463669-1-jeremy.linton@arm.com> (raw)
Currently uprobes and the Arm Guarded Control Stack (GCS) feature are
exclusive of each other. This restriction needs to be lifted in order
to utilize GCS for generic Linux distro images where the expectation
is that core debugging features like uprobes work.
This series adds some user accessors to read/push/pop the userspace
shadow stack. It then utilizes those functions in the uprobe paths as
needed to synchronize GCS with the changes in control flow at probe
locations.
The KCONFIG restriction is then dropped.
v6->v7: Minor comment changes per review
Add additional review-by's
v5->v6: Add additional review-by's
Post the version with the complete function rename that
builds with/without GCS (patch 3)
Drank my coffee before posting this time.
v4->v5: Fix ret xn handing
Renames, comment tweaks, formatting, per review comments
rebase 6.17, drop first patch
Add reviewed-by's
v3->v4: Much delayed v4 rebased to 6.16
Move existing gcs accessors to gcs.h and then add the new
ones. This fixes some of the forward reference issues,
the build break and keeps them all together.
v2->v3: Cleanup RET logic to alwaays use LR, and not update IP on aborts
Correct generic uprobe_warn bug even though we aren't using it
v1->v2:
Drop uprobe_warn() patch
Fix copy_thread_gcs() bug created by fixing task_gcs_el0_enabled()
Comments, now describe issues with reading userspace GCS pages
Rebased to 6.15
Jeremy Linton (7):
arm64: probes: Break ret out from bl/blr
arm64: uaccess: Move existing GCS accessors definitions to gcs.h
arm64: uaccess: Add additional userspace GCS accessors
arm64: probes: Add GCS support to bl/blr/ret
arm64: uprobes: Add GCS support to uretprobes
arm64: Kconfig: Remove GCS restrictions on UPROBES
uprobes: uprobe_warn should use passed task
arch/arm64/Kconfig | 1 -
arch/arm64/include/asm/gcs.h | 91 +++++++++++++++++++++++-
arch/arm64/include/asm/uaccess.h | 40 -----------
arch/arm64/kernel/probes/decode-insn.c | 7 +-
arch/arm64/kernel/probes/simulate-insn.c | 50 ++++++++++---
arch/arm64/kernel/probes/simulate-insn.h | 3 +-
arch/arm64/kernel/probes/uprobes.c | 33 +++++++++
kernel/events/uprobes.c | 2 +-
8 files changed, 172 insertions(+), 55 deletions(-)
--
2.50.1
next reply other threads:[~2025-08-25 3:38 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-25 3:34 Jeremy Linton [this message]
2025-08-25 3:34 ` [PATCH v7 1/7] arm64: probes: Break ret out from bl/blr Jeremy Linton
2025-08-25 3:34 ` [PATCH v7 2/7] arm64: uaccess: Move existing GCS accessors definitions to gcs.h Jeremy Linton
2025-08-25 3:34 ` [PATCH v7 3/7] arm64: uaccess: Add additional userspace GCS accessors Jeremy Linton
2025-08-25 3:34 ` [PATCH v7 4/7] arm64: probes: Add GCS support to bl/blr/ret Jeremy Linton
2025-08-25 3:34 ` [PATCH v7 5/7] arm64: uprobes: Add GCS support to uretprobes Jeremy Linton
2025-08-25 3:34 ` [PATCH v7 6/7] arm64: Kconfig: Remove GCS restrictions on UPROBES Jeremy Linton
2025-08-25 3:34 ` [PATCH v7 7/7] uprobes: uprobe_warn should use passed task Jeremy Linton
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=20250825033421.463669-1-jeremy.linton@arm.com \
--to=jeremy.linton@arm.com \
--cc=acme@kernel.org \
--cc=adrian.hunter@intel.com \
--cc=alexander.shishkin@linux.intel.com \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=irogers@google.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@linux.intel.com \
--cc=kristina.martsenko@arm.com \
--cc=liaochang1@huawei.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-perf-users@vger.kernel.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mark.rutland@arm.com \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
--cc=thiago.bauermann@linaro.org \
--cc=will@kernel.org \
--cc=yury.khrustalev@arm.com \
/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;
as well as URLs for NNTP newsgroup(s).