[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