Subject: Re: [PATCH 2/4 - rev2] Add new timeval_to_sec function

From: Varun Chandramohan <[email-masked]>
Date: Tue, 21 Aug 2007 09:09:33 +0530

Stephen Hemminger wrote:
> On Mon, 20 Aug 2007 13:45:36 +0530
> Varun Chandramohan <[email-masked]> wrote:
>
>   
>> A new function for converting timeval to time_t is added in time.h. Its a common function used in different
>> places.
>>
>> Signed-off-by: Varun Chandramohan <[email-masked]>
>> ---
>>  include/linux/time.h |   12 ++++++++++++
>>  1 files changed, 12 insertions(+), 0 deletions(-)
>>
>> diff --git a/include/linux/time.h b/include/linux/time.h
>> index 6a5f503..1faf65c 100644
>> --- a/include/linux/time.h
>> +++ b/include/linux/time.h
>> @@ -149,6 +149,18 @@ static inline s64 timeval_to_ns(const st
>>  }
>>  
>>  /**
>> + * timeval_to_sec - Convert timeval to seconds
>> + * @tv:         pointer to the timeval variable to be converted
>> + *
>> + * Returns the seconds representation of timeval parameter.
>> + * Note : Here we round up the value. We dont need accuracy.
>> + */
>> +static inline time_t timeval_to_sec(const struct timeval *tv)
>> +{
>> +	return (tv->tv_sec + (tv->tv_usec ? 1 : 0));
>> +}
>> +
>>     
>
> Why roundup? Unless there is a requirement in the standard, please just
> use the timeval seconds. In which case the inline is unneeded.
>
>
>   
Thanks for the reply stephen. As you might be aware that this discussion
took place sometime ago when i posted my first patch set.
Initially it was like this:

return (tv->tv_sec + (tv->tv_usec + 500000)/1000000);
Then i got some comments from patrick and oliver. They wanted me to
round it up.

So what about rounding up with

return (tv->tv_sec + (tv->tv_usec + 999999)/1000000);

Then on second revision the above was changed to

return tv->tv_sec + (tv->tv_usec ? 1 : 0);

as it would be much faster. Since the timeval is meant for stats purpose
we decided not really bother about accuracy. My initial patch actually
took only sec value into account, but i was adviced to round up usec to
give a better o/p. Is that ok??? Or you still think we should consider
only secs?

Regards,
Varun