[PATCH] init: Use ktime_us_delta() to make initcall_debug log more precise

Mark-PK Tsai posted 1 patch 2 years, 7 months ago
init/main.c | 8 ++------
1 file changed, 2 insertions(+), 6 deletions(-)
[PATCH] init: Use ktime_us_delta() to make initcall_debug log more precise
Posted by Mark-PK Tsai 2 years, 7 months ago
Use ktime_us_delta() to make the initcall_debug log more precise than
right shifting the result of ktime_to_ns() by 10 bits.

Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
---
 init/main.c | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/init/main.c b/init/main.c
index 65fa2e41a9c0..c8edcc3029b1 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1246,15 +1246,11 @@ trace_initcall_start_cb(void *data, initcall_t fn)
 static __init_or_module void
 trace_initcall_finish_cb(void *data, initcall_t fn, int ret)
 {
-	ktime_t *calltime = (ktime_t *)data;
-	ktime_t delta, rettime;
-	unsigned long long duration;
+	ktime_t rettime, *calltime = (ktime_t *)data;
 
 	rettime = ktime_get();
-	delta = ktime_sub(rettime, *calltime);
-	duration = (unsigned long long) ktime_to_ns(delta) >> 10;
 	printk(KERN_DEBUG "initcall %pS returned %d after %lld usecs\n",
-		 fn, ret, duration);
+		 fn, ret, (unsigned long long)ktime_us_delta(rettime, *calltime));
 }
 
 static ktime_t initcall_calltime;
-- 
2.18.0

Re: [PATCH] init: Use ktime_us_delta() to make initcall_debug log more precise
Posted by Andrew Halaney 2 years, 7 months ago
On Wed, Feb 09, 2022 at 01:33:50PM +0800, Mark-PK Tsai wrote:
> Use ktime_us_delta() to make the initcall_debug log more precise than
> right shifting the result of ktime_to_ns() by 10 bits.
> 
> Signed-off-by: Mark-PK Tsai <mark-pk.tsai@mediatek.com>
> ---
>  init/main.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/init/main.c b/init/main.c
> index 65fa2e41a9c0..c8edcc3029b1 100644
> --- a/init/main.c
> +++ b/init/main.c
> @@ -1246,15 +1246,11 @@ trace_initcall_start_cb(void *data, initcall_t fn)
>  static __init_or_module void
>  trace_initcall_finish_cb(void *data, initcall_t fn, int ret)
>  {
> -	ktime_t *calltime = (ktime_t *)data;
> -	ktime_t delta, rettime;
> -	unsigned long long duration;
> +	ktime_t rettime, *calltime = (ktime_t *)data;
>  
>  	rettime = ktime_get();
> -	delta = ktime_sub(rettime, *calltime);
> -	duration = (unsigned long long) ktime_to_ns(delta) >> 10;
>  	printk(KERN_DEBUG "initcall %pS returned %d after %lld usecs\n",
> -		 fn, ret, duration);
> +		 fn, ret, (unsigned long long)ktime_us_delta(rettime, *calltime));
>  }
>  
>  static ktime_t initcall_calltime;
> -- 
> 2.18.0
> 

I took this for a spin while playing around with other things today,
cleans things up nicely imo.

Reviewed-by: Andrew Halaney <ahalaney@redhat.com>
Tested-by: Andrew Halaney <ahalaney@redhat.com>