From: Heiko Carstens <hca@linux.ibm.com>
To: Lyude Paul <lyude@redhat.com>
Cc: rust-for-linux@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Boqun Feng <boqun.feng@gmail.com>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will@kernel.org>, Vasily Gorbik <gor@linux.ibm.com>,
Alexander Gordeev <agordeev@linux.ibm.com>,
Christian Borntraeger <borntraeger@linux.ibm.com>,
Sven Schnelle <svens@linux.ibm.com>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<x86@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
Arnd Bergmann <arnd@arndb.de>,
Juergen Christ <jchrist@linux.ibm.com>,
Ilya Leoshkevich <iii@linux.ibm.com>,
"moderated list:ARM64 PORT (AARCH64 ARCHITECTURE)"
<linux-arm-kernel@lists.infradead.org>,
open list <linux-kernel@vger.kernel.org>,
"open list:S390 ARCHITECTURE" <linux-s390@vger.kernel.org>,
"open list:GENERIC INCLUDE/ASM HEADER FILES"
<linux-arch@vger.kernel.org>
Subject: Re: [PATCH v9 2/9] preempt: Introduce __preempt_count_{sub, add}_return()
Date: Fri, 28 Feb 2025 10:15:09 +0100 [thread overview]
Message-ID: <20250228091509.8985B18-hca@linux.ibm.com> (raw)
In-Reply-To: <20250227221924.265259-3-lyude@redhat.com>
On Thu, Feb 27, 2025 at 05:10:13PM -0500, Lyude Paul wrote:
> From: Boqun Feng <boqun.feng@gmail.com>
>
> Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
> Signed-off-by: Lyude Paul <lyude@redhat.com>
> ---
> arch/arm64/include/asm/preempt.h | 18 ++++++++++++++++++
> arch/s390/include/asm/preempt.h | 19 +++++++++++++++++++
> arch/x86/include/asm/preempt.h | 10 ++++++++++
> include/asm-generic/preempt.h | 14 ++++++++++++++
> 4 files changed, 61 insertions(+)
...
> diff --git a/arch/s390/include/asm/preempt.h b/arch/s390/include/asm/preempt.h
> index 6ccd033acfe52..67a6e265e9fff 100644
> --- a/arch/s390/include/asm/preempt.h
> +++ b/arch/s390/include/asm/preempt.h
> @@ -98,6 +98,25 @@ static __always_inline bool should_resched(int preempt_offset)
> return unlikely(READ_ONCE(get_lowcore()->preempt_count) == preempt_offset);
> }
>
> +static __always_inline int __preempt_count_add_return(int val)
> +{
> + /*
> + * With some obscure config options and CONFIG_PROFILE_ALL_BRANCHES
> + * enabled, gcc 12 fails to handle __builtin_constant_p().
> + */
> + if (!IS_ENABLED(CONFIG_PROFILE_ALL_BRANCHES)) {
> + if (__builtin_constant_p(val) && (val >= -128) && (val <= 127)) {
> + return val + __atomic_add_const(val, &get_lowcore()->preempt_count);
> + }
> + }
> + return val + __atomic_add(val, &get_lowcore()->preempt_count);
> +}
This should just be
static __always_inline int __preempt_count_add_return(int val)
{
return val + __atomic_add(val, &get_lowcore()->preempt_count);
}
since __atomic_add_const() won't return the original value.
Well.. at least it should not, but the way it is currently implemented it
indeed does sometimes depending on config options - there is room for
improvement. That's my fault - going to address that.
I couldn't find any cover letter for the whole patch series which describes
what this is about, and why it is needed.
It looks like some Rust enablement?
next prev parent reply other threads:[~2025-02-28 9:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20250227221924.265259-1-lyude@redhat.com>
2025-02-27 22:10 ` [PATCH v9 2/9] preempt: Introduce __preempt_count_{sub, add}_return() Lyude Paul
2025-02-28 1:49 ` Boqun Feng
2025-02-28 9:15 ` Heiko Carstens [this message]
2025-02-28 9:24 ` Peter Zijlstra
2025-04-30 21:38 ` Lyude Paul
2025-05-05 9:56 ` Heiko Carstens
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=20250228091509.8985B18-hca@linux.ibm.com \
--to=hca@linux.ibm.com \
--cc=agordeev@linux.ibm.com \
--cc=arnd@arndb.de \
--cc=boqun.feng@gmail.com \
--cc=borntraeger@linux.ibm.com \
--cc=bp@alien8.de \
--cc=catalin.marinas@arm.com \
--cc=dave.hansen@linux.intel.com \
--cc=gor@linux.ibm.com \
--cc=hpa@zytor.com \
--cc=iii@linux.ibm.com \
--cc=jchrist@linux.ibm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=lyude@redhat.com \
--cc=mingo@redhat.com \
--cc=rust-for-linux@vger.kernel.org \
--cc=svens@linux.ibm.com \
--cc=tglx@linutronix.de \
--cc=will@kernel.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;
as well as URLs for NNTP newsgroup(s).