[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 1/3] xenbaked: properly use time_t in dump_stats()


  • To: Jan Beulich <jbeulich@xxxxxxxx>
  • From: Anthony PERARD <anthony.perard@xxxxxxxxxx>
  • Date: Thu, 18 Aug 2022 17:34:05 +0100
  • Authentication-results: esa5.hc3370-68.iphmx.com; dkim=none (message not signed) header.i=none
  • Cc: "xen-devel@xxxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxxx>, Wei Liu <wl@xxxxxxx>
  • Delivery-date: Thu, 18 Aug 2022 16:34:40 +0000
  • Ironport-data: A9a23:BzRSi6kheibixv9m5zKeor7o5gz1JkRdPkR7XQ2eYbSJt1+Wr1Gzt xIcXGjQbqmKMzajf4t0a9vk/BkA75Hcn9RrHQJu/yE8QSMWpZLJC+rCIxarNUt+DCFioGGLT Sk6QoOdRCzhZiaE/n9BCpC48T8mk/ngqoPUUIbsIjp2SRJvVBAvgBdin/9RqoNziJ2yDhjlV ena+qUzA3f4nW8vWo4ow/jb8kk37K2i4GhwUmEWPpingnePzxH5M7pHTU2BByOQapVZGOe8W 9HCwNmRlo8O105wYj8Nuu+TnnwiGtY+DyDX4pZlc/HKbix5jj4zys4G2M80Mi+7vdkrc+dZk 72hvbToIesg0zaldO41C3G0GAkmVUFKFSOuzdFSfqV/wmWfG0YAzcmCA2ktI6oF8P5ODV0Vz sZfCgkWLRW9vcu5lefTpulE3qzPLeHuNYIb/Hph0SvYHbAtRpWrr6fivIECmm1q34YXQKiYN 5FxhTlHNXwsZzVGPEsXD5Qv2v+lnHDlfxVTqU6PpLpx6G/WpOB0+OeyboGMIoPXLSlTtknD+ U7ioU/7OAlAMMa4ziCa1VCvntaayEsXX6pNTeblp5aGmma72Wg7GBAQE1yhrpGRmkO4Ht5SN UEQ0i4vtrQpslymSMHnWB+1q2LCuQQTM/JSGeAn7ACGyoLP/h2UQGMDS1Z8hMcO7ZFsA2Zwj xnQwo2vVWcHXKCppWy17amzsDmqACQpdlQ4Ig09VkgA3ePKr9Rm5v7QdeqPAJJZn/WsR2+on WvQ8Hlj71kApZVVjvvmpDgrlxrp/8GUFVBtu207S0r/tmtEiJiZi5tEALQxxdJJN86nQ1aIp xDocODOvblVXflheMFgKdjh/Y1FBN7faVUweXY1Q/EcG82FohZPh7x47jBkP1tOOc0ZYzLva 0K7kVoPuscMYiLwNfAoP9LZ5yEWIU7IT4yNuhf8P7JzjmVZLlfbrEmCm2bKt4wSrKTcuf5mY srKGSpdJX0bFb5m3FKLegvp6pdyn3hW7T6CGvjGI+GPi+X2iIi9FehYazNjr4kRsMu5neki2 4wOaZPVkE4HCbeWj+u+2dd7EG3m5EMTXfjew/G7vMbZSua6MAnN08Ps/I4=
  • Ironport-hdrordr: A9a23:9T+Oiagxj7lZF90qdA0NnFD8C3BQXtgji2hC6mlwRA09TySZ// rOoB0+726StN9xYgBFpTnuAsW9qB/nmqKdpLNhW4tKPzOW3VdATrsSjrcKqgeIc0aVm9K1l5 0QEZSWYOeAdGSS5vyb3ODXKbgd/OU=
  • List-id: Xen developer discussion <xen-devel.lists.xenproject.org>

On Thu, Aug 18, 2022 at 04:05:37PM +0200, Jan Beulich wrote:
> "int" is not a suitable type to convert time()'s return value to. Avoid
> casts and other extra fiddling by using difftime(), on the assumption
> that the overhead of using "double" doesn't matter here.

dump_stats() seems to be only used once, so it's probably fine.

> Coverity ID: 1509374
> Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx>
> 
> --- unstable.orig/tools/xenmon/xenbaked.c     2022-01-06 16:12:39.000000000 
> +0100
> +++ unstable/tools/xenmon/xenbaked.c  2022-08-18 15:36:39.918706853 +0200
> @@ -230,11 +230,7 @@ static void check_gotten_sum(void)
>  static void dump_stats(void) 
>  {
>      stat_map_t *smt = stat_map;
> -    time_t end_time, run_time;
> -
> -    time(&end_time);
> -
> -    run_time = end_time - start_time;
> +    double run_time = difftime(time(NULL), start_time);
>  
>      printf("Event counts:\n");
>      while (smt->text != NULL) {
> @@ -242,13 +238,11 @@ static void dump_stats(void)
>          smt++;
>      }
>  
> -    printf("processed %d total records in %d seconds (%ld per second)\n",
> -           rec_count, (int)run_time,
> -           run_time ? (long)(rec_count/run_time) : 0L);
> +    printf("processed %d total records in %0f seconds (%0f per second)\n",

Did you want to write "%.0f" or even "%.f" instead of "%0f"? It seems
that the '0' here mean '0'-padded, but without field width there would
be nothing to pad. I'm guessing you would want printf to write something
like "266 seconds" instead of "266.646168 seconds". Am I missing
something ?

> +           rec_count, run_time, run_time ? rec_count / run_time : 0);
>  
> -    printf("woke up %d times in %d seconds (%ld per second)\n",
> -           wakeups, (int) run_time,
> -           run_time ? (long)(wakeups/run_time) : 0L);
> +    printf("woke up %d times in %0f seconds (%0f per second)\n",
> +           wakeups, run_time, run_time ? wakeups / run_time : 0);
>  
>      check_gotten_sum();
>  }
> 

-- 
Anthony PERARD



 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.