[ovs-dev] [PATCH v2] datapath: Remove tunnel header caching.

Jesse Gross jesse at nicira.com
Sat Oct 27 00:15:51 UTC 2012


On Thu, Oct 25, 2012 at 11:14 AM, Pravin B Shelar <pshelar at nicira.com> wrote:
> Tunnel caching was added to reduce CPU utilization on TX path
> by caching packet header, So performance gain is directly proportional
> to number of skbs transferred. But with help of offloads skb are getting
> larger. So there are less number of skbs. Therefore header caching does
> not shows similar gains we seen in past. And now kernel 3.6 has removed
> dst caching from networking which makes header caching even more tricky.
> So this commit removes header caching from OVS tunnelling.
>
> Signed-off-by: Pravin B Shelar <pshelar at nicira.com>

We should probably add a NEWS item.

> diff --git a/datapath/tunnel.h b/datapath/tunnel.h
> index 951a6f1..f296ecb 100644
> --- a/datapath/tunnel.h
> +++ b/datapath/tunnel.h
> -       /*
> -        * Updates the cached header of a packet to match the actual packet
> +        * Updates the header of a packet to match the actual packet
>          * data.  Typical things that might need to be updated are length,
>          * checksum, etc.  The IP header will have already been updated and this
>          * is the final step before transmission.  Returns a linked list of

Is this still really updating the header now?  It's really creating it
from scratch.

> diff --git a/datapath/vport-gre.c b/datapath/vport-gre.c
> index d02d4ec..3a877f3 100644
> --- a/datapath/vport-gre.c
> +++ b/datapath/vport-gre.c
> @@ -196,7 +162,6 @@ static struct sk_buff *gre_update_header(const struct vport *vport,
>          * packet originally had DF set.
>          */
>         skb->local_df = 1;
> -       __ip_select_ident(ip_hdr(skb), dst, 0);

Why is this no longer needed?



More information about the dev mailing list