Le 13/01/2021 à 08:32, Nicholas Piggin a écrit :
This will be used by interrupt entry as well.

Signed-off-by: Nicholas Piggin <npig...@gmail.com>
---
  arch/powerpc/include/asm/cputime.h | 15 +++++++++++++++
  arch/powerpc/kernel/syscall_64.c   | 10 +---------
  2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/arch/powerpc/include/asm/cputime.h 
b/arch/powerpc/include/asm/cputime.h
index ed75d1c318e3..3f61604e1fcf 100644
--- a/arch/powerpc/include/asm/cputime.h
+++ b/arch/powerpc/include/asm/cputime.h
@@ -87,6 +87,18 @@ static notrace inline void account_cpu_user_exit(void)
        acct->starttime_user = tb;
  }
+static notrace inline void account_stolen_time(void)
+{
+#ifdef CONFIG_PPC_SPLPAR
+       if (IS_ENABLED(CONFIG_VIRT_CPU_ACCOUNTING_NATIVE) &&

Arent' you already inside a CONFIG_VIRT_CPU_ACCOUNTING_NATIVE section ?

+           firmware_has_feature(FW_FEATURE_SPLPAR)) {
+               struct lppaca *lp = local_paca->lppaca_ptr;
+
+               if (unlikely(local_paca->dtl_ridx != be64_to_cpu(lp->dtl_idx)))
+                       accumulate_stolen_time();
+       }
+#endif
+}
#endif /* __KERNEL__ */
  #else /* CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */
@@ -96,5 +108,8 @@ static inline void account_cpu_user_entry(void)
  static inline void account_cpu_user_exit(void)
  {
  }
+static notrace inline void account_stolen_time(void)
+{
+}
  #endif /* CONFIG_VIRT_CPU_ACCOUNTING_NATIVE */
  #endif /* __POWERPC_CPUTIME_H */
diff --git a/arch/powerpc/kernel/syscall_64.c b/arch/powerpc/kernel/syscall_64.c
index 42f0ad4b2fbb..32f72965da26 100644
--- a/arch/powerpc/kernel/syscall_64.c
+++ b/arch/powerpc/kernel/syscall_64.c
@@ -69,15 +69,7 @@ notrace long system_call_exception(long r3, long r4, long r5,
account_cpu_user_entry(); -#ifdef CONFIG_PPC_SPLPAR
-       if (IS_ENABLED(CONFIG_VIRT_CPU_ACCOUNTING_NATIVE) &&
-           firmware_has_feature(FW_FEATURE_SPLPAR)) {
-               struct lppaca *lp = local_paca->lppaca_ptr;
-
-               if (unlikely(local_paca->dtl_ridx != be64_to_cpu(lp->dtl_idx)))
-                       accumulate_stolen_time();
-       }
-#endif
+       account_stolen_time();
/*
         * This is not required for the syscall exit path, but makes the

Reply via email to