public inbox for rust-for-linux@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH V3 0/3] Rust support for powerpc
@ 2026-02-05 18:04 Mukesh Kumar Chaurasiya (IBM)
  2026-02-05 18:04 ` [PATCH V3 1/3] powerpc/jump_label: adjust inline asm to be consistent Mukesh Kumar Chaurasiya (IBM)
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Mukesh Kumar Chaurasiya (IBM) @ 2026-02-05 18:04 UTC (permalink / raw)
  To: linkmauve, ojeda, boqun.feng, gary, bjorn3_gh, lossin, a.hindborg,
	aliceryhl, tmgross, dakr, corbet, maddy, mpe, npiggin, chleroy,
	peterz, jpoimboe, jbaron, rostedt, ardb, rust-for-linux,
	linux-doc, linux-kernel, linuxppc-dev
  Cc: Mukesh Kumar Chaurasiya (IBM)

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 and power10 pseries qemu. I
I request Link to test the ppc32 part as i don't have a hardware to test
it out. 

[1] https://lore.kernel.org/all/20260204030507.8203-1-linkmauve@linkmauve.fr
[2] https://lore.kernel.org/all/20260204042417.83903-1-mkchauras@gmail.com

Changelog:
V2 -> V3:
- Splited HAVE_RUST in 2 lines
- BINDGEN_TARGET_powerpc initialized before assigning the same to
  BINDGEN_TARGET
V2: https://lore.kernel.org/all/20260204210125.613350-1-mkchauras@gmail.com

V1 -> V2:
- jump label fix for rust has been moved to a separate patch
- PPC32 support has been taken
- rust support has been marked experimental
- target.json dependency has been removed
- HAVE_RUST now depends on CPU_LITTLE_ENDIAN for PPC64

Link Mauve (1):
  rust: Add PowerPC support

Mukesh Kumar Chaurasiya (IBM) (2):
  powerpc/jump_label: adjust inline asm to be consistent
  powerpc: Enable Rust for ppc64le

 Documentation/rust/arch-support.rst   |  1 +
 arch/powerpc/Kconfig                  |  2 ++
 arch/powerpc/Makefile                 |  9 +++++++++
 arch/powerpc/include/asm/jump_label.h | 23 +++++++++++++----------
 rust/Makefile                         | 12 +++++++++++-
 5 files changed, 36 insertions(+), 11 deletions(-)

-- 
2.52.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH V3 1/3] powerpc/jump_label: adjust inline asm to be consistent
  2026-02-05 18:04 [PATCH V3 0/3] Rust support for powerpc Mukesh Kumar Chaurasiya (IBM)
@ 2026-02-05 18:04 ` Mukesh Kumar Chaurasiya (IBM)
  2026-02-05 18:04 ` [PATCH V3 2/3] rust: Add PowerPC support Mukesh Kumar Chaurasiya (IBM)
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Mukesh Kumar Chaurasiya (IBM) @ 2026-02-05 18:04 UTC (permalink / raw)
  To: linkmauve, ojeda, boqun.feng, gary, bjorn3_gh, lossin, a.hindborg,
	aliceryhl, tmgross, dakr, corbet, maddy, mpe, npiggin, chleroy,
	peterz, jpoimboe, jbaron, rostedt, ardb, rust-for-linux,
	linux-doc, linux-kernel, linuxppc-dev
  Cc: Mukesh Kumar Chaurasiya (IBM)

Added support for a new macro ARCH_STATIC_BRANCH_ASM in powerpc
to avoid duplication of inline asm between C and Rust. This is
inline with commit aecaf181651c '("jump_label: adjust inline asm to be consistent")'

Signed-off-by: Madhavan Srinivasan <maddy@linux.ibm.com>
Reviewed-by: Alice Ryhl <aliceryhl@google.com>
Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>
---
 arch/powerpc/include/asm/jump_label.h | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/arch/powerpc/include/asm/jump_label.h b/arch/powerpc/include/asm/jump_label.h
index d4eaba459a0e..a6b211502bfe 100644
--- a/arch/powerpc/include/asm/jump_label.h
+++ b/arch/powerpc/include/asm/jump_label.h
@@ -15,14 +15,20 @@
 #define JUMP_ENTRY_TYPE		stringify_in_c(FTR_ENTRY_LONG)
 #define JUMP_LABEL_NOP_SIZE	4
 
+#define JUMP_TABLE_ENTRY(key, label)			\
+	".pushsection __jump_table,  \"aw\"	\n\t"	\
+	".long 1b - ., " label " - .		\n\t"	\
+	JUMP_ENTRY_TYPE key " - .		\n\t"	\
+	".popsection 				\n\t"
+
+#define ARCH_STATIC_BRANCH_ASM(key, label)		\
+	"1:	nop				\n\t"	\
+	JUMP_TABLE_ENTRY(key,label)
+
 static __always_inline bool arch_static_branch(struct static_key *key, bool branch)
 {
-	asm goto("1:\n\t"
-		 "nop # arch_static_branch\n\t"
-		 ".pushsection __jump_table,  \"aw\"\n\t"
-		 ".long 1b - ., %l[l_yes] - .\n\t"
-		 JUMP_ENTRY_TYPE "%c0 - .\n\t"
-		 ".popsection \n\t"
+	asm goto(
+		 ARCH_STATIC_BRANCH_ASM("%c0", "%l[l_yes]")
 		 : :  "i" (&((char *)key)[branch]) : : l_yes);
 
 	return false;
@@ -34,10 +40,7 @@ static __always_inline bool arch_static_branch_jump(struct static_key *key, bool
 {
 	asm goto("1:\n\t"
 		 "b %l[l_yes] # arch_static_branch_jump\n\t"
-		 ".pushsection __jump_table,  \"aw\"\n\t"
-		 ".long 1b - ., %l[l_yes] - .\n\t"
-		 JUMP_ENTRY_TYPE "%c0 - .\n\t"
-		 ".popsection \n\t"
+		 JUMP_TABLE_ENTRY("%c0", "%l[l_yes]")
 		 : :  "i" (&((char *)key)[branch]) : : l_yes);
 
 	return false;
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH V3 2/3] rust: Add PowerPC support
  2026-02-05 18:04 [PATCH V3 0/3] Rust support for powerpc Mukesh Kumar Chaurasiya (IBM)
  2026-02-05 18:04 ` [PATCH V3 1/3] powerpc/jump_label: adjust inline asm to be consistent Mukesh Kumar Chaurasiya (IBM)
