Re: [PATCH 1/1] can: dev: add software tx timestamps

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello Jeroen,

On Sun. 10 Jan 2021 at 20:29, Jeroen Hofstee <jhofstee@xxxxxxxxxxxxxxxxx> wrote:
>
> Hello Vincent,
>
> On 1/10/21 11:35 AM, Vincent Mailhol wrote:
> > Call skb_tx_timestamp() within can_put_echo_skb() so that a software
> > tx timestamp gets attached on the skb.
> >
> [..]
> >
> > diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
> > index 3486704c8a95..3904e0874543 100644
> > --- a/drivers/net/can/dev.c
> > +++ b/drivers/net/can/dev.c
> > @@ -484,6 +484,8 @@ int can_put_echo_skb(struct sk_buff *skb, struct net_device *dev,
> >
> >               /* save this skb for tx interrupt echo handling */
> >               priv->echo_skb[idx] = skb;
> > +
> > +             skb_tx_timestamp(skb);
> >       } else {
> >               /* locking problem with netif_stop_queue() ?? */
> >               netdev_err(dev, "%s: BUG! echo_skb %d is occupied!\n", __func__, idx);
>
> Personally, I would put the skb_tx_timestamp, before adding it to the array:
>
>          /* make settings for echo to reduce code in irq context */
>          skb->pkt_type = PACKET_BROADCAST;
>          skb->ip_summed = CHECKSUM_UNNECESSARY;
>          skb->dev = dev;
> +       skb_tx_timestamp(skb);
>
>          /* save this skb for tx interrupt echo handling */
>          priv->echo_skb[idx] = skb;

I agree that it is better like that from an aesthetic point of
view. The reason to put it at the very end was to really to
blindly follow the doc and do the timestamp as late as possible.

>
> I don't think it actually matters though.

Indeed, but will still follow your suggestion though. Putting it
before would just delay the timestamp by a few assembly
instructions: it is negligible enough.


Yours sincerely,
Vincent Mailhol



[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux