From: Thomas Gleixner <tglx@linutronix.de>
To: Peter Zijlstra <peterz@infradead.org>
Cc: LKML <linux-kernel@vger.kernel.org>,
Michael Jeanson <mjeanson@efficios.com>,
Mathieu Desnoyers <mathieu.desnoyers@efficios.com>,
"Paul E. McKenney" <paulmck@kernel.org>,
Boqun Feng <boqun.feng@gmail.com>, Wei Liu <wei.liu@kernel.org>,
Jens Axboe <axboe@kernel.dk>
Subject: Re: [patch 10/11] rseq: Skip fixup when returning from a syscall
Date: Thu, 14 Aug 2025 15:24:41 +0200 [thread overview]
Message-ID: <874iua6nom.ffs@tglx> (raw)
In-Reply-To: <20250814085426.GS4067720@noisy.programming.kicks-ass.net>
On Thu, Aug 14 2025 at 10:54, Peter Zijlstra wrote:
> On Wed, Aug 13, 2025 at 06:29:37PM +0200, Thomas Gleixner wrote:
>
>> --- a/kernel/rseq.c
>> +++ b/kernel/rseq.c
>> @@ -408,6 +408,22 @@ static int rseq_ip_fixup(struct pt_regs
>> return 0;
>> }
>>
>> +static inline bool rseq_ignore_event(bool from_irq, bool ksig)
>> +{
>> + /*
>> + * On architectures which do not select_GENERIC_ENTRY
>> + * @from_irq is not usable.
>> + */
>> + if (IS_ENABLED(CONFIG_DEBUG_RSEQ) || !IS_ENABLED(CONFIG_GENERIC_ENTRY))
>> + return false;
>> +
>> + /*
>> + * Avoid the heavy lifting when this is a return from syscall,
>> + * i.e. not from interrupt and not from signal delivery.
>> + */
>> + return !from_irq && !ksig;
>> +}
>> +
>> /*
>> * This resume handler must always be executed between any of:
>> * - preemption,
>
>> @@ -467,6 +484,9 @@ void __rseq_handle_notify_resume(struct
>> t->rseq_event_pending = false;
>> }
>>
>> + if (rseq_ignore_event(from_irq, !!ksig))
>> + event = false;
>> +
>> if (IS_ENABLED(CONFIG_DEBUG_RSEQ) || event) {
>> ret = rseq_ip_fixup(regs, event);
>> if (unlikely(ret < 0))
>>
>
> You now have a double check for CONFIG_DEBUG_RSEQ.
>
> Since the value of @event is immaterial when DEBUG_RSEQ, might as well
> remove it from rseq_ignore_event(), right?
Not really. debug wants the event preserved even if it's !from_irq
Yes, it's not pretty, but I wanted to preserve the debug behaviour as
much as it goes.
next prev parent reply other threads:[~2025-08-14 13:24 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-13 16:29 [patch 00/11] rseq: Optimize exit to user space Thomas Gleixner
2025-08-13 16:29 ` [patch 01/11] rseq: Avoid pointless evaluation in __rseq_notify_resume() Thomas Gleixner
2025-08-20 14:23 ` Mathieu Desnoyers
2025-08-13 16:29 ` [patch 02/11] rseq: Condense the inline stubs Thomas Gleixner
2025-08-20 14:24 ` Mathieu Desnoyers
2025-08-13 16:29 ` [patch 03/11] rseq: Rename rseq_syscall() to rseq_debug_syscall_exit() Thomas Gleixner
2025-08-20 14:25 ` Mathieu Desnoyers
2025-08-13 16:29 ` [patch 04/11] rseq: Replace the pointless event mask bit fiddling Thomas Gleixner
2025-08-13 16:29 ` [patch 05/11] rseq: Optimize the signal delivery path Thomas Gleixner
2025-08-13 16:29 ` [patch 06/11] rseq: Optimize exit to user space further Thomas Gleixner
2025-08-13 16:29 ` [patch 07/11] entry: Cleanup header Thomas Gleixner
2025-08-13 17:09 ` Giorgi Tchankvetadze
2025-08-13 21:30 ` Thomas Gleixner
2025-08-13 16:29 ` [patch 08/11] entry: Distinguish between syscall and interrupt exit Thomas Gleixner
2025-08-13 16:29 ` [patch 09/11] entry: Provide exit_to_user_notify_resume() Thomas Gleixner
2025-08-13 16:29 ` [patch 10/11] rseq: Skip fixup when returning from a syscall Thomas Gleixner
2025-08-14 8:54 ` Peter Zijlstra
2025-08-14 13:24 ` Thomas Gleixner [this message]
2025-08-13 16:29 ` [patch 11/11] rseq: Convert to masked user access where applicable Thomas Gleixner
2025-08-13 17:45 ` [patch 00/11] rseq: Optimize exit to user space Jens Axboe
2025-08-13 21:32 ` Thomas Gleixner
2025-08-13 21:36 ` Jens Axboe
2025-08-13 22:08 ` Thomas Gleixner
2025-08-17 21:23 ` Thomas Gleixner
2025-08-18 14:00 ` BUG: rseq selftests and librseq vs. glibc fail Thomas Gleixner
2025-08-18 14:15 ` Florian Weimer
2025-08-18 17:13 ` Thomas Gleixner
2025-08-18 19:33 ` Florian Weimer
2025-08-18 19:46 ` Sean Christopherson
2025-08-18 19:55 ` Florian Weimer
2025-08-18 20:27 ` Sean Christopherson
2025-08-18 23:54 ` Thomas Gleixner
2025-08-19 0:28 ` Sean Christopherson
2025-08-19 6:18 ` Florian Weimer
2025-08-29 18:44 ` Prakash Sangappa
2025-08-29 18:50 ` Mathieu Desnoyers
2025-09-01 19:30 ` Prakash Sangappa
2025-08-18 17:38 ` [patch 00/11] rseq: Optimize exit to user space Michael Jeanson
2025-08-18 20:21 ` Thomas Gleixner
2025-08-18 21:29 ` Michael Jeanson
2025-08-18 23:43 ` Thomas Gleixner
2025-08-20 14:27 ` Mathieu Desnoyers
2025-08-20 14:10 ` Mathieu Desnoyers
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=874iua6nom.ffs@tglx \
--to=tglx@linutronix.de \
--cc=axboe@kernel.dk \
--cc=boqun.feng@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.desnoyers@efficios.com \
--cc=mjeanson@efficios.com \
--cc=paulmck@kernel.org \
--cc=peterz@infradead.org \
--cc=wei.liu@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 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.