@ 2026-02-05 18:04 ` Mukesh Kumar Chaurasiya (IBM)
  2026-02-05 18:04 ` [PATCH V3 3/3] powerpc: Enable Rust for ppc64le Mukesh Kumar Chaurasiya (IBM)
  2026-02-06 16:55 ` [PATCH V3 0/3] Rust support for powerpc Venkat
  3 siblings, 0 replies; 5+ messages in thread
From: Mukesh Kumar Chaurasiya (IBM) @ 2026-02-05 18:04 UTC (permalink / raw)
  To: linkmauve, ojeda, boqun.feng, gary, bjorn3_gh, lossin, a.hindborg,
	aliceryhl, tmgross, dakr, corbet, maddy, mpe, npiggin, chleroy,
	peterz, jpoimboe, jbaron, rostedt, ardb, rust-for-linux,
	linux-doc, linux-kernel, linuxppc-dev
  Cc: Mukesh Kumar Chaurasiya (IBM)

From: Link Mauve <linkmauve@linkmauve.fr>

For now only Big Endian 32-bit PowerPC is supported, as that is the only
hardware I have.  This has been tested on the Nintendo Wii so far, but I
plan on also using it on the GameCube, Wii U and Apple G4.

These changes aren’t the only ones required to get the kernel to compile
and link on PowerPC, libcore will also have to be changed to not use
integer division to format u64, u128 and core::time::Duration, otherwise
__udivdi3() and __umoddi3() will have to be added.  I have tested this
change by replacing the three implementations with unimplemented!() and
it linked just fine.

Signed-off-by: Link Mauve <linkmauve@linkmauve.fr>
Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>
---
 Documentation/rust/arch-support.rst | 1 +
 arch/powerpc/Kconfig                | 1 +
 arch/powerpc/Makefile               | 2 ++
 rust/Makefile                       | 4 +++-
 4 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/Documentation/rust/arch-support.rst b/Documentation/rust/arch-support.rst
index 6e6a515d0899..e26a94808e97 100644
--- a/Documentation/rust/arch-support.rst
+++ b/Documentation/rust/arch-support.rst
@@ -18,6 +18,7 @@ Architecture   Level of support  Constraints
 ``arm``        Maintained        ARMv7 Little Endian only.
 ``arm64``      Maintained        Little Endian only.
 ``loongarch``  Maintained        \-
+``powerpc``    Experimental      32-bit Big Endian only.
 ``riscv``      Maintained        ``riscv64`` and LLVM/Clang only.
 ``um``         Maintained        \-
 ``x86``        Maintained        ``x86_64`` only.
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 9537a61ebae0..17db23b82e91 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -283,6 +283,7 @@ config PPC
 	select HAVE_REGS_AND_STACK_ACCESS_API
 	select HAVE_RELIABLE_STACKTRACE
 	select HAVE_RSEQ
+	select HAVE_RUST			if PPC32
 	select HAVE_SAMPLE_FTRACE_DIRECT	if HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 	select HAVE_SAMPLE_FTRACE_DIRECT_MULTI	if HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 	select HAVE_SETUP_PER_CPU_AREA		if PPC64
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index a58b1029592c..9fd82c75dcbd 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -61,6 +61,8 @@ else
 KBUILD_LDFLAGS_MODULE += $(objtree)/arch/powerpc/lib/crtsavres.o
 endif
 
+KBUILD_RUSTFLAGS += --target=powerpc-unknown-linux-gnu
+
 ifdef CONFIG_CPU_LITTLE_ENDIAN
 KBUILD_CPPFLAGS	+= -mlittle-endian
 KBUILD_LDFLAGS	+= -EL
diff --git a/rust/Makefile b/rust/Makefile
index 4dcc2eff51cb..ae22f2c5f0b3 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -384,13 +384,15 @@ bindgen_skip_c_flags := -mno-fp-ret-in-387 -mpreferred-stack-boundary=% \
 	-fstrict-flex-arrays=% -fmin-function-alignment=% \
 	-fzero-init-padding-bits=% -mno-fdpic \
 	-fdiagnostics-show-context -fdiagnostics-show-context=% \
-	--param=% --param asan-% -fno-isolate-erroneous-paths-dereference
+	--param=% --param asan-% -fno-isolate-erroneous-paths-dereference \
+	-ffixed-r2 -mmultiple -mno-readonly-in-sdata
 
 # Derived from `scripts/Makefile.clang`.
 BINDGEN_TARGET_x86	:= x86_64-linux-gnu
 BINDGEN_TARGET_arm64	:= aarch64-linux-gnu
 BINDGEN_TARGET_arm	:= arm-linux-gnueabi
 BINDGEN_TARGET_loongarch	:= loongarch64-linux-gnusf
+BINDGEN_TARGET_powerpc	:= powerpc-linux-gnu
 BINDGEN_TARGET_um	:= $(BINDGEN_TARGET_$(SUBARCH))
 BINDGEN_TARGET		:= $(BINDGEN_TARGET_$(SRCARCH))
 
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* [PATCH V3 3/3] powerpc: Enable Rust for ppc64le
  2026-02-05 18:04 [PATCH V3 0/3] Rust support for powerpc Mukesh Kumar Chaurasiya (IBM)
  2026-02-05 18:04 ` [PATCH V3 1/3] powerpc/jump_label: adjust inline asm to be consistent Mukesh Kumar Chaurasiya (IBM)
  2026-02-05 18:04 ` [PATCH V3 2/3] rust: Add PowerPC support Mukesh Kumar Chaurasiya (IBM)
@ 2026-02-05 18:04 ` Mukesh Kumar Chaurasiya (IBM)
  2026-02-06 16:55 ` [PATCH V3 0/3] Rust support for powerpc Venkat
  3 siblings, 0 replies; 5+ messages in thread
From: Mukesh Kumar Chaurasiya (IBM) @ 2026-02-05 18:04 UTC (permalink / raw)
  To: linkmauve, ojeda, boqun.feng, gary, bjorn3_gh, lossin, a.hindborg,
	aliceryhl, tmgross, dakr, corbet, maddy, mpe, npiggin, chleroy,
	peterz, jpoimboe, jbaron, rostedt, ardb, rust-for-linux,
	linux-doc, linux-kernel, linuxppc-dev
  Cc: Mukesh Kumar Chaurasiya (IBM)

Enabling rust support for ppc64le only.

Tested on powernv9:

$ uname -rm
6.19.0-rc8+ ppc64le

$ sudo modprobe rust_minimal
[  632.890850] rust_minimal: Rust minimal sample (init)
[  632.890881] rust_minimal: Am I built-in? false
[  632.890898] rust_minimal: test_parameter: 1

$ sudo rmmod rust_minimal
[  648.272832] rust_minimal: My numbers are [72, 108, 200]
[  648.272873] rust_minimal: Rust minimal sample (exit)

$ sudo modprobe rust_print
[  843.410391] rust_print: Rust printing macros sample (init)
[  843.410424] rust_print: Emergency message (level 0) without args
[  843.410451] rust_print: Alert message (level 1) without args
[  843.410477] rust_print: Critical message (level 2) without args
[  843.410503] rust_print: Error message (level 3) without args
[  843.410530] rust_print: Warning message (level 4) without args
[  843.410557] rust_print: Notice message (level 5) without args
[  843.410594] rust_print: Info message (level 6) without args
[  843.410617] rust_print: A line that is continued without args
[  843.410646] rust_print: Emergency message (level 0) with args
[  843.410675] rust_print: Alert message (level 1) with args
[  843.410691] rust_print: Critical message (level 2) with args
[  843.410727] rust_print: Error message (level 3) with args
[  843.410761] rust_print: Warning message (level 4) with args
[  843.410796] rust_print: Notice message (level 5) with args
[  843.410821] rust_print: Info message (level 6) with args
[  843.410854] rust_print: A line that is continued with args
[  843.410892] rust_print: 1
[  843.410895] rust_print: "hello, world"
[  843.410924] rust_print: [samples/rust/rust_print_main.rs:35:5] c = "hello, world"
[  843.410977] rust_print: Arc<dyn Display> says 42
[  843.410979] rust_print: Arc<dyn Display> says hello, world

$ sudo rmmod rust_print
[  843.411003] rust_print: "hello, world"
[  888.499935] rust_print: Rust printing macros sample (exit)

Reviewed-by: Link Mauve <linkmauve@linkmauve.fr>
Tested-by: Link Mauve <linkmauve@linkmauve.fr>
Reviewed-by: Christophe Leroy (CS GROUP) <chleroy@kernel.org>
Signed-off-by: Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com>
---
 Documentation/rust/arch-support.rst | 2 +-
 arch/powerpc/Kconfig                | 1 +
 arch/powerpc/Makefile               | 9 ++++++++-
 rust/Makefile                       | 8 ++++++++
 4 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/Documentation/rust/arch-support.rst b/Documentation/rust/arch-support.rst
index e26a94808e97..627471ac9238 100644
--- a/Documentation/rust/arch-support.rst
+++ b/Documentation/rust/arch-support.rst
@@ -18,7 +18,7 @@ Architecture   Level of support  Constraints
 ``arm``        Maintained        ARMv7 Little Endian only.
 ``arm64``      Maintained        Little Endian only.
 ``loongarch``  Maintained        \-
-``powerpc``    Experimental      32-bit Big Endian only.
+``powerpc``    Experimental      64-bit Little Endian. 32-bit Big Endian.
 ``riscv``      Maintained        ``riscv64`` and LLVM/Clang only.
 ``um``         Maintained        \-
 ``x86``        Maintained        ``x86_64`` only.
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 17db23b82e91..954af27e10c5 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -284,6 +284,7 @@ config PPC
 	select HAVE_RELIABLE_STACKTRACE
 	select HAVE_RSEQ
 	select HAVE_RUST			if PPC32
+	select HAVE_RUST			if PPC64 && CPU_LITTLE_ENDIAN
 	select HAVE_SAMPLE_FTRACE_DIRECT	if HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 	select HAVE_SAMPLE_FTRACE_DIRECT_MULTI	if HAVE_DYNAMIC_FTRACE_WITH_DIRECT_CALLS
 	select HAVE_SETUP_PER_CPU_AREA		if PPC64
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 9fd82c75dcbd..f93816ddc036 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -61,7 +61,14 @@ else
 KBUILD_LDFLAGS_MODULE += $(objtree)/arch/powerpc/lib/crtsavres.o
 endif
 
-KBUILD_RUSTFLAGS += --target=powerpc-unknown-linux-gnu
+ifdef CONFIG_PPC64
+ifdef CONFIG_CPU_LITTLE_ENDIAN
+KBUILD_RUSTFLAGS	+= --target=powerpc64le-unknown-linux-gnu
+endif
+KBUILD_RUSTFLAGS	+= -Ctarget-feature=-mma,-vsx,-hard-float,-altivec
+else
+KBUILD_RUSTFLAGS	+= --target=powerpc-unknown-linux-gnu
+endif
 
 ifdef CONFIG_CPU_LITTLE_ENDIAN
 KBUILD_CPPFLAGS	+= -mlittle-endian
diff --git a/rust/Makefile b/rust/Makefile
index ae22f2c5f0b3..14febe9c7643 100644
--- a/rust/Makefile
+++ b/rust/Makefile
@@ -392,7 +392,15 @@ BINDGEN_TARGET_x86	:= x86_64-linux-gnu
 BINDGEN_TARGET_arm64	:= aarch64-linux-gnu
 BINDGEN_TARGET_arm	:= arm-linux-gnueabi
 BINDGEN_TARGET_loongarch	:= loongarch64-linux-gnusf
+
+ifdef CONFIG_PPC64
+ifdef CONFIG_CPU_LITTLE_ENDIAN
+BINDGEN_TARGET_powerpc	:= powerpc64le-linux-gnu
+endif
+else
 BINDGEN_TARGET_powerpc	:= powerpc-linux-gnu
+endif
+
 BINDGEN_TARGET_um	:= $(BINDGEN_TARGET_$(SUBARCH))
 BINDGEN_TARGET		:= $(BINDGEN_TARGET_$(SRCARCH))
 
-- 
2.52.0


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH V3 0/3] Rust support for powerpc
  2026-02-05 18:04 [PATCH V3 0/3] Rust support for powerpc Mukesh Kumar Chaurasiya (IBM)
                   ` (2 preceding siblings ...)
  2026-02-05 18:04 ` [PATCH V3 3/3] powerpc: Enable Rust for ppc64le Mukesh Kumar Chaurasiya (IBM)
@ 2026-02-06 16:55 ` Venkat
  3 siblings, 0 replies; 5+ messages in thread
