From: Jarek Poplawski <jarkao2@gmail.com>
To: "Duyck, Alexander H" <alexander.h.duyck@intel.com>
Cc: "netdev@vger.kernel.org" <netdev@vger.kernel.org>,
"herbert@gondor.apana.org.au" <herbert@gondor.apana.org.au>,
"davem@davemloft.net" <davem@davemloft.net>,
"kaber@trash.net" <kaber@trash.net>
Subject: Re: [RFC PATCH] sched: only dequeue if packet can be queued to hardware queue.
Date: Fri, 19 Sep 2008 19:35:23 +0200 [thread overview]
Message-ID: <20080919173523.GA2888@ami.dom.local> (raw)
In-Reply-To: <80769D7B14936844A23C0C43D9FBCF0F1598E4A3@orsmsx501.amr.corp.intel.com>
On Fri, Sep 19, 2008 at 09:26:29AM -0700, Duyck, Alexander H wrote:
...
> Actually most of that is handled in the fact that netif_tx_wake_queue
> will call __netif_schedule when it decides to wake up a queue that has
> been stopped. Putting it in skb_dequeue is unnecessary,
You are right, I've just noticed this too, and I'll withdraw this change.
> and the way
> you did it would cause issues because you should be scheduling the root
> qdisc, not the one currently doing the dequeue.
I think, this is the right way (but useless here).
> My bigger concern is the fact one queue is back to stopping all queues.
> By using one global XOFF state, you create head-of-line blocking. I can
> see the merit in this approach but the problem is for multiqueue the
> queues really should be independent. What your change does is reduce the
> benefit of having multiqueue by throwing in a new state which pretty much
> matches what netif_stop/wake_queue used to do in the 2.6.26 version of tx
> multiqueue.
Do you mean netif_tx_stop_all_queues() and then netif_tx_wake_queue()
before netif_tx_wake_all_queues()? OK, I'll withdraw this patch too.
> Also changing dequeue_skb will likely cause additional issues for
> several qdiscs as it doesn't report anything up to parent queues, as a
> result you will end up with qdiscs like prio acting more like multiq
> because they won't know if a queue is empty, stopped, or throttled.
> Also I believe this will cause a panic on pfifo_fast and several other
> qdiscs because some check to see if there are packets in the queue and
> if so dequeue with the assumption that they will get a packet out. You
> will need to add checks for this to resolve this issue.
I really can't get your point. Don't you mean skb_dequeue()?
dequeue_skb() is used only by qdisc_restart()...
> The one thing I liked about my approach was that after I was done you
> could have prio as a parent of multiq leaves or multiq as the parent of
> prio leaves and all the hardware queues would receive the packets in the
> same order as the result.
I'm not against your approach, but I'd like to be sure these
complications are really worth of it. Of course, if my proposal, the
first take of 3 patches, doesn't work as you predict (and I doubt),
then we can forget about it.
Thanks,
Jarek P.
next prev parent reply other threads:[~2008-09-19 17:34 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-18 6:43 [RFC PATCH] sched: only dequeue if packet can be queued to hardware queue Alexander Duyck
2008-09-18 6:56 ` Alexander Duyck
2008-09-18 9:46 ` David Miller
2008-09-18 14:51 ` Alexander Duyck
2008-09-18 19:44 ` Jarek Poplawski
2008-09-19 1:11 ` Alexander Duyck
2008-09-19 9:17 ` Jarek Poplawski
2008-09-19 10:32 ` [take 2] " Jarek Poplawski
2008-09-19 13:07 ` [PATCH] pkt_sched: Fix TX state checking in qdisc_run() Jarek Poplawski
2008-09-19 14:44 ` [PATCH take2] " Jarek Poplawski
2008-09-19 17:49 ` Jarek Poplawski
2008-09-21 5:18 ` David Miller
2008-09-19 17:46 ` [take 2] Re: [RFC PATCH] sched: only dequeue if packet can be queued to hardware queue Jarek Poplawski
2008-09-19 15:16 ` Jarek Poplawski
2008-09-19 16:26 ` Duyck, Alexander H
2008-09-19 17:35 ` Jarek Poplawski [this message]
2008-09-19 18:01 ` Duyck, Alexander H
2008-09-19 18:51 ` Jarek Poplawski
2008-09-19 21:43 ` Duyck, Alexander H
2008-09-19 16:37 ` Jarek Poplawski
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=20080919173523.GA2888@ami.dom.local \
--to=jarkao2@gmail.com \
--cc=alexander.h.duyck@intel.com \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=kaber@trash.net \
--cc=netdev@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).