From: Andrii Nakryiko <andrii@kernel.org>
To: linux-trace-kernel@vger.kernel.org, peterz@infradead.org,
oleg@redhat.com
Cc: rostedt@goodmis.org, mhiramat@kernel.org, bpf@vger.kernel.org,
linux-kernel@vger.kernel.org, jolsa@kernel.org,
paulmck@kernel.org, willy@infradead.org, surenb@google.com,
akpm@linux-foundation.org, linux-mm@kvack.org, mjguzik@gmail.com,
brauner@kernel.org, jannh@google.com,
Andrii Nakryiko <andrii@kernel.org>
Subject: [PATCH 0/2] uprobes,mm: speculative lockless VMA-to-uprobe lookup
Date: Thu, 5 Sep 2024 22:12:03 -0700 [thread overview]
Message-ID: <20240906051205.530219-1-andrii@kernel.org> (raw)
Implement speculative (lockless) resolution of VMA to inode to uprobe,
bypassing the need to take mmap_lock for reads, if possible. Patch #1 by Suren
adds mm_struct helpers that help detect whether mm_struct were changed, which
is used by uprobe logic to validate that speculative results can be trusted
after all the lookup logic results in a valid uprobe instance.
I ran a few will-it-scale benchmarks to sanity check that patch #1 doesn't
introduce any noticeable regressions. Which it seems it doesn't.
Andrii Nakryiko (1):
uprobes: add speculative lockless VMA-to-inode-to-uprobe resolution
Suren Baghdasaryan (1):
mm: introduce mmap_lock_speculation_{start|end}
include/linux/mm_types.h | 3 +++
include/linux/mmap_lock.h | 53 +++++++++++++++++++++++++++++++--------
kernel/events/uprobes.c | 51 +++++++++++++++++++++++++++++++++++++
kernel/fork.c | 3 ---
4 files changed, 97 insertions(+), 13 deletions(-)
--
2.43.5
next reply other threads:[~2024-09-06 5:12 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-09-06 5:12 Andrii Nakryiko [this message]
2024-09-06 5:12 ` [PATCH 1/2] mm: introduce mmap_lock_speculation_{start|end} Andrii Nakryiko
2024-09-09 12:35 ` Jann Horn
2024-09-10 2:09 ` Suren Baghdasaryan
2024-09-10 15:31 ` Jann Horn
2024-09-11 21:34 ` Andrii Nakryiko
2024-09-11 21:48 ` Suren Baghdasaryan
2024-09-12 21:02 ` [PATCH v2 1/1] " Suren Baghdasaryan
2024-09-12 21:04 ` Suren Baghdasaryan
2024-09-12 22:19 ` Andrii Nakryiko
2024-09-12 22:24 ` Suren Baghdasaryan
2024-09-12 22:52 ` Jann Horn
2024-09-24 17:15 ` Matthew Wilcox
2024-09-24 18:00 ` Jann Horn
2024-09-06 5:12 ` [PATCH 2/2] uprobes: add speculative lockless VMA-to-inode-to-uprobe resolution Andrii Nakryiko
2024-09-08 1:22 ` Liam R. Howlett
2024-09-09 1:08 ` Andrii Nakryiko
2024-09-09 13:12 ` Jann Horn
2024-09-09 21:29 ` Andrii Nakryiko
2024-09-10 15:39 ` Jann Horn
2024-09-10 20:56 ` Andrii Nakryiko
2024-09-10 16:32 ` Suren Baghdasaryan
2024-09-10 20:58 ` Andrii Nakryiko
2024-09-12 11:17 ` Christian Brauner
2024-09-12 17:54 ` Andrii Nakryiko
2024-09-15 15:04 ` Oleg Nesterov
2024-09-17 8:19 ` Andrii Nakryiko
2024-09-10 16:06 ` [PATCH 0/2] uprobes,mm: speculative lockless VMA-to-uprobe lookup Jann Horn
2024-09-10 17:58 ` Andrii Nakryiko
2024-09-10 18:13 ` Jann Horn
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=20240906051205.530219-1-andrii@kernel.org \
--to=andrii@kernel.org \
--cc=akpm@linux-foundation.org \
--cc=bpf@vger.kernel.org \
--cc=brauner@kernel.org \
--cc=jannh@google.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linux-trace-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mjguzik@gmail.com \
--cc=oleg@redhat.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=surenb@google.com \
--cc=willy@infradead.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.