From: Venkat @ 2026-02-06 16:55 UTC (permalink / raw)
  To: Mukesh Kumar Chaurasiya (IBM)
  Cc: linkmauve, ojeda, boqun.feng, gary, bjorn3_gh, lossin, a.hindborg,
	aliceryhl, tmgross, dakr, corbet, maddy, mpe, npiggin, chleroy,
	peterz, jpoimboe, jbaron, rostedt, ardb, rust-for-linux,
	linux-doc, linux-kernel, linuxppc-dev



> On 5 Feb 2026, at 11:34 PM, Mukesh Kumar Chaurasiya (IBM) <mkchauras@gmail.com> 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 and power10 pseries qemu. I
> I request Link to test the ppc32 part as i don't have a hardware to test
> it out. 
> 
> [1] https://lore.kernel.org/all/20260204030507.8203-1-linkmauve@linkmauve.fr
> [2] https://lore.kernel.org/all/20260204042417.83903-1-mkchauras@gmail.com
> 
> Changelog:
> V2 -> V3:
> - Splited HAVE_RUST in 2 lines
> - BINDGEN_TARGET_powerpc initialized before assigning the same to
>  BINDGEN_TARGET
> V2: https://lore.kernel.org/all/20260204210125.613350-1-mkchauras@gmail.com
> 
> V1 -> V2:
> - jump label fix for rust has been moved to a separate patch
> - PPC32 support has been taken
> - rust support has been marked experimental
> - target.json dependency has been removed
> - HAVE_RUST now depends on CPU_LITTLE_ENDIAN for PPC64
> 
> Link Mauve (1):
>  rust: Add PowerPC support
> 
> Mukesh Kumar Chaurasiya (IBM) (2):
>  powerpc/jump_label: adjust inline asm to be consistent
>  powerpc: Enable Rust for ppc64le
> 
> Documentation/rust/arch-support.rst   |  1 +
> arch/powerpc/Kconfig                  |  2 ++
> arch/powerpc/Makefile                 |  9 +++++++++
> arch/powerpc/include/asm/jump_label.h | 23 +++++++++++++----------
> rust/Makefile                         | 12 +++++++++++-
> 5 files changed, 36 insertions(+), 11 deletions(-)
> 
> -- 
> 2.52.0
> 

