From: Lars Landmark <larslan@solan.zapto.org>
To: lartc@vger.kernel.org
Subject: Re: [LARTC] Question on prio qdisc
Date: Wed, 02 Jul 2003 16:42:03 +0000 [thread overview]
Message-ID: <marc-lartc-105716442018775@msgid-missing> (raw)
In-Reply-To: <marc-lartc-105714958700490@msgid-missing>
On Wed, 2 Jul 2003, Cain, Joseph wrote:
>
> I have been doing some experiments with the
> prio qdisc. I haven't tried to understand the
> code, but the behavior I have observed in the
> experiments leads me to believe that the prio
> qdisc operates in the following manner when the
> interface queue is full:
> 1) Suppose that we are operating with the default
> 3 priority bands and the interface queue is full
> of packets of the lowest priority (indicated by the
> TOS byte).
> 2) Then suppose a new packet of highest priority is to be
> sent to the interface for queuing.
> 3) It appears to me that the newly arriving packet of
> highest priority will be dropped because the queue is
> full. Prio does not appear to drop one of the lower priority
> packets waiting in the queue to make room for the
> higher priority packet.
>
> The evidence for this conclusion is that I can set the
> "txqueuelen" to a large value to make ample room for
> queuing high priority packets. Then if the interface
> is sent a mixture of an overload of low priority
> packets and a small load of high priority packets, the
> high priority packet suffer just as high a packet loss
> percentage as the low priority packets. To me this indicates
> that they are getting dropped at the interface because the
> queue is full.
In prio_init(), a FIFO queue is establish for each of these
three bands. I thought that each of these FIFO queues could occupy
txqueuelen packages. According to you, this is not true. however if your
assumption is right, and you want to achieve dropping low priority package
if high priority package is entering, then you could just make a small
extension to the prio_enqueue code in linux/net/sched/sch_prio.c.
Class/band 0 has highest priority. If you unsuccessfully try to enqueue a
package to this class, you could make a call to prio_drop().
This function drop the package from lowest priority class, that has a package.
When returning from this function, there should be enough place to your high
priority package. Try now to enqueue this package once more,
and you should be done. Hopefully this will work. But it will work only if
Linux only count packages and do not count how many bytes each of these
FIFO queue holds.
Lars
_______________________________________________
LARTC mailing list / LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/mailman/listinfo/lartc HOWTO: http://lartc.org/
next prev parent reply other threads:[~2003-07-02 16:42 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-02 12:36 [LARTC] Question on prio qdisc Cain, Joseph
2003-07-02 16:28 ` Cheng Kwok Wing, William
2003-07-02 16:42 ` Lars Landmark [this message]
2003-07-02 19:29 ` Cain, Joseph
2003-07-07 18:08 ` Leonardo Balliache
2003-07-08 19:31 ` Cain, Joseph
2003-07-09 2:58 ` Leonardo Balliache
2003-07-09 3:35 ` Leonardo Balliache
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=marc-lartc-105716442018775@msgid-missing \
--to=larslan@solan.zapto.org \
--cc=lartc@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 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.