[Spice-devel] [PATCH spice-server 1/2] utils: Get monotonic time in a coherent way

Christophe Fergeau cfergeau at redhat.com
Tue Oct 9 13:16:29 UTC 2018


On Tue, Oct 09, 2018 at 08:45:58AM -0400, Frediano Ziglio wrote:
> > 
> > On Tue, Oct 09, 2018 at 01:14:10PM +0100, Frediano Ziglio wrote:
> > > Use a single function to get monotonic time.
> > > As lot of code needs nanosecond precision, spice_get_monotonic_time_ns
> > > is used.
> > > 
> > 
> > "lots of code needs nanosecond precision"? I looked at a few files using
> > spice_get_monotonic_time_ns, and nanosecond precision did not seem
> > useful in any of those (the code was adding a timeout in second to it, or
> > using g_usleep, or converting it to some other unit straight away). So I
> > would not add this misleading comment to the log ;) Maybe this should
> > be adding a spice_get_monotonic_get_us helper so that it's clear we
> > don't need that much precision?
> > 
> > Christophe
> > 
> 
> There are 32 calls and only 4 seems to require less precision than
> that.

We'll have to disagree here, I haven't looked at all the call sites, but
I'm not far from reaching the opposite conclusion (the majority of the
calls does not need ns, only a few places are less obvious).


> Maybe usec are enough but as at the end we need to call
> clock_gettime and use 64 bit integers anyway so using nanoseconds
> by default is not more costly. I don't know if switching to
> microseconds could cause some wrong rounding, surely not
> switching won't have this issue.
> 
> You just removed the XX_ms one, now we want the XX_us? At this
> point let's have all XX_ns, XX_us, XX_ms and XX_s.

I guess this all can be revisited later as this is getting more involved
than what you initially had in mind :)

> How should I change the comment?

Removing it should be all that is needed.

> > > diff --git a/server/utils.h b/server/utils.h
> > > index 07878539..a2747cf7 100644
> > > --- a/server/utils.h
> > > +++ b/server/utils.h
> > > @@ -54,8 +54,9 @@ typedef int64_t red_time_t;
> > >  
> > >  #define NSEC_PER_SEC      1000000000LL
> > >  #define NSEC_PER_MILLISEC 1000000LL
> > > +#define NSEC_PER_MICROSEC 1000
> > >  
> > > -/* FIXME: consider g_get_monotonic_time (), but in microseconds */
> > > +/* g_get_monotonic_time() as not enough precision */

You could probably just drop the comment. Or s/as/does not have/ if you
keep it.

Acked-by: Christophe Fergeau <cfergeau at redhat.com>

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20181009/bc246b51/attachment.sig>


More information about the Spice-devel mailing list