[ovs-dev] [PATCH v4 5/7] timeval: Introduce time_usec().

Ilya Maximets i.maximets at samsung.com
Thu Oct 26 10:57:59 UTC 2017


On 26.10.2017 10:12, Ilya Maximets wrote:
> On 25.10.2017 20:28, Ben Pfaff wrote:
>> On Fri, Oct 13, 2017 at 01:03:18PM +0000, Bodireddy, Bhanuprakash wrote:
>>>> This fanction will provide monotonic time in microseconds.
>>>
>>> [BHANU] Typo here with function.
>>>
>>>>
>>>> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
>>>> ---
>>>> lib/timeval.c | 22 ++++++++++++++++++++++  lib/timeval.h |  2 ++
>>>> 2 files changed, 24 insertions(+)
>>>>
>>>> diff --git a/lib/timeval.c b/lib/timeval.c index dd63f03..be2eddc 100644
>>>> --- a/lib/timeval.c
>>>> +++ b/lib/timeval.c
>>>> @@ -233,6 +233,22 @@ time_wall_msec(void)
>>>>     return time_msec__(&wall_clock);
>>>> }
>>>>
>>>> +static long long int
>>>> +time_usec__(struct clock *c)
>>>> +{
>>>> +    struct timespec ts;
>>>> +
>>>> +    time_timespec__(c, &ts);
>>>> +    return timespec_to_usec(&ts);
>>>> +}
>>>> +
>>>> +/* Returns a monotonic timer, in microseconds. */ long long int
>>>> +time_usec(void)
>>>> +{
>>>> +    return time_usec__(&monotonic_clock); }
>>>> +
>>>
>>> [BHANU]  As you are introducing the support for microsecond granularity, can you also add time_wall_usec() and time_wall_usec__() here?
> 
> I'm not sure what you meant under 'time_wall_usec__()'. There is no such function for msec.
> 
>>> The ipfix code (ipfix_now()) can be the first one to use it for now. May be more in the future! 
>>>
>>>> /* Configures the program to die with SIGALRM 'secs' seconds from now, if
>>>>  * 'secs' is nonzero, or disables the feature if 'secs' is zero. */  void @@ -360,6
>>>> +376,12 @@ timeval_to_msec(const struct timeval *tv)
>>>>     return (long long int) tv->tv_sec * 1000 + tv->tv_usec / 1000;  }
>>>>
>>>> +long long int
>>>> +timespec_to_usec(const struct timespec *ts) {
>>>> +    return (long long int) ts->tv_sec * 1000 * 1000 + ts->tv_nsec /
>>>> +1000; }
>>>> +
>>>
>>> [BHANU] how about adding timeval_to_usec()?
>>> Also it would be nice to have the usec_to_timespec() and  timeval_diff_usec() implemented to make this commit complete.
>>
>> I'd appreciate those changes too; with those changes, I'd be happy to
>> apply this, independent of anything else in the series.
> 
> 
> OK. Cool.
> I'm going to implement additionally:
> 
> time_wall_usec()
> usec_to_timespec()
> timeval_to_usec()
> timeval_diff_usec()
> 
> Please, correct me if I missed something.

I figured out that usec_to_timespec() and timeval_diff_usec() are static and
will produce 'defined but not used' warning. And, actually, they are used only
for poll logging and time warping, so those are not important to have usec
granularity.
I will add only two functions:

time_wall_usec()
timeval_to_usec()

because they are part of the public timeval interface.

> Best regards, Ilya Maximets.
> 


More information about the dev mailing list