net_timedelta() affected by settimeofday() (was: [patch 12/13] net: mac80211: Remove silly timespec dance)

From: Johannes Berg
Date: Thu Jun 12 2014 - 04:36:02 EST


+netdev, Stephen

On Thu, 2014-06-12 at 10:19 +0200, Thomas Gleixner wrote:
> On Thu, 12 Jun 2014, Johannes Berg wrote:
>
> > On Wed, 2014-06-11 at 23:59 +0000, Thomas Gleixner wrote:
> >
> > > + msrmnt = ktime_to_ms(net_timedelta(skb_arv));
> >
> > This is probably more of a question about net_timedelta(), but is
> > ktime_get_real() really appropriate for duration measurements? Isn't
> > that non-monotonic?
>
> Well, it's monotonic, but might be affected by settimeofday().

Right, but isn't that odd? Suddenly your delay measurement here might be
minutes, hours, or years if you settimeofday() between timestamping and
calculating the delta. That seems very strange to me, why would that be
the right behaviour in any way?

Now, it seems that there are only two current users of net_timedelta()
(in DCCP) so perhaps it's not too late to change some of this?

Maybe in general the skb timestamp should be based on a different clock
and only adjusted to real time when used in userspace?

johannes


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/