Re: Problem with frame time stamping

From: Antoine Zen-Ruffinen
Date: Tue Nov 13 2007 - 07:34:48 EST


THIS is what I did at the beginning. But is seem me to be some thing
wrong. So I put a static value in skb->tstamp instead of
ktime_get_real() for debug purpose. And I was still becoming the
amount of second, microsecond since 1970. We are back to my initial
mail ! The value of skb->tsamp doesn't seems to be returned by
ioctl().

2007/11/13, Eric Dumazet <dada1@xxxxxxxxxxxxx>:
> Antoine Zen-Ruffinen a écrit :
> > This is exactly my problem : The driver of the network card I am using
> > (see rt2x00.serialmonkey.com) do the minimum in the hardware interrupt
> > (not filling skb->tstamp). Then netif_rx() is called later using a
> > tasklet (also not filling skb->tstamp). As it seem to me (maybe I am
> > wrong, if so please tell), the elapse time between the actual frame
> > arrival and the time where netif_rx() do net_timestamp(skb) is not
> > predicable !?
> >
> > Else, I would like to thank you to spend time helping me.
> >
> >
> >
> A tasklet could process the skb much later than corresponding IRQ,
> depending on various things
> (other tasks/softirqs on system with higher priorities). So yes, it is
> not predictable at all.
>
> Usually it doesnt matter, but if your business depends on precise tstamps,
> then just do skb->tstamp = ktime_get_real(); in IRQ handler (but it will
> slow it a bit,
> depending on how fast is ktime_get_real() on the target machine)
> netif_rx() wont overwrite it.
>
> skb = dev_alloc_skb(desc.size + NET_IP_ALIGN);
> if (!skb)
> return;
> skb->tstamp = ktime_get_real(); /* do it before other copies */
> skb_reserve(skb, NET_IP_ALIGN);
> skb_put(skb, desc.size);
> memcpy(skb->data, entry->data_addr, desc.size);
>
> ...
>
>
>
>
>
>
-
To unsubscribe from this list: send the line "unsubscribe linux-net" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html