All of lore.kernel.org
 help / color / mirror / Atom feed
* [LARTC] HFSC traffic loss bug, kernel 2.6.16.24
@ 2006-09-10 15:28 Leo Wetz
  2006-09-13 16:38 ` Patrick McHardy
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Leo Wetz @ 2006-09-10 15:28 UTC (permalink / raw)
  To: lartc

[-- Attachment #1: Type: text/plain, Size: 1279 bytes --]

Hello,

I have finally managed to understand HFSC up to a level which allowed me to
create a QoS script which maintains low VoIP latency while running stuff
like eMule.

Unfortunately, HFSC seems to have a severe bug.
Why do I consider this as a bug defenitely?
Well, my script runs without any errors, then QoS works perfectly for some
hours, no error messages in kernel log.
Then randomly the kernel starts saying this:

Sep 10 17:14:51 router kernel: HFSC: Non-work-conserving qdisc ?
Sep 10 17:14:56 router kernel: printk: 266 messages suppressed.
Sep 10 17:14:56 router kernel: HFSC: Non-work-conserving qdisc ?
Sep 10 17:15:01 router kernel: printk: 259 messages suppressed.
Sep 10 17:15:01 router kernel: HFSC: Non-work-conserving qdisc ?
Sep 10 17:15:06 router kernel: printk: 294 messages suppressed.
Sep 10 17:15:06 router kernel: HFSC: Non-work-conserving qdisc ?

It floods the whole kernel log with this.
Traffic is also heavily affected by package loss when this happens, thus I
cannot ignore it.
I have to check my kernel log when I notice that I cannot access websites
anymore and then restart QoS manually.

My complete QoS script is attached to this mail.
If this is not the right location for the bug report please tell me whom I
should contact.

Thanks, Leo


[-- Attachment #2: qos --]
[-- Type: application/octet-stream, Size: 2383 bytes --]

#!/bin/sh

IF="dev ppp0"
IFUP=63kbps
P2PUP=50kbps

qROOT="1:0"
cMAIN="1:1"

cHTB="1:88"
cSKYPE="1:15"
cDEFAULT="1:20"

qHTB="10:0"
cP2P="10:10"
cEMULE="10:11"
cFTP="10:12"
cMIRANDA="10:13"
cAPACHE="10:14"

hSKYPE=115
hEMULE=111
hFTP=112
hMIRANDA=113
hAPACHE=114

MTU="1492"
q1="quantum 1492"
q2="quantum 2984"
q3="quantum 4476"
q5="quantum 7460"
addc="tc class add $IF parent"
addq="tc qdisc add $IF parent"
addf="tc filter add $IF parent"
fst="prio 1 protocol ip"

qos_enable()
{
	tc qdisc add $IF root handle $qROOT hfsc default 20

	$addc $qROOT classid $cMAIN 	hfsc ls rate $IFUP ul rate $IFUP
	$addc $cMAIN classid $cHTB		hfsc ls rate 20kbps ul rate $P2PUP
	$addc $cMAIN classid $cSKYPE	hfsc rt umax $MTU dmax 30ms rate 10kbps
	$addc $cMAIN classid $cDEFAULT	hfsc sc umax $MTU dmax 80ms rate 33kbps ul rate 42kbps

	$addq $cHTB handle $qHTB		htb r2q 4
	$addc $qHTB classid $cP2P		htb rate $P2PUP mtu $MTU
	$addc $cP2P classid $cEMULE		htb	rate 16kbps	ceil $P2PUP $q1 prio 4
	$addc $cP2P classid $cFTP		htb rate 10kbps	ceil $P2PUP $q1 prio 3
	$addc $cP2P classid $cMIRANDA	htb	rate 12kbps	ceil $P2PUP $q1 prio 2
	$addc $cP2P classid $cAPACHE	htb	rate 12kbps	ceil $P2PUP $q1 prio 1

	$addf $qROOT $fst handle $hSKYPE 	fw flowid $cSKYPE
	$addf $qROOT $fst handle $hEMULE 	fw flowid $cHTB
	$addf $qROOT $fst handle $hFTP 		fw flowid $cHTB
	$addf $qROOT $fst handle $hMIRANDA 	fw flowid $cHTB
	$addf $qROOT $fst handle $hAPACHE	fw flowid $cHTB

	$addf $qHTB $fst handle $hEMULE 	fw flowid $cEMULE
	$addf $qHTB $fst handle $hFTP 		fw flowid $cFTP
	$addf $qHTB $fst handle $hMIRANDA 	fw flowid $cMIRANDA
	$addf $qHTB $fst handle $hAPACHE	fw flowid $cAPACHE

	$addq $cEMULE	handle 101: sfq perturb 10  
	$addq $cFTP		handle 201: sfq perturb 10
	$addq $cMIRANDA handle 301: sfq perturb 10
	$addq $cAPACHE	handle 401: sfq perturb 10
	$addq $cSKYPE	handle 501: sfq perturb 10
	$addq $cDEFAULT	handle 601: sfq perturb 10
}

qos_disable()
{
	tc qdisc del $IF root
	sleep 1
}


qos_restart()
{
	qos_disable
	qos_enable
}

case "$1" in
    start)
    echo "Enabling QoS..."
    qos_enable
    ;;
    stop)
    echo "Disabling QoS..."
    qos_disable
    ;;
    restart)
    echo  "Restarting QoS... "
    qos_restart
    ;;
    *)
    echo "*** Usage: QoS {start|stop|restart}"
    ;;
esac


[-- Attachment #3: Type: text/plain, Size: 143 bytes --]

_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [LARTC] HFSC traffic loss bug, kernel 2.6.16.24
  2006-09-10 15:28 [LARTC] HFSC traffic loss bug, kernel 2.6.16.24 Leo Wetz
@ 2006-09-13 16:38 ` Patrick McHardy
  2006-09-14 11:52 ` Re : " gerald HUET
  2006-09-15  4:50 ` Patrick McHardy
  2 siblings, 0 replies; 4+ messages in thread
From: Patrick McHardy @ 2006-09-13 16:38 UTC (permalink / raw)
  To: lartc

Leo Wetz wrote:
> Hello,
> 
> I have finally managed to understand HFSC up to a level which allowed me to
> create a QoS script which maintains low VoIP latency while running stuff
> like eMule.
> 
> Unfortunately, HFSC seems to have a severe bug.
> Why do I consider this as a bug defenitely?
> Well, my script runs without any errors, then QoS works perfectly for some
> hours, no error messages in kernel log.
> Then randomly the kernel starts saying this:
> 
> Sep 10 17:14:51 router kernel: HFSC: Non-work-conserving qdisc ?
> Sep 10 17:14:56 router kernel: printk: 266 messages suppressed.
> Sep 10 17:14:56 router kernel: HFSC: Non-work-conserving qdisc ?
> Sep 10 17:15:01 router kernel: printk: 259 messages suppressed.
> Sep 10 17:15:01 router kernel: HFSC: Non-work-conserving qdisc ?
> Sep 10 17:15:06 router kernel: printk: 294 messages suppressed.
> Sep 10 17:15:06 router kernel: HFSC: Non-work-conserving qdisc ?
> 
> It floods the whole kernel log with this.
> Traffic is also heavily affected by package loss when this happens, thus I
> cannot ignore it.
> I have to check my kernel log when I notice that I cannot access websites
> anymore and then restart QoS manually.
> 
> My complete QoS script is attached to this mail.
> If this is not the right location for the bug report please tell me whom I
> should contact.

This is not a bug. You can't attach non-work-conserving qdiscs to
HFSC (and it doesn't make any sense). Just use classes instead
of adding HTB qdiscs.


_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re : [LARTC] HFSC traffic loss bug, kernel 2.6.16.24
  2006-09-10 15:28 [LARTC] HFSC traffic loss bug, kernel 2.6.16.24 Leo Wetz
  2006-09-13 16:38 ` Patrick McHardy
@ 2006-09-14 11:52 ` gerald HUET
  2006-09-15  4:50 ` Patrick McHardy
  2 siblings, 0 replies; 4+ messages in thread
From: gerald HUET @ 2006-09-14 11:52 UTC (permalink / raw)
  To: lartc

 hello,

Could you please explain what is a "non-work-conserving qdisc" and why it doesn't make sense ?

Gérald

----- Message d'origine ----
De : Patrick McHardy <kaber@trash.net>
À : Leo Wetz <spam-goes-to-dev-null@gmx.net>
Cc : lartc@mailman.ds9a.nl
Envoyé le : Mercredi, 13 Septembre 2006, 4h38mn 16s
Objet : Re: [LARTC] HFSC traffic loss bug, kernel 2.6.16.24

Leo Wetz wrote:
> Hello,
> 
> I have finally managed to understand HFSC up to a level which allowed me to
> create a QoS script which maintains low VoIP latency while running stuff
> like eMule.
> 
> Unfortunately, HFSC seems to have a severe bug.
> Why do I consider this as a bug defenitely?
> Well, my script runs without any errors, then QoS works perfectly for some
> hours, no error messages in kernel log.
> Then randomly the kernel starts saying this:
> 
> Sep 10 17:14:51 router kernel: HFSC: Non-work-conserving qdisc ?
> Sep 10 17:14:56 router kernel: printk: 266 messages suppressed.
> Sep 10 17:14:56 router kernel: HFSC: Non-work-conserving qdisc ?
> Sep 10 17:15:01 router kernel: printk: 259 messages suppressed.
> Sep 10 17:15:01 router kernel: HFSC: Non-work-conserving qdisc ?
> Sep 10 17:15:06 router kernel: printk: 294 messages suppressed.
> Sep 10 17:15:06 router kernel: HFSC: Non-work-conserving qdisc ?
> 
> It floods the whole kernel log with this.
> Traffic is also heavily affected by package loss when this happens, thus I
> cannot ignore it.
> I have to check my kernel log when I notice that I cannot access websites
> anymore and then restart QoS manually.
> 
> My complete QoS script is attached to this mail.
> If this is not the right location for the bug report please tell me whom I
> should contact.

This is not a bug. You can't attach non-work-conserving qdiscs to
HFSC (and it doesn't make any sense). Just use classes instead
of adding HTB qdiscs.


_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc



_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Re : [LARTC] HFSC traffic loss bug, kernel 2.6.16.24
  2006-09-10 15:28 [LARTC] HFSC traffic loss bug, kernel 2.6.16.24 Leo Wetz
  2006-09-13 16:38 ` Patrick McHardy
  2006-09-14 11:52 ` Re : " gerald HUET
@ 2006-09-15  4:50 ` Patrick McHardy
  2 siblings, 0 replies; 4+ messages in thread
From: Patrick McHardy @ 2006-09-15  4:50 UTC (permalink / raw)
  To: lartc

gerald HUET wrote:
>  hello,
> 
> Could you please explain what is a "non-work-conserving qdisc" and why it doesn't make sense ?

A non-work-conserving qdisc is a qdisc that limits the total amount
of bandwidth by stopping to hand out packets when some limit is reached.
HFSC needs to know the length of the next packet to be sent to calculate
the deadline, to get it it dequeues the inner qdiscs, peeks at the
packet and requeues it again. When the inner qdisc is
non-work-conserving it might refuse to hand the packet to HFSC and
HFSC can not work properly. It does not make sense to do this since
HFSC can operate in non-work-conserving mode itself (using upper-limit
curves), so there is no need to attach further non-work-conserving
qdiscs as leaves.

> ----- Message d'origine ----
> De : Patrick McHardy <kaber@trash.net>
> À : Leo Wetz <spam-goes-to-dev-null@gmx.net>
> Cc : lartc@mailman.ds9a.nl
> Envoyé le : Mercredi, 13 Septembre 2006, 4h38mn 16s
> Objet : Re: [LARTC] HFSC traffic loss bug, kernel 2.6.16.24
> 
> Leo Wetz wrote:
> 
>>Sep 10 17:14:51 router kernel: HFSC: Non-work-conserving qdisc ?
>>Sep 10 17:14:56 router kernel: printk: 266 messages suppressed.
>>Sep 10 17:14:56 router kernel: HFSC: Non-work-conserving qdisc ?
>>Sep 10 17:15:01 router kernel: printk: 259 messages suppressed.
>>Sep 10 17:15:01 router kernel: HFSC: Non-work-conserving qdisc ?
>>Sep 10 17:15:06 router kernel: printk: 294 messages suppressed.
>>Sep 10 17:15:06 router kernel: HFSC: Non-work-conserving qdisc ?
> 
> This is not a bug. You can't attach non-work-conserving qdiscs to
> HFSC (and it doesn't make any sense). Just use classes instead
> of adding HTB qdiscs.

_______________________________________________
LARTC mailing list
LARTC@mailman.ds9a.nl
http://mailman.ds9a.nl/cgi-bin/mailman/listinfo/lartc

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2006-09-15  4:50 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-09-10 15:28 [LARTC] HFSC traffic loss bug, kernel 2.6.16.24 Leo Wetz
2006-09-13 16:38 ` Patrick McHardy
2006-09-14 11:52 ` Re : " gerald HUET
2006-09-15  4:50 ` Patrick McHardy

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.