From 92eb1d477145b2e7780b5002e856f70b8c3d74da Mon Sep 17 00:00:00 2001 From: Jesse Gross Date: Wed, 28 Nov 2012 14:01:52 -0800 Subject: openvswitch: Use RCU callback when detaching netdevices. Currently, each time a device is detached from an OVS datapath we call synchronize RCU before freeing associated data structures. However, if a bridge is deleted (which detaches all ports) when many devices are connected then there can be a long delay. This switches to use call_rcu() to group the cost together. Reported-by: Justin Pettit Signed-off-by: Jesse Gross --- net/openvswitch/vport-netdev.h | 3 +++ 1 file changed, 3 insertions(+) (limited to 'net/openvswitch/vport-netdev.h') diff --git a/net/openvswitch/vport-netdev.h b/net/openvswitch/vport-netdev.h index f7072a25c604..6478079b3417 100644 --- a/net/openvswitch/vport-netdev.h +++ b/net/openvswitch/vport-netdev.h @@ -20,12 +20,15 @@ #define VPORT_NETDEV_H 1 #include +#include #include "vport.h" struct vport *ovs_netdev_get_vport(struct net_device *dev); struct netdev_vport { + struct rcu_head rcu; + struct net_device *dev; }; -- cgit v1.2.3