From: Masami Hiramatsu (Google) <mhiramat@kernel.org>
To: Arnd Bergmann <arnd@kernel.org>
Cc: Andy Lutomirski <luto@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
x86@kernel.org, Arnd Bergmann <arnd@arndb.de>,
Jiri Olsa <jolsa@kernel.org>,
Linus Torvalds <torvalds@linux-foundation.org>,
"H. Peter Anvin" <hpa@zytor.com>,
Palmer Dabbelt <palmer@dabbelt.com>, Guo Ren <guoren@kernel.org>,
Geert Uytterhoeven <geert@linux-m68k.org>,
"Masami Hiramatsu (Google)" <mhiramat@kernel.org>,
Kees Cook <kees@kernel.org>,
"peterz@infradead.org" <peterz@infradead.org>,
"H.J. Lu" <hjl.tools@gmail.com>,
Sohil Mehta <sohil.mehta@intel.com>,
Oleg Nesterov <oleg@redhat.com>,
Andrii Nakryiko <andrii@kernel.org>,
linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
linux-riscv@lists.infradead.org
Subject: Re: [RFC] uretprobe: change syscall number, again
Date: Fri, 2 Aug 2024 18:14:37 +0900 [thread overview]
Message-ID: <20240802181437.29b439e26608561f1289892a@kernel.org> (raw)
In-Reply-To: <20240730154500.3155437-1-arnd@kernel.org>
On Tue, 30 Jul 2024 17:43:36 +0200
Arnd Bergmann <arnd@kernel.org> wrote:
> From: Arnd Bergmann <arnd@arndb.de>
>
> Despite multiple attempts to get the syscall number assignment right
> for the newly added uretprobe syscall, we ended up with a bit of a mess:
>
> - The number is defined as 467 based on the assumption that the
> xattrat family of syscalls would use 463 through 466, but those
> did not make it into 6.11.
OK... that was not expected.
>
> - The include/uapi/asm-generic/unistd.h file still lists the number
> 463, but the new scripts/syscall.tbl that was supposed to have the
> same data lists 467 instead as the number for arc, arm64, csky,
> hexagon, loongarch, nios2, openrisc and riscv. None of these
> architectures actually provide a uretprobe syscall.
Oops, thanks for finding.
>
> - All the other architectures (powerpc, arm, mips, ...) don't list
> this syscall at all.
OK, so even if it is not supported on those, we need to put it as a
placeholder.
>
> There are two ways to make it consistent again: either list it with
> the same syscall number on all architectures, or only list it on x86
> but not in scripts/syscall.tbl and asm-generic/unistd.h.
>
> Based on the most recent discussion, it seems like we won't need it
> anywhere else, so just remove the inconsistent assignment and instead
> move the x86 number to the next available one in the architecture
> specific range, which is 335.
>
> Fixes: 5c28424e9a34 ("syscalls: Fix to add sys_uretprobe to syscall.tbl")
> Fixes: 190fec72df4a ("uprobe: Wire up uretprobe system call")
> Fixes: 63ded110979b ("uprobe: Change uretprobe syscall scope and number")
> Cc: Linus Torvalds <torvalds@linux-foundation.org>
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
> I think we should fix this as soon as possible. Please let me know if
> you agree on this approach, or prefer one of the alternatives.
OK, I think it is good. But you missed to fix a selftest code which
also needs to be updated.
Could you revert commit 3e301b431b91 ("selftests/bpf: Change uretprobe
syscall number in uprobe_syscall test") too?
Acked-by: Masami Hiramatsu (Google) <mhiramat@kernel.org>
Thank you,
>
> I've queued up this version in the asm-generic tree so I can send a
> pull request in the next few days, but I'm fine with doing this a
> differently if someone has a stronger opinion on what numbers to
> assign for it on earch architecture.
>
> arch/x86/entry/syscalls/syscall_64.tbl | 2 +-
> include/uapi/asm-generic/unistd.h | 5 +----
> scripts/syscall.tbl | 1 -
> 3 files changed, 2 insertions(+), 6 deletions(-)
>
> diff --git a/arch/x86/entry/syscalls/syscall_64.tbl b/arch/x86/entry/syscalls/syscall_64.tbl
> index 83073fa3c989..7093ee21c0d1 100644
> --- a/arch/x86/entry/syscalls/syscall_64.tbl
> +++ b/arch/x86/entry/syscalls/syscall_64.tbl
> @@ -344,6 +344,7 @@
> 332 common statx sys_statx
> 333 common io_pgetevents sys_io_pgetevents
> 334 common rseq sys_rseq
> +335 common uretprobe sys_uretprobe
> # don't use numbers 387 through 423, add new calls after the last
> # 'common' entry
> 424 common pidfd_send_signal sys_pidfd_send_signal
> @@ -385,7 +386,6 @@
> 460 common lsm_set_self_attr sys_lsm_set_self_attr
> 461 common lsm_list_modules sys_lsm_list_modules
> 462 common mseal sys_mseal
> -467 common uretprobe sys_uretprobe
>
> #
> # Due to a historical design error, certain syscalls are numbered differently
> diff --git a/include/uapi/asm-generic/unistd.h b/include/uapi/asm-generic/unistd.h
> index 985a262d0f9e..5bf6148cac2b 100644
> --- a/include/uapi/asm-generic/unistd.h
> +++ b/include/uapi/asm-generic/unistd.h
> @@ -841,11 +841,8 @@ __SYSCALL(__NR_lsm_list_modules, sys_lsm_list_modules)
> #define __NR_mseal 462
> __SYSCALL(__NR_mseal, sys_mseal)
>
> -#define __NR_uretprobe 463
> -__SYSCALL(__NR_uretprobe, sys_uretprobe)
> -
> #undef __NR_syscalls
> -#define __NR_syscalls 464
> +#define __NR_syscalls 463
>
> /*
> * 32 bit systems traditionally used different
> diff --git a/scripts/syscall.tbl b/scripts/syscall.tbl
> index 591d85e8ca7e..797e20ea99a2 100644
> --- a/scripts/syscall.tbl
> +++ b/scripts/syscall.tbl
> @@ -402,4 +402,3 @@
> 460 common lsm_set_self_attr sys_lsm_set_self_attr
> 461 common lsm_list_modules sys_lsm_list_modules
> 462 common mseal sys_mseal
> -467 common uretprobe sys_uretprobe
> --
> 2.39.2
>
--
Masami Hiramatsu (Google) <mhiramat@kernel.org>
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
next prev parent reply other threads:[~2024-08-02 9:14 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-07-30 15:43 [RFC] uretprobe: change syscall number, again Arnd Bergmann
2024-08-02 9:14 ` Masami Hiramatsu [this message]
2024-08-02 11:52 ` Jiri Olsa
2024-08-02 13:18 ` Arnd Bergmann
2024-08-02 14:00 ` Masami Hiramatsu
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=20240802181437.29b439e26608561f1289892a@kernel.org \
--to=mhiramat@kernel.org \
--cc=andrii@kernel.org \
--cc=arnd@arndb.de \
--cc=arnd@kernel.org \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=geert@linux-m68k.org \
--cc=guoren@kernel.org \
--cc=hjl.tools@gmail.com \
--cc=hpa@zytor.com \
--cc=jolsa@kernel.org \
--cc=kees@kernel.org \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=luto@kernel.org \
--cc=mingo@redhat.com \
--cc=oleg@redhat.com \
--cc=palmer@dabbelt.com \
--cc=peterz@infradead.org \
--cc=sohil.mehta@intel.com \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox