On 9/9/25 12:24, Shrikanth Hegde wrote:
On 9/9/25 2:32 AM, Mukesh Kumar Chaurasiya wrote:
Enable the syscall entry and exit path from generic framework.
Signed-off-by: Mukesh Kumar Chaurasiya <mchau...@linux.ibm.com>
---
Hi Mukesh.
Thanks for working on this and getting it to better shape.
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)
Hey Srikanth,
Thanks for this. I will add this in next revision.
Mukesh
----
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-sshe...@linux.ibm.com/