From: Patrick McHardy <kaber@trash.net>
To: Herbert Xu <herbert@gondor.apana.org.au>
Cc: David Miller <davem@davemloft.net>,
jussi.kivilinna@mbnet.fi, jarkao2@gmail.com,
netdev@vger.kernel.org
Subject: Re: qdisc_enqueue, NET_XMIT_SUCCESS and kfree_skb
Date: Tue, 19 Aug 2008 15:08:57 +0200 [thread overview]
Message-ID: <48AAC5E9.7050809@trash.net> (raw)
In-Reply-To: <E1KVQfg-0001Qf-00@gondolin.me.apana.org.au>
Herbert Xu wrote:
> David Miller <davem@davemloft.net> wrote:
>> In fact, as I look at how TBF and NETEM want to use ->requeue() they
>> could just the same implement it using my suggested alternative for
>> ->requeue() which is just an SKB list ala gso_list hung off of the
>> qdisc.
>
> For TBF at least its requeue is actually a bit more sophisticated.
> For example, if you hang a prio qdisc off a TBF, then when the
> packet is requeued into the prio, the next time TBF dequeues it,
> it may get a different packet (of a higher priority).
>
> If you stick it to a list without requeueing, then packets of a
> higher priority won't be able to jump the queue anymore.
>
> It might be possible to rewrite TBF to not use requeueing, after
> all HTB does it all without requeueing. However as it stands,
> TBF does need it.
>
> I haven't followed this thread closely so what is the main problem
> with requeueing (apart from being abused by things like LLTX drivers
> and/or NETEM, nothing other than qdiscs like TBF should use it)?
>
> Another possibility would to replace requeue by a peek+force_dequeue
> interface, where you can peek at the next packet, and you could then
> dequeue that particular packet if you're satisfied.
That would be fine for TBF since it only needs to check whether
the current packet exceeds the limit and reschedule otherwise.
HFSC OTOH really needs to know the length of the next packet for
calculating the deadline.
next prev parent reply other threads:[~2008-08-19 13:09 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-31 17:14 [PATCH] net_sched: Add qdisc __NET_XMIT_STOLEN flag Jarek Poplawski
2008-08-01 6:15 ` Patrick McHardy
2008-08-01 7:58 ` Jarek Poplawski
2008-08-01 10:19 ` [PATCH] net_sched: Add qdisc __NET_XMIT_BYPASS flag Jarek Poplawski
2008-08-04 1:25 ` David Miller
2008-08-04 6:28 ` [PATCH take 2] " Jarek Poplawski
2008-08-04 6:42 ` David Miller
2008-08-04 6:51 ` Jarek Poplawski
2008-08-04 8:55 ` [PATCH 1/2 respin] net_sched: Add qdisc __NET_XMIT_STOLEN flag Jarek Poplawski
2008-08-05 5:38 ` David Miller
2008-08-04 8:57 ` [PATCH 2/2 respin] net_sched: Add qdisc __NET_XMIT_BYPASS flag Jarek Poplawski
2008-08-05 6:14 ` David Miller
2008-08-05 6:34 ` Jarek Poplawski
2008-08-05 6:31 ` David Miller
2008-08-05 6:47 ` Jarek Poplawski
2008-08-04 18:35 ` [PATCH take 2] " Jussi Kivilinna
2008-08-04 21:03 ` Jarek Poplawski
2008-08-05 12:43 ` Jussi Kivilinna
2008-08-05 15:50 ` Jarek Poplawski
2008-08-06 19:42 ` qdisc_enqueue, NET_XMIT_SUCCESS and kfree_skb (Was: Re: [PATCH take 2] net_sched: Add qdisc __NET_XMIT_BYPASS flag) Jussi Kivilinna
2008-08-06 21:52 ` Jarek Poplawski
2008-08-07 3:26 ` qdisc_enqueue, NET_XMIT_SUCCESS and kfree_skb David Miller
2008-08-07 5:09 ` David Miller
2008-08-07 6:24 ` Jarek Poplawski
2008-08-07 10:09 ` Jarek Poplawski
2008-08-07 10:10 ` David Miller
2008-08-07 10:31 ` Jarek Poplawski
2008-08-07 10:45 ` David Miller
2008-08-07 11:39 ` Jarek Poplawski
2008-08-07 11:36 ` Jussi Kivilinna
2008-08-07 12:05 ` Jarek Poplawski
2008-08-18 6:52 ` David Miller
2008-08-19 12:50 ` Herbert Xu
2008-08-19 13:08 ` Patrick McHardy [this message]
2008-08-19 13:11 ` Herbert Xu
2008-08-19 13:20 ` Patrick McHardy
2008-08-19 13:42 ` Herbert Xu
2008-08-19 20:10 ` Denys Fedoryshchenko
2008-08-19 20:21 ` Jarek Poplawski
2008-08-19 20:26 ` David Miller
2008-08-07 11:40 ` qdisc_enqueue, NET_XMIT_SUCCESS and kfree_skb (Was: Re: [PATCH take 2] net_sched: Add qdisc __NET_XMIT_BYPASS flag) Jussi Kivilinna
2008-08-07 12:23 ` Jarek Poplawski
2008-08-05 21:22 ` [PATCH take 2] net_sched: Add qdisc __NET_XMIT_BYPASS flag David Miller
2008-08-04 6:48 ` [PATCH take 3] " 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=48AAC5E9.7050809@trash.net \
--to=kaber@trash.net \
--cc=davem@davemloft.net \
--cc=herbert@gondor.apana.org.au \
--cc=jarkao2@gmail.com \
--cc=jussi.kivilinna@mbnet.fi \
--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).