Re: [PATCH 2/3] powerpc: support dynamic preemption

From: Shrikanth Hegde
Date: Sun Dec 01 2024 - 14:46:34 EST




On 11/27/24 12:14, Christophe Leroy wrote:


Le 25/11/2024 à 05:22, Shrikanth Hegde a écrit :
Once the lazy preemption is supported, it would be desirable to change
the preemption models at runtime. So this change adds support for dynamic
preemption using DYNAMIC_KEY.

In irq-exit to kernel path, use preempt_model_preemptible for decision.
Other way would be using static key based decision. Keeping it
simpler since key based change didn't show performance improvement.

What about static_call, wouldn't it improve performance ?


diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
index 6d6bbd93abab..01c58f5258c9 100644
--- a/arch/powerpc/Kconfig
+++ b/arch/powerpc/Kconfig
@@ -270,6 +270,7 @@ config PPC
      select HAVE_PERF_EVENTS_NMI        if PPC64
      select HAVE_PERF_REGS
      select HAVE_PERF_USER_STACK_DUMP
+    select HAVE_PREEMPT_DYNAMIC_KEY

Can you use HAVE_PREEPT_DYNAMIC_CALL instead ? That should be more performant.

I know static calls are not in for PPC64 yet, you can restart from http://patchwork.ozlabs.org/project/linuxppc-dev/ cover/20221010002957.128276-1-bgray@xxxxxxxxxxxxx/ and https:// github.com/linuxppc/issues/issues/416


Thanks Christophe, I will take a look and understand.

May be stupid question, do the concerns of arm still valid for ppc64/ppc32 out-line static calls?
https://lore.kernel.org/all/20220214165216.2231574-6-mark.rutland@xxxxxxx/

As I understood, that is the reason they went ahead with DYNAMIC_KEY.

Christophe