On Sun, 2016-12-18 at 22:56 +0200, Julian Anastasov wrote:

>  
> +static inline void sock_confirm_neigh(struct sk_buff *skb, struct neighbour 
> *n)
> +{
> +     if (unlikely(skb->dst_pending_confirm)) {
> +             struct sock *sk = skb->sk;
> +             unsigned long now = jiffies;
> +
> +             /* avoid dirtying neighbour */
> +             if (n->confirmed != now)
> +                     n->confirmed = now;
> +             if (sk && sk->sk_dst_pending_confirm)
> +                     sk->sk_dst_pending_confirm = 0;
> +     }
> +}
> +

I am still digesting this awesome patch series ;)

Not sure why you used an unlikely() here. TCP for example would hit this
path quite often.

So considering sk_dst_pending_confirm might be dirtied quite often,

I am not sure why you placed it in the cache line that contains
sk_rx_dst (in 1st patch)

Thanks.



Reply via email to