Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 15dc36eb authored by Eric Dumazet's avatar Eric Dumazet Committed by David S. Miller
Browse files

pkt_sched: do not use rcu in tc_dump_qdisc()



Like all rtnetlink dump operations, we hold RTNL in tc_dump_qdisc(),
so we do not need to use rcu protection to protect list of netdevices.

This will allow preemption to occur, thus reducing latencies.
Following patch adds explicit cond_resched() calls.

Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent a19a7ec8
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -1434,9 +1434,9 @@ static int tc_dump_qdisc(struct sk_buff *skb, struct netlink_callback *cb)
	s_idx = cb->args[0];
	s_q_idx = q_idx = cb->args[1];

	rcu_read_lock();
	idx = 0;
	for_each_netdev_rcu(net, dev) {
	ASSERT_RTNL();
	for_each_netdev(net, dev) {
		struct netdev_queue *dev_queue;

		if (idx < s_idx)
@@ -1459,8 +1459,6 @@ cont:
	}

done:
	rcu_read_unlock();

	cb->args[0] = idx;
	cb->args[1] = q_idx;