From: Thomas Gleixner <tglx@linutronix.de>
To: Kevin Brodsky <kevin.brodsky@arm.com>,
Jinjie Ruan <ruanjinjie@huawei.com>,
catalin.marinas@arm.com, will@kernel.org, oleg@redhat.com,
peterz@infradead.org, luto@kernel.org, shuah@kernel.org,
kees@kernel.org, wad@chromium.org, deller@gmx.de,
macro@orcam.me.uk, charlie@rivosinc.com, ldv@strace.io,
mark.rutland@arm.com, song@kernel.org, ryan.roberts@arm.com,
ada.coupriediaz@arm.com, anshuman.khandual@arm.com,
broonie@kernel.org, pengcan@kylinos.cn, dvyukov@google.com,
linux-arm-kernel@lists.infradead.org,
linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org
Subject: Re: [PATCH v9 15/16] entry: Inline syscall_exit_work()
Date: Thu, 11 Dec 2025 15:55:02 +0900 [thread overview]
Message-ID: <87345hfqyh.ffs@tglx> (raw)
In-Reply-To: <b382cc8a-3ce9-4fb1-bc0a-a3d9796251d1@arm.com>
On Tue, Dec 09 2025 at 14:48, Kevin Brodsky wrote:
> On 04/12/2025 09:21, Jinjie Ruan wrote:
>> After switch arm64 to Generic Entry, a new hotspot syscall_exit_work()
>> appeared because syscall_exit_work() is no longer inlined. so inline
>
> Before this series the call to syscall_trace_exit() in el0_svc_common()
> could not be inlined, so "no longer inlined" doesn't seem to be accurate.
>
>> syscall_exit_work(), and it has 2.6% performance uplift on perf bench
>> basic syscall on kunpeng920 as below.
>
> That seems strange. syscall_exit_work() is only called if some flag in
> SYSCALL_WORK_EXIT is set, which means that we're doing something special
> like tracing. That shouldn't be the case when running a simple perf
> bench syscall.
>
> Also worth nothing that its counterpart (syscall_trace_enter())) is not
> currently inlined, the asymmetry would have to be justified.
>
>> | Metric | W/O this patch | With this patch | Change |
>> | ---------- | -------------- | --------------- | --------- |
>> | Total time | 2.171 [sec] | 2.114 [sec] | ↓2.6% |
>> | usecs/op | 0.217192 | 0.211453 | ↓2.6% |
>> | ops/sec | 4,604,225 | 4,729,178 | ↑2.7% |
>>
>> Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
>> ---
>> include/linux/entry-common.h | 63 ++++++++++++++++++++++++++++++++++-
>> kernel/entry/syscall-common.c | 59 ++------------------------------
>
> These changes are purely generic, surely all architectures using
> GENERIC_ENTRY should get similar benefits (assuming LTO isn't used)?
Correct, but as you said this does not make sense as the syscall exit
work should be rare.
Jinjie, can you please figure out which TIF bit is causing this to be
invoked?
I have a suspicion that it is TIF_NOTIFY_RESUME. If that's the case
you're seing the RSEQ overhead, which should be completely gone with the
rewrite that got just merged into Linus tree.
Thanks,
tglx
next prev parent reply other threads:[~2025-12-11 6:55 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-04 8:21 [PATCH v9 00/16] arm64: entry: Convert to Generic Entry Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 01/16] arm64: Remove unused _TIF_WORK_MASK Jinjie Ruan
2025-12-08 4:42 ` Anshuman Khandual
2025-12-04 8:21 ` [PATCH v9 02/16] arm64/ptrace: Split report_syscall() Jinjie Ruan
2025-12-08 5:02 ` Anshuman Khandual
2025-12-04 8:21 ` [PATCH v9 03/16] arm64/ptrace: Return early for ptrace_report_syscall_entry() error Jinjie Ruan
2025-12-08 5:24 ` Anshuman Khandual
2025-12-08 6:31 ` Jinjie Ruan
2025-12-09 13:46 ` Kevin Brodsky
2025-12-12 4:00 ` Jinjie Ruan
2025-12-15 15:24 ` Kevin Brodsky
2025-12-04 8:21 ` [PATCH v9 04/16] arm64/ptrace: Refactor syscall_trace_enter/exit() Jinjie Ruan
2025-12-08 5:48 ` Anshuman Khandual
2025-12-08 6:24 ` Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 05/16] arm64: ptrace: Move rseq_syscall() before audit_syscall_exit() Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 06/16] arm64: syscall: Rework el0_svc_common() Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 07/16] arm64/ptrace: Not check _TIF_SECCOMP/SYSCALL_EMU for syscall_exit_work() Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 08/16] arm64/ptrace: Do not report_syscall_exit() for PTRACE_SYSEMU_SINGLESTEP Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 09/16] arm64/ptrace: Expand secure_computing() in place Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 10/16] arm64/ptrace: Use syscall_get_arguments() helper Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 11/16] entry: Split syscall_exit_to_user_mode_work() for arch reuse Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 12/16] entry: Add arch_ptrace_report_syscall_entry/exit() Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 13/16] arm64: entry: Convert to generic entry Jinjie Ruan
2025-12-09 13:47 ` Kevin Brodsky
2025-12-04 8:21 ` [PATCH v9 14/16] arm64: Inline el0_svc_common() Jinjie Ruan
2025-12-09 13:48 ` Kevin Brodsky
2025-12-10 2:56 ` Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 15/16] entry: Inline syscall_exit_work() Jinjie Ruan
2025-12-09 13:48 ` Kevin Brodsky
2025-12-11 6:55 ` Thomas Gleixner [this message]
2025-12-11 9:52 ` Kevin Brodsky
2025-12-12 1:12 ` Thomas Gleixner
2025-12-12 1:26 ` Jinjie Ruan
2025-12-12 3:49 ` Jinjie Ruan
2025-12-04 8:21 ` [PATCH v9 16/16] selftests: sud_test: Support aarch64 Jinjie Ruan
2025-12-20 14:53 ` kemal
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=87345hfqyh.ffs@tglx \
--to=tglx@linutronix.de \
--cc=ada.coupriediaz@arm.com \
--cc=anshuman.khandual@arm.com \
--cc=broonie@kernel.org \
--cc=catalin.marinas@arm.com \
--cc=charlie@rivosinc.com \
--cc=deller@gmx.de \
--cc=dvyukov@google.com \
--cc=kees@kernel.org \
--cc=kevin.brodsky@arm.com \
--cc=ldv@strace.io \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=luto@kernel.org \
--cc=macro@orcam.me.uk \
--cc=mark.rutland@arm.com \
--cc=oleg@redhat.com \
--cc=pengcan@kylinos.cn \
--cc=peterz@infradead.org \
--cc=ruanjinjie@huawei.com \
--cc=ryan.roberts@arm.com \
--cc=shuah@kernel.org \
--cc=song@kernel.org \
--cc=wad@chromium.org \
--cc=will@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