Tested this patch set, by applying on mainline kernel. Attached is the .config file used.

Please add below tag.

Tested-by: Venkat Rao Bagalkote <venkat88@linux.ibm.com>

Logs:

rustc --version
rustc 1.95.0-nightly (e96bb7e44 2026-01-27)

llvm-18.1.8-3.el9.ppc64le

sudo insmod samples/rust/rust_minimal.ko
[   39.532119] rust_minimal: loading out-of-tree module taints kernel.
[   39.532132] rust_minimal: module verification failed: signature and/or required key missing - tainting kernel
[   39.532856] rust_minimal: Rust minimal sample (init)
[   39.532860] rust_minimal: Am I built-in? false
[   39.532864] rust_minimal: test_parameter: 1
# dmesg | tail -n 30
[    3.418850] systemd[1]: Mounted Kernel Trace File System.
[    3.419194] systemd[1]: Finished Create List of Static Device Nodes.
[    3.419482] systemd[1]: modprobe@configfs.service: Deactivated successfully.
[    3.419647] systemd[1]: Finished Load Kernel Module configfs.
[    3.419913] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    3.420056] systemd[1]: Finished Load Kernel Module drm.
[    3.420405] systemd[1]: Finished Read and set NIS domainname from /etc/sysconfig/network.
[    3.420694] systemd[1]: Finished Generate network units from Kernel command line.
[    3.422214] systemd[1]: Mounting Kernel Configuration File System...
[    3.423543] systemd[1]: Finished Apply Kernel Variables.
[    3.424011] systemd[1]: Mounted Kernel Configuration File System.
[    3.430589] systemd[1]: Started Journal Service.
[    3.477706] fuse: init (API version 7.45)
[    3.548678] EXT4-fs (sda3): re-mounted 78691517-64fe-451b-9009-14359b774643 r/w.
[    3.556791] systemd-journald[640]: Received client request to flush runtime journal.
[    3.681167] Adding 10485696k swap on /dev/sda2.  Priority:-1 extents:1 across:10485696k SS
[    3.693490] pseries_rng: Registering IBM pSeries RNG driver
[    3.693904] cryptd: max_cpu_qlen set to 1000
[    4.702590] RPC: Registered named UNIX socket transport module.
[    4.702604] RPC: Registered udp transport module.
[    4.702607] RPC: Registered tcp transport module.
[    4.702609] RPC: Registered tcp-with-tls transport module.
[    4.702612] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    6.701147] block sda: the capability attribute has been deprecated.
[   10.150485] fbcon: Taking over console
[   39.532119] rust_minimal: loading out-of-tree module taints kernel.
[   39.532132] rust_minimal: module verification failed: signature and/or required key missing - tainting kernel
[   39.532856] rust_minimal: Rust minimal sample (init)
[   39.532860] rust_minimal: Am I built-in? false
[   39.532864] rust_minimal: test_parameter: 1
# sudo rmmod rust_minimal
[ 4125.461822] rust_minimal: My numbers are [72, 108, 200]
[ 4125.461839] rust_minimal: Rust minimal sample (exit)
# sudo insmod samples/rust/rust_print.ko
[ 4142.492146] rust_print: Rust printing macros sample (init)
[ 4142.492158] rust_print: Emergency message (level 0) without args
[ 4142.492161] rust_print: Alert message (level 1) without args
[ 4142.492163] rust_print: Critical message (level 2) without args
[ 4142.492166] rust_print: Error message (level 3) without args
[ 4142.492169] rust_print: Warning message (level 4) without args
[ 4142.492171] rust_print: Notice message (level 5) without args
[ 4142.492174] rust_print: Info message (level 6) without args
[ 4142.492176] rust_print: A line that is continued without args
[ 4142.492181] rust_print: Emergency message (level 0) with args
[ 4142.492185] rust_print: Alert message (level 1) with args
[ 4142.492188] rust_print: Critical message (level 2) with args
[ 4142.492190] rust_print: Error message (level 3) with args
[ 4142.492193] rust_print: Warning message (level 4) with args
[ 4142.492195] rust_print: Notice message (level 5) with args
[ 4142.492197] rust_print: Info message (level 6) with args
[ 4142.492200] rust_print: A line that is continued with args
[ 4142.492205] rust_print: 1
[ 4142.492206] rust_print: "hello, world"
[ 4142.492208] rust_print: [rust_print_main.rs:35:5] c = "hello, world"
[ 4142.492213] rust_print: Arc<dyn Display> says 42
[ 4142.492214] rust_print: Arc<dyn Display> says hello, world
# dmesg | tail -n 50
[    3.419913] systemd[1]: modprobe@drm.service: Deactivated successfully.
[    3.420056] systemd[1]: Finished Load Kernel Module drm.
[    3.420405] systemd[1]: Finished Read and set NIS domainname from /etc/sysconfig/network.
[    3.420694] systemd[1]: Finished Generate network units from Kernel command line.
[    3.422214] systemd[1]: Mounting Kernel Configuration File System...
[    3.423543] systemd[1]: Finished Apply Kernel Variables.
[    3.424011] systemd[1]: Mounted Kernel Configuration File System.
[    3.430589] systemd[1]: Started Journal Service.
[    3.477706] fuse: init (API version 7.45)
[    3.548678] EXT4-fs (sda3): re-mounted 78691517-64fe-451b-9009-14359b774643 r/w.
[    3.556791] systemd-journald[640]: Received client request to flush runtime journal.
[    3.681167] Adding 10485696k swap on /dev/sda2.  Priority:-1 extents:1 across:10485696k SS
[    3.693490] pseries_rng: Registering IBM pSeries RNG driver
[    3.693904] cryptd: max_cpu_qlen set to 1000
[    4.702590] RPC: Registered named UNIX socket transport module.
[    4.702604] RPC: Registered udp transport module.
[    4.702607] RPC: Registered tcp transport module.
[    4.702609] RPC: Registered tcp-with-tls transport module.
[    4.702612] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    6.701147] block sda: the capability attribute has been deprecated.
[   10.150485] fbcon: Taking over console
[   39.532119] rust_minimal: loading out-of-tree module taints kernel.
[   39.532132] rust_minimal: module verification failed: signature and/or required key missing - tainting kernel
[   39.532856] rust_minimal: Rust minimal sample (init)
[   39.532860] rust_minimal: Am I built-in? false
[   39.532864] rust_minimal: test_parameter: 1
[ 4125.461822] rust_minimal: My numbers are [72, 108, 200]
[ 4125.461839] rust_minimal: Rust minimal sample (exit)
[ 4142.492146] rust_print: Rust printing macros sample (init)
[ 4142.492158] rust_print: Emergency message (level 0) without args
[ 4142.492161] rust_print: Alert message (level 1) without args
[ 4142.492163] rust_print: Critical message (level 2) without args
[ 4142.492166] rust_print: Error message (level 3) without args
[ 4142.492169] rust_print: Warning message (level 4) without args
[ 4142.492171] rust_print: Notice message (level 5) without args
[ 4142.492174] rust_print: Info message (level 6) without args
[ 4142.492176] rust_print: A line that is continued without args
[ 4142.492181] rust_print: Emergency message (level 0) with args
[ 4142.492185] rust_print: Alert message (level 1) with args
[ 4142.492188] rust_print: Critical message (level 2) with args
[ 4142.492190] rust_print: Error message (level 3) with args
[ 4142.492193] rust_print: Warning message (level 4) with args
[ 4142.492195] rust_print: Notice message (level 5) with args
[ 4142.492197] rust_print: Info message (level 6) with args
[ 4142.492200] rust_print: A line that is continued with args
[ 4142.492205] rust_print: 1
[ 4142.492206] rust_print: "hello, world"
[ 4142.492208] rust_print: [rust_print_main.rs:35:5] c = "hello, world"
[ 4142.492213] rust_print: Arc<dyn Display> says 42
[ 4142.492214] rust_print: Arc<dyn Display> says hello, world
# sudo rmmod rust_print
[ 4142.492217] rust_print: "hello, world"
[ 4153.334714] rust_print: Rust printing macros sample (exit)

# sudo rmmod rust_debugfs

Regards,
Venkat.

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-02-06 16:56 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-05 18:04 [PATCH V3 0/3] Rust support for powerpc Mukesh Kumar Chaurasiya (IBM)
2026-02-05 18:04 ` [PATCH V3 1/3] powerpc/jump_label: adjust inline asm to be consistent Mukesh Kumar Chaurasiya (IBM)
2026-02-05 18:04 ` [PATCH V3 2/3] rust: Add PowerPC support Mukesh Kumar Chaurasiya (IBM)
2026-02-05 18:04 ` [PATCH V3 3/3] powerpc: Enable Rust for ppc64le Mukesh Kumar Chaurasiya (IBM)
2026-02-06 16:55 ` [PATCH V3 0/3] Rust support for powerpc Venkat

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox