net_sched: switch to exit_batch for action pernet ops
Since we now hold RTNL lock in tc_action_net_exit(), it is good to batch them to speedup tc action dismantle. Cc: Jamal Hadi Salim <jhs@mojatatu.com> Cc: Jiri Pirko <jiri@resnulli.us> Signed-off-by: Cong Wang <xiyou.wangcong@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
cdc0974f10
commit
039af9c66b
@@ -120,12 +120,19 @@ int tc_action_net_init(struct tc_action_net *tn,
|
||||
void tcf_idrinfo_destroy(const struct tc_action_ops *ops,
|
||||
struct tcf_idrinfo *idrinfo);
|
||||
|
||||
static inline void tc_action_net_exit(struct tc_action_net *tn)
|
||||
static inline void tc_action_net_exit(struct list_head *net_list,
|
||||
unsigned int id)
|
||||
{
|
||||
struct net *net;
|
||||
|
||||
rtnl_lock();
|
||||
tcf_idrinfo_destroy(tn->ops, tn->idrinfo);
|
||||
list_for_each_entry(net, net_list, exit_list) {
|
||||
struct tc_action_net *tn = net_generic(net, id);
|
||||
|
||||
tcf_idrinfo_destroy(tn->ops, tn->idrinfo);
|
||||
kfree(tn->idrinfo);
|
||||
}
|
||||
rtnl_unlock();
|
||||
kfree(tn->idrinfo);
|
||||
}
|
||||
|
||||
int tcf_generic_walker(struct tc_action_net *tn, struct sk_buff *skb,
|
||||
|
||||
Reference in New Issue
Block a user