From: John Fastabend <john.fastabend@gmail.com>
To: Michael Ma <make0818@gmail.com>, Cong Wang <xiyou.wangcong@gmail.com>
Cc: Linux Kernel Network Developers <netdev@vger.kernel.org>
Subject: Re: qdisc spin lock
Date: Thu, 31 Mar 2016 20:44:05 -0700 [thread overview]
Message-ID: <56FDEE85.3020505@gmail.com> (raw)
In-Reply-To: <CAAmHdhxagKnLP1_5ZW7HTsVBu0TSFYKCvNstAEWN-NHrdnvvVQ@mail.gmail.com>
On 16-03-31 04:48 PM, Michael Ma wrote:
> I didn't really know that multiple qdiscs can be isolated using MQ so
> that each txq can be associated with a particular qdisc. Also we don't
> really have multiple interfaces...
MQ will assign a default qdisc to each txq and the default qdisc can
be changed to htb or any other qdisc of your choice.
>
> With this MQ solution we'll still need to assign transmit queues to
> different classes by doing some math on the bandwidth limit if I
> understand correctly, which seems to be less convenient compared with
> a solution purely within HTB.
>
Agreed.
> I assume that with this solution I can still share qdisc among
> multiple transmit queues - please let me know if this is not the case.
Nope sorry doesn't work that way unless you employ some sort of stacked
netdevice strategy which does start to get a bit complex. The basic hint
would be to stack some type of virtual netdev on top of a device and
run the htb qdisc there. Push traffic onto the netdev depending on the
class it belongs to. Its ugly yes.
Noting all that I posted an RFC patch some time back to allow writing
qdiscs that do not require taking the lock. I'll try to respin these
and submit them when net-next opens again. The next logical step is to
write a "better" HTB probably using a shared counter and dropping the
requirement that it be exact.
Sorry I didn't get a chance to look at the paper in your post so not
sure if they suggest something similar or not.
Thanks,
John
>
> 2016-03-31 15:16 GMT-07:00 Cong Wang <xiyou.wangcong@gmail.com>:
>> On Wed, Mar 30, 2016 at 12:20 AM, Michael Ma <make0818@gmail.com> wrote:
>>> As far as I understand the design of TC is to simplify locking schema
>>> and minimize the work in __qdisc_run so that throughput won’t be
>>> affected, especially with large packets. However if the scenario is
>>> that multiple classes in the queueing discipline only have the shaping
>>> limit, there isn’t really a necessary correlation between different
>>> classes. The only synchronization point should be when the packet is
>>> dequeued from the qdisc queue and enqueued to the transmit queue of
>>> the device. My question is – is it worth investing on avoiding the
>>> locking contention by partitioning the queue/lock so that this
>>> scenario is addressed with relatively smaller latency?
>>
>> If your HTB classes don't share bandwidth, why do you still make them
>> under the same hierarchy? IOW, you can just isolate them either with some
>> other qdisc or just separated interfaces.
next prev parent reply other threads:[~2016-04-01 3:44 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-03-30 7:20 qdisc spin lock Michael Ma
2016-03-31 19:18 ` Jesper Dangaard Brouer
2016-03-31 23:41 ` Michael Ma
2016-04-16 8:52 ` Andrew
2016-03-31 22:16 ` Cong Wang
2016-03-31 23:48 ` Michael Ma
2016-04-01 2:19 ` David Miller
2016-04-01 17:17 ` Michael Ma
2016-04-01 3:44 ` John Fastabend [this message]
2016-04-13 18:23 ` Michael Ma
2016-04-08 14:19 ` Eric Dumazet
2016-04-15 22:46 ` Michael Ma
2016-04-15 22:54 ` Eric Dumazet
2016-04-15 23:05 ` Michael Ma
2016-04-15 23:56 ` Eric Dumazet
2016-04-20 21:24 ` Michael Ma
2016-04-20 22:34 ` Eric Dumazet
2016-04-21 5:51 ` Michael Ma
2016-04-21 12:41 ` Eric Dumazet
2016-04-21 22:12 ` Michael Ma
2016-04-25 17:29 ` Michael Ma
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=56FDEE85.3020505@gmail.com \
--to=john.fastabend@gmail.com \
--cc=make0818@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=xiyou.wangcong@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.