From: "Christophe Leroy (CS GROUP)" <chleroy@kernel.org>
To: FUJITA Tomonori <tomo@flapping.org>, linkmauve@linkmauve.fr
Cc: maddy@linux.ibm.com, mpe@ellerman.id.au, npiggin@gmail.com,
peterz@infradead.org, jpoimboe@kernel.org, jbaron@akamai.com,
aliceryhl@google.com, rostedt@goodmis.org, ardb@kernel.org,
ojeda@kernel.org, boqun@kernel.org, gary@garyguo.net,
bjorn3_gh@protonmail.com, lossin@kernel.org,
a.hindborg@kernel.org, tmgross@umich.edu, dakr@kernel.org,
daniel.almeida@collabora.com, tamird@kernel.org,
acourbot@nvidia.com, work@onurozkan.dev, nathan@kernel.org,
ndesaulniers@google.com, morbo@google.com,
justinstitt@google.com, fujita.tomonori@gmail.com,
joelagnelf@nvidia.com, gregkh@linuxfoundation.org,
prafulrai522@gmail.com, nsc@kernel.org, japo@linux.ibm.com,
lina+kernel@asahilina.net, j@jannau.net, airlied@gmail.com,
linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
rust-for-linux@vger.kernel.org, llvm@lists.linux.dev,
mkchauras@gmail.com
Subject: Re: [PATCH V17 0/7] Rust Support for powerpc
Date: Wed, 5 Aug 2026 14:56:41 +0200 [thread overview]
Message-ID: <d347de18-10ee-41e9-a672-b08f70bc88e4@kernel.org> (raw)
In-Reply-To: <20260804.224035.269658578200153488.tomo@flapping.org>
Le 04/08/2026 à 15:40, FUJITA Tomonori a écrit :
> [Vous ne recevez pas souvent de courriers de tomo@flapping.org. D?couvrez pourquoi ceci est important ? https://aka.ms/LearnAboutSenderIdentification ]
>
> On Tue, 4 Aug 2026 12:11:57 +0200
> Link Mauve <linkmauve@linkmauve.fr> wrote:
>
>> Hi,
>>
>> On Mon, Aug 03, 2026 at 12:27:13PM +0530, Madhavan Srinivasan wrote:
>>> On Wed, 08 Jul 2026 13:54:47 +0530, Mukesh Kumar Chaurasiya (IBM) wrote:
>>>> Enable experimental rust support for ppc64le and ppc32be. The patch for
>>>> ppc32 has been provided by Link Mauve[1] and ppc64le support[2] has been
>>>> merged over it. ppc32 needs some toolchain fixes mentioned in the patch
>>>> `rust: Add PowerPC support` and the discussion for that is done here[1].
>>>>
>>>> This has been tested on
>>>> - powernv9 hardware
>>>> - pseries P11 hardware
>>>> - pseries(9, 10) qemu
>>>> - powernv(9, 10) qemu
>>>> - rustdoc on x86 and powerpc64le
>>>> - rusttest on x86 and powerpc64le
>>>>
>>>> [...]
>>>
>>> Applied to powerpc/next.
>>>
>>> [1/7] rust: Fix "multiple candidates for rmeta dependency core" error
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2F00cdfd072c709c608606461d7d44d4613119bfa9&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617198585%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=4qQe1qS37TGv6%2Bf9H56kWVqMYSAHsWiDx5oz8WHZ8%2Bg%3D&reserved=0
>>> [2/7] dma-resv: Fix undefined symbol when CONFIG_DMA_SHARED_BUFFER is disabled
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2Fbe809b60cbb61aab96179f44ac3670242ae72996&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617235654%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=cw2l64D3ah%2FM3pxFmvMpUnNmcqcSvN3RFoDiYAIR76g%3D&reserved=0
>>> [3/7] powerpc/jump_label: adjust inline asm to be consistent
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2F13244c0a40139fe66c4c5c5655f4d732a6002957&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617259593%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=xNvcH9k5RA5ktJupn90VdDuwx4YBvezuDcapqKlYfjs%3D&reserved=0
>>> [4/7] rust/powerpc: Set min rustc version for powerpc
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2Fe299147cdc8e19c6421a6b7863dc82a35b09d967&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617280683%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=uNZA7AulROQGv%2B2l4M%2FqC5W4ncWktRoSRRp8eaF%2FcCY%3D&reserved=0
>>> [5/7] rust: Make __udivdi3() and __umoddi3() panic
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2Fc93c194e4ee71a734986fd99a8b1ec9fbb7a9b8b&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617303292%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=znZPWXM7k5FpRlekIyUN1bHzmMyk1YESR56WsiwBuMA%3D&reserved=0
>>> [6/7] rust: Add PowerPC support
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2F73b741adb264967093ef4eb59905618a7e0d0de0&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617326590%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=aFHGhd7RX%2Ft5%2BMjqt6pBmIKPKAKmFEQndKP1F%2F8HSxk%3D&reserved=0
>>> [7/7] powerpc: Enable Rust for ppc64le
>>> https://eur01.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgit.kernel.org%2Fpowerpc%2Fc%2Fbc87cbdb952e9223616b839d64bdb4723aa2ed1d&data=05%7C02%7Cchristophe.leroy%40csgroup.eu%7C34e4deafcc1d41c1738a08def22e01b0%7C8b87af7d86474dc78df45f69a2011bb5%7C0%7C0%7C639214476617346994%7CUnknown%7CTWFpbGZsb3d8eyJFbXB0eU1hcGkiOnRydWUsIlYiOiIwLjAuMDAwMCIsIlAiOiJXaW4zMiIsIkFOIjoiTWFpbCIsIldUIjoyfQ%3D%3D%7C0%7C%7C%7C&sdata=ITEFv9C1CSUVLqJNe5Y8sStUE3KoOVYVzSzbP0qis74%3D&reserved=0
>>>
>>> cheers
>>>
>>
>> I just tested those again in linux-next, with the Wii support series on
>> top, but now the kernel fails to build due to ARCH_WARN_ASM and
>> ARCH_WARN_REACHABLE not being defined on PowerPC:
>> ```
>> error: no rules expected `ARCH_WARN_ASM`
>> --> /home/linkmauve/dev/linux/wii/rust/kernel/generated_arch_warn_asm.rs:1:28
>> |
>> 1 | ::kernel::concat_literals!(ARCH_WARN_ASM("{file}", "{line}", "{flags}", "{size}"))
>> | ^^^^^^^^^^^^^ no rules expected this token in macro call
>> |
>> ::: ../rust/kernel/lib.rs:279:1
>> |
>> 279 | macro_rules! concat_literals {
>> | ---------------------------- when calling this macro
>> |
>> = note: while trying to match sequence start
>>
>> error: no rules expected `ARCH_WARN_REACHABLE`
>> --> /home/linkmauve/dev/linux/wii/rust/kernel/generated_arch_reachable_asm.rs:1:28
>> |
>> 1 | ::kernel::concat_literals!(ARCH_WARN_REACHABLE)
>> | ^^^^^^^^^^^^^^^^^^^ no rules expected this token in macro call
>> |
>> ::: ../rust/kernel/lib.rs:279:1
>> |
>> 279 | macro_rules! concat_literals {
>> | ---------------------------- when calling this macro
>> |
>> = note: while trying to match sequence start
>>
>> error: aborting due to 2 previous errors
>> ```
>>
>> This is in addition to the bindings::kvfree_call_rcu() call, but that
>> one is already being handled in a different thread.
>
> Looks like powerpc needs something like the followings:
>
> diff --git a/arch/powerpc/include/asm/bug.h b/arch/powerpc/include/asm/bug.h
> index 0db48977c70c..8aba39e0cf26 100644
> --- a/arch/powerpc/include/asm/bug.h
> +++ b/arch/powerpc/include/asm/bug.h
> @@ -32,34 +32,38 @@
> #endif /* verbose */
>
> #else /* !__ASSEMBLER__ */
> -/* _EMIT_BUG_ENTRY expects args %0,%1,%2,%3 to be FILE, LINE, flags and
> - sizeof(struct bug_entry), respectively */
> #ifdef CONFIG_DEBUG_BUGVERBOSE
> -#define _EMIT_BUG_ENTRY \
> +#define _EMIT_BUG_ENTRY(file, line, flags) \
> ".section __bug_table,\"aw\"\n" \
> "2: .4byte 1b - .\n" \
> - " .4byte %0 - .\n" \
> - " .short %1, %2\n" \
> - ".org 2b+%3\n" \
> - ".previous\n"
> + " .4byte " file " - .\n" \
> + " .short " line ", " flags "\n"
> #else
> -#define _EMIT_BUG_ENTRY \
> +#define _EMIT_BUG_ENTRY(file, line, flags) \
> ".section __bug_table,\"aw\"\n" \
> "2: .4byte 1b - .\n" \
> - " .short %2\n" \
> - ".org 2b+%3\n" \
> - ".previous\n"
> + " .short " flags "\n"
> #endif
>
> #define BUG_ENTRY(cond_str, insn, flags, ...) \
> __asm__ __volatile__( \
> "1: " insn "\n" \
> - _EMIT_BUG_ENTRY \
> + _EMIT_BUG_ENTRY("%0", "%1", "%2") \
> + ".org 2b+%3\n" \
> + ".previous\n" \
> : : "i" (WARN_CONDITION_STR(cond_str) __FILE__), "i" (__LINE__), \
> "i" (flags), \
> "i" (sizeof(struct bug_entry)), \
> ##__VA_ARGS__)
>
> +#define ARCH_WARN_ASM(file, line, flags, size) \
> + "1: twi 31, 0, 0\n" \
> + _EMIT_BUG_ENTRY(file, line, flags) \
> + ".org 2b+" size "\n" \
> + ".previous\n"
Will this build ? Isn't ARCH_WARN_ASM() for use in ASM .S files ?
_EMIT_BUG_ENTRY is defined in a !__ASSEMBLER__ ifdef.
powerpc already has EMIT_BUG_ENTRY macro for ASM for that. Why do you
need to modify _EMIT_BUG_ENTRY and BUG_ENTRY() which are for C only (in
a #ifdef !__ASSEMBLER__) ?
https://elixir.bootlin.com/linux/v7.2-rc5/source/arch/powerpc/include/asm/bug.h#L10
Christophe
next prev parent reply other threads:[~2026-08-05 12:57 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-08 8:24 [PATCH V17 0/7] Rust Support for powerpc Mukesh Kumar Chaurasiya (IBM)
2026-07-08 8:24 ` [PATCH V17 1/7] rust: Fix "multiple candidates for rmeta dependency core" error Mukesh Kumar Chaurasiya (IBM)
2026-07-08 8:24 ` [PATCH V17 2/7] dma-resv: Fix undefined symbol when CONFIG_DMA_SHARED_BUFFER is disabled Mukesh Kumar Chaurasiya (IBM)
2026-07-11 12:56 ` Miguel Ojeda
2026-07-08 8:24 ` [PATCH V17 3/7] powerpc/jump_label: adjust inline asm to be consistent Mukesh Kumar Chaurasiya (IBM)
2026-07-08 8:24 ` [PATCH V17 4/7] rust/powerpc: Set min rustc version for powerpc Mukesh Kumar Chaurasiya (IBM)
2026-07-08 8:39 ` Link Mauve
2026-07-08 15:09 ` Mukesh Kumar Chaurasiya
2026-07-08 8:24 ` [PATCH V17 5/7] rust: Make __udivdi3() and __umoddi3() panic Mukesh Kumar Chaurasiya (IBM)
2026-07-08 8:24 ` [PATCH V17 6/7] rust: Add PowerPC support Mukesh Kumar Chaurasiya (IBM)
2026-07-08 8:24 ` [PATCH V17 7/7] powerpc: Enable Rust for ppc64le Mukesh Kumar Chaurasiya (IBM)
2026-08-03 6:57 ` [PATCH V17 0/7] Rust Support for powerpc Madhavan Srinivasan
2026-08-04 10:11 ` Link Mauve
2026-08-04 13:40 ` FUJITA Tomonori
2026-08-05 12:29 ` Mukesh Kumar Chaurasiya
2026-08-05 12:56 ` Christophe Leroy (CS GROUP) [this message]
2026-08-06 7:53 ` FUJITA Tomonori
2026-08-04 20:22 ` Nathan Chancellor
2026-08-04 20:39 ` Link Mauve
2026-08-05 12:10 ` Mukesh Kumar Chaurasiya
2026-08-05 12:20 ` Mukesh Kumar Chaurasiya
2026-08-05 12:21 ` Link Mauve
2026-08-05 12:26 ` Mukesh Kumar Chaurasiya
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=d347de18-10ee-41e9-a672-b08f70bc88e4@kernel.org \
--to=chleroy@kernel.org \
--cc=a.hindborg@kernel.org \
--cc=acourbot@nvidia.com \
--cc=airlied@gmail.com \
--cc=aliceryhl@google.com \
--cc=ardb@kernel.org \
--cc=bjorn3_gh@protonmail.com \
--cc=boqun@kernel.org \
--cc=dakr@kernel.org \
--cc=daniel.almeida@collabora.com \
--cc=fujita.tomonori@gmail.com \
--cc=gary@garyguo.net \
--cc=gregkh@linuxfoundation.org \
--cc=j@jannau.net \
--cc=japo@linux.ibm.com \
--cc=jbaron@akamai.com \
--cc=joelagnelf@nvidia.com \
--cc=jpoimboe@kernel.org \
--cc=justinstitt@google.com \
--cc=lina+kernel@asahilina.net \
--cc=linkmauve@linkmauve.fr \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=llvm@lists.linux.dev \
--cc=lossin@kernel.org \
--cc=maddy@linux.ibm.com \
--cc=mkchauras@gmail.com \
--cc=morbo@google.com \
--cc=mpe@ellerman.id.au \
--cc=nathan@kernel.org \
--cc=ndesaulniers@google.com \
--cc=npiggin@gmail.com \
--cc=nsc@kernel.org \
--cc=ojeda@kernel.org \
--cc=peterz@infradead.org \
--cc=prafulrai522@gmail.com \
--cc=rostedt@goodmis.org \
--cc=rust-for-linux@vger.kernel.org \
--cc=tamird@kernel.org \
--cc=tmgross@umich.edu \
--cc=tomo@flapping.org \
--cc=work@onurozkan.dev \
/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.