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

Jesse Gross jesse at nicira.com
Tue Oct 30 18:08:31 UTC 2012


On Mon, Oct 29, 2012 at 2:32 PM, 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>

Can you post a rebased version of this?  I can't get it to apply against master.

> diff --git a/NEWS b/NEWS
> index 99f7c4b..7a1fa93 100644
> --- a/NEWS
> +++ b/NEWS
> @@ -1,5 +1,6 @@
>  post-v1.9.0
>  --------------------
> +    - Tunnel header caching removed.

Let's throw this into 1.9.  Since Fedora has already moved to 3.6 and
this is a prerequisite, it would be nice to not force people to wait
until the next version.

de/openvswitch/tunnel.h b/include/openvswitch/tunnel.h
> index c494791..0938f70 100644
> --- a/include/openvswitch/tunnel.h
> +++ b/include/openvswitch/tunnel.h
> @@ -69,7 +69,6 @@ enum {
>  #define TNL_F_DF_DEFAULT       (1 << 4) /* Set DF bit if inherit off or
>                                           * not IP. */
>  #define TNL_F_PMTUD            (1 << 5) /* Enable path MTU discovery. */
> -#define TNL_F_HDR_CACHE                (1 << 6) /* Enable tunnel header caching. */

I think Ben's suggestion to add a placeholder comment explaining why
there is hole was a good one.

> diff --git a/lib/netdev-vport.c b/lib/netdev-vport.c
> index be6dd91..e8aa752 100644
> --- a/lib/netdev-vport.c
> +++ b/lib/netdev-vport.c
> @@ -789,10 +784,6 @@ unparse_tunnel_config(const char *name OVS_UNUSED, const char *type OVS_UNUSED,
>      }
>
>      flags = nl_attr_get_u32(a[OVS_TUNNEL_ATTR_FLAGS]);

We could move this line down to the place where we actually use the flags now.



More information about the dev mailing list