On Tue, 2016-09-13 at 17:23 -0700, Michael Ma wrote: > If I understand correctly this is still to associate a qdisc with each > ifb TXQ. How should I do this if I want to use HTB? I guess I'll need > to divide the bandwidth of each class in HTB by the number of TX > queues for each individual HTB qdisc associated? > > My original idea was to attach a HTB qdisc for each ifb queue > representing a set of flows not sharing bandwidth with others so that > root lock contention still happens but only affects flows in the same > HTB. Did I understand the root lock contention issue incorrectly for > ifb? I do see some comments in __dev_queue_xmit() about using a > different code path for software devices which bypasses > __dev_xmit_skb(). Does this mean ifb won't go through > __dev_xmit_skb()?
You can install HTB on all of your MQ children for sure. Again, there is no qdisc lock contention if you properly use MQ. Now if you _need_ to install a single qdisc for whatever reason, then maybe you want to use a single rx queue on the NIC, to reduce lock contention ;)