Thread (21 messages) 21 messages, 5 authors, 2025-09-24

Re: [RFC V2 8/8] powerpc: Enable Generic Entry/Exit for syscalls.

From: Mukesh Kumar Chaurasiya <hidden>
Date: 2025-09-18 06:58:45
Also in: lkml

On 9/9/25 12:24 PM, Shrikanth Hegde wrote:
quoted hunk ↗ jump to hunk

On 9/9/25 2:32 AM, Mukesh Kumar Chaurasiya wrote:
quoted
Enable the syscall entry and exit path from generic framework.

Signed-off-by: Mukesh Kumar Chaurasiya <redacted>
---
Hi Mukesh.
Thanks for working on this and getting it to better shape.
quoted
  arch/powerpc/Kconfig |   1 +
  arch/powerpc/include/asm/entry-common.h |   2 +-
  arch/powerpc/kernel/interrupt.c         | 135 +++++++----------------
  arch/powerpc/kernel/ptrace/ptrace.c     | 141 ------------------------
  arch/powerpc/kernel/signal.c            |  10 +-
  arch/powerpc/kernel/syscall.c           | 119 +-------------------
  6 files changed, 49 insertions(+), 359 deletions(-)
diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index e0c51d7b5638d..e67294a72e4d4 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -199,6 +199,7 @@ config PPC
      select GENERIC_CPU_AUTOPROBE
      select GENERIC_CPU_VULNERABILITIES    if PPC_BARRIER_NOSPEC
      select GENERIC_EARLY_IOREMAP
+    select GENERIC_ENTRY
      select GENERIC_GETTIMEOFDAY
      select GENERIC_IDLE_POLL_SETUP
      select GENERIC_IOREMAP
diff --git a/arch/powerpc/include/asm/entry-common.h 
b/arch/powerpc/include/asm/entry-common.h
index d3f4a12aeafca..8fb74e6aa9560 100644
--- a/arch/powerpc/include/asm/entry-common.h
+++ b/arch/powerpc/include/asm/entry-common.h
@@ -3,7 +3,7 
There could be some of the configs we need to take care while enabling 
generic entry. Since powerpc
didn't have it earlier, there could areas which needs cleanup. One for 
example dynamic preemption.
There could be more. Do some git history checks and see.

Issue with dynamic preemption:

ld: 
kernel/entry/common.o:/home/shrikanth/sched_tip/kernel/entry/common.c:161: 
multiple definition of `sk_dynamic_irqentry_exit_cond_resched';
arch/powerpc/kernel/interrupt.o:/home/shrikanth/sched_tip/arch/powerpc/kernel/interrupt.c:29: 
first defined here

Below diff helps to fix and changing preemption modes help. Also 
verified preempt lazy works too.

---
diff --git a/arch/powerpc/kernel/interrupt.c 
b/arch/powerpc/kernel/interrupt.c
index 642e22527f9d..e1e0f0da4165 100644
--- a/arch/powerpc/kernel/interrupt.c
+++ b/arch/powerpc/kernel/interrupt.c
@@ -25,10 +25,6 @@
 unsigned long global_dbcr0[NR_CPUS];
 #endif

-#if defined(CONFIG_PREEMPT_DYNAMIC)
-DEFINE_STATIC_KEY_TRUE(sk_dynamic_irqentry_exit_cond_resched);
-#endif
-
 #ifdef CONFIG_PPC_BOOK3S_64
 DEFINE_STATIC_KEY_FALSE(interrupt_exit_not_reentrant);
 static inline bool exit_must_hard_disable(void)


----
Though ideal thing is move them to sched/core instead of being in 
generic code. Like below.
https://lore.kernel.org/all/20250716094745.2232041-1-sshegde@linux.ibm.com/ (local) 
Sure.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help