On Fri,  3 Nov 2017 11:50:47 -0400
Manish Kurup <kurup.man...@gmail.com> wrote:

> Using a spinlock in the VLAN action causes performance issues when the VLAN
> action is used on multiple cores. Rewrote the VLAN action to use RCU read
> locking for reads and updates instead.
> 
> Acked-by: Jamal Hadi Salim <j...@mojatatu.com>
> Acked-by: Jiri Pirko <j...@mellanox.com>
> Signed-off-by: Manish Kurup <manish.ku...@verizon.com>
> ---
>  include/net/tc_act/tc_vlan.h | 46 +++++++++++++++++++++------
>  net/sched/act_vlan.c         | 75
> ++++++++++++++++++++++++++++++-------------- 2 files changed, 88
> insertions(+), 33 deletions(-)
...
>  
> +static void tcf_vlan_cleanup(struct tc_action *a, int bind)
> +{
> +     struct tcf_vlan *v = to_vlan(a);
> +     struct tcf_vlan_params *p;
> +
> +     p = rcu_dereference_protected(v->vlan_p, 1);
> +     kfree_rcu(p, rcu);
> +}
> +
>  static int tcf_vlan_dump(struct sk_buff *skb, struct tc_action *a,
>                        int bind, int ref)
>  {
>       unsigned char *b = skb_tail_pointer(skb);
>       struct tcf_vlan *v = to_vlan(a);
> +     struct tcf_vlan_params *p = rtnl_dereference(v->vlan_p);
nack. This fails reverse xmas-tree.

Reply via email to