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

Ben Pfaff blp at ovn.org
Thu Oct 26 16:58:58 UTC 2017


On Thu, Oct 26, 2017 at 01:57:59PM +0300, Ilya Maximets wrote:
> 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.

OK.  It's only the public interface I care about.


More information about the dev mailing list