[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAAmHdhxyrwJXHysUU6KoXeTaRHK8Mxr5PH9j4drR_87T+Wnypg@mail.gmail.com>
Date: Tue, 13 Sep 2016 15:59:12 -0700
From: Michael Ma <make0818@...il.com>
To: Linux Kernel Network Developers <netdev@...r.kernel.org>
Subject: Modification to skb->queue_mapping affecting performance
Hi -
We currently use mqprio on ifb to work around the qdisc root lock
contention on the receiver side. The problem that we found was that
queue_mapping is already set when redirecting from ingress qdisc to
ifb (based on RX selection, I guess?) so the TX queue selection is not
based on priority.
Then we implemented a filter which can set skb->queue_mapping to 0 so
that TX queue selection can be done as expected and flows with
different priorities will go through different TX queues. However with
the queue_mapping recomputed, we found the achievable bandwidth with
small packets (512 bytes) dropped significantly if they're targeting
different queues. From perf profile I don't see any bottleneck from
CPU perspective.
Any thoughts on why modifying queue_mapping will have this kind of
effect? Also is there any better way of achieving receiver side
throttling using HTB while avoiding the qdisc root lock on ifb?
Thanks,
Michael
Powered by blists - more mailing lists