[PATCH v5 16/21] powerpc/64: move account_stolen_time into its own function
Christophe Leroy
christophe.leroy at csgroup.eu
Thu Jan 14 01:59:13 AEDT 2021
Le 13/01/2021 à 08:32, Nicholas Piggin a écrit :
> This will be used by interrupt entry as well.
>
> Signed-off-by: Nicholas Piggin <npiggin at 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
>
More information about the Linuxppc-dev
mailing list