[PATCH 1/2] powerpc/vdso64: Coarse timer support preparatory patch

Naveen N. Rao naveen.n.rao at linux.vnet.ibm.com
Fri Oct 6 20:03:02 AEDT 2017


Hi Santosh,

On 2017/09/18 09:23AM, Santosh Sivaraj wrote:
> Reorganize code to make it easy to introduce CLOCK_REALTIME_COARSE and
> CLOCK_MONOTONIC_COARSE timer support.
> 
> Signed-off-by: Santosh Sivaraj <santosh at fossix.org>
> ---
>  arch/powerpc/kernel/vdso64/gettimeofday.S | 14 ++++++++------
>  1 file changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/arch/powerpc/kernel/vdso64/gettimeofday.S b/arch/powerpc/kernel/vdso64/gettimeofday.S
> index 382021324883..a0b4943811db 100644
> --- a/arch/powerpc/kernel/vdso64/gettimeofday.S
> +++ b/arch/powerpc/kernel/vdso64/gettimeofday.S
> @@ -60,18 +60,20 @@ V_FUNCTION_END(__kernel_gettimeofday)
>   */
>  V_FUNCTION_BEGIN(__kernel_clock_gettime)
>    .cfi_startproc
> +	mr	r11,r4			/* r11 saves tp */
> +	mflr	r12			/* r12 saves lr */
> +	lis	r7,NSEC_PER_SEC at h	/* want nanoseconds */
> +	ori	r7,r7,NSEC_PER_SEC at l
> +
>  	/* Check for supported clock IDs */
>  	cmpwi	cr0,r3,CLOCK_REALTIME
>  	cmpwi	cr1,r3,CLOCK_MONOTONIC
>  	cror	cr0*4+eq,cr0*4+eq,cr1*4+eq
> -	bne	cr0,99f
> +	beq	cr0,49f
> 
> -	mflr	r12			/* r12 saves lr */
> +	b	99f		/* Fallback to syscall */

'beq', followed by a 'b' looks weird without considering the next patch.  
I think this can be organized better to not have to update r7/r11/r12 if 
using the system call. See next patch for my comments.

>    .cfi_register lr,r12

If you move the mflr, you should move the above line along with it.

- Naveen

> -	mr	r11,r4			/* r11 saves tp */
> -	bl	V_LOCAL_FUNC(__get_datapage)	/* get data page */
> -	lis	r7,NSEC_PER_SEC at h	/* want nanoseconds */
> -	ori	r7,r7,NSEC_PER_SEC at l
> +49:	bl	V_LOCAL_FUNC(__get_datapage)	/* get data page */
>  50:	bl	V_LOCAL_FUNC(__do_get_tspec)	/* get time from tb & kernel */
>  	bne	cr1,80f			/* if not monotonic, all done */
> 
> -- 
> 2.13.5
> 



More information about the Linuxppc-dev mailing list