Re: [PATCH] sched: QFQ - quick fair queue scheduler (v2)
From: Stephen Hemminger <hidden>
Date: 2011-03-02 23:56:04
On Wed, 02 Mar 2011 18:31:27 +0100 Eric Dumazet [off-list ref] wrote:
Le mercredi 02 mars 2011 à 17:18 +0100, Eric Dumazet a écrit :quoted
Le mercredi 02 mars 2011 à 08:11 -0800, Stephen Hemminger a écrit :quoted
I put the iproute2 code into the repository in the experimental branch.Thanks It seems as soon as packets are dropped, qdisc is frozen (no more packets dequeued) Hmm...It seems class deletes are buggy. After one "tc class del dev $ETH classid 11:1 ..." a "tc -s -d qdisc show dev $ETH" triggers an Oops [ 414.517709] general protection fault: 0000 [#1] SMP [ 414.517894] last sysfs file: /sys/devices/virtual/net/gre34/ifindex [ 414.517956] CPU 3 [ 414.517995] Modules linked in: sch_qfq sch_cbq ip_gre gre dummy ipmi_devintf ipmi_si ipmi_msghandler dm_mod video tg3 libphy sg [last unloaded: ip_tables] [ 414.518663] [ 414.518717] Pid: 4692, comm: tc Not tainted 2.6.38-rc5-02726-gd486b8c-dirty #554 HP ProLiant BL460c G6 [ 414.518905] RIP: 0010:[<ffffffff8145118e>] [<ffffffff8145118e>] tc_fill_qdisc+0xbe/0x300 [ 414.519025] RSP: 0018:ffff88011a123878 EFLAGS: 00010283 [ 414.519085] RAX: a00e6660ffffffff RBX: 0000000000000002 RCX: 0000000000000024 [ 414.519149] RDX: ffff880078683334 RSI: 0000000000000000 RDI: ffff88007867b400 [ 414.519212] RBP: ffff88011a123928 R08: ffff880078683000 R09: 0000000000000002 [ 414.519276] R10: 00000000000001f0 R11: 00000000000001e0 R12: ffff88007867b400 [ 414.519340] R13: ffff88011cb1779c R14: ffff880078683324 R15: 0000000000001254 [ 414.519405] FS: 0000000000000000(0000) GS:ffff88007fc40000(0063) knlGS:00000000f77778e0 [ 414.519486] CS: 0010 DS: 002b ES: 002b CR0: 0000000080050033 [ 414.519553] CR2: 00000000005ffc80 CR3: 0000000078087000 CR4: 00000000000006e0 [ 414.519616] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 414.519680] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 [ 414.519744] Process tc (pid: 4692, threadinfo ffff88011a122000, task ffff88011a1715d0) [ 414.519823] Stack: [ 414.519876] ffff88011bbfb570 000000004d6e7c8e ffff880078683324 0000000000000000 [ 414.520095] ffff88011cb1789c ffff88007867b400 ffff8800786832bc 0000000400000003 [ 414.520312] 0000000000000000 0000000000000000 0000000000000000 0000000000000000 [ 414.520531] Call Trace: [ 414.520602] [<ffffffff81451469>] tc_dump_qdisc_root+0x99/0x100 [ 414.520666] [<ffffffff81452680>] tc_dump_qdisc+0x80/0x100 [ 414.520729] [<ffffffff8146a50b>] netlink_dump+0x6b/0x1e0 [ 414.520791] [<ffffffff810f5d16>] ? kmem_cache_alloc_trace+0xb6/0x100 [ 414.520855] [<ffffffff8146d2ef>] netlink_dump_start+0x16f/0x190 [ 414.520918] [<ffffffff81452600>] ? tc_dump_qdisc+0x0/0x100 [ 414.520981] [<ffffffff81443b36>] rtnetlink_rcv_msg+0xb6/0x270 [ 414.521043] [<ffffffff81443a80>] ? rtnetlink_rcv_msg+0x0/0x270 [ 414.521106] [<ffffffff8146b609>] netlink_rcv_skb+0x99/0xc0 [ 414.521167] [<ffffffff81443a65>] rtnetlink_rcv+0x25/0x40 [ 414.521229] [<ffffffff8146b379>] netlink_unicast+0x2a9/0x2b0 [ 414.521292] [<ffffffff8142c3e3>] ? memcpy_fromiovec+0x63/0x80 [ 414.521354] [<ffffffff8146c30d>] netlink_sendmsg+0x24d/0x390 [ 414.521418] [<ffffffff81421510>] sock_sendmsg+0xc0/0xf0 [ 414.521482] [<ffffffff810b699a>] ? unlock_page+0x2a/0x40 [ 414.521545] [<ffffffff81421262>] ? move_addr_to_kernel+0x62/0x70 [ 414.521608] [<ffffffff8144d59f>] ? verify_compat_iovec+0x8f/0x100 [ 414.521685] [<ffffffff814222b0>] sys_sendmsg+0x180/0x300 [ 414.521747] [<ffffffff810d682c>] ? __pte_alloc+0xdc/0x100 [ 414.521809] [<ffffffff810d6992>] ? handle_mm_fault+0x142/0x1c0 [ 414.521872] [<ffffffff81569594>] ? do_page_fault+0x274/0x490 [ 414.521935] [<ffffffff81421f41>] ? sys_getsockname+0xa1/0xb0 [ 414.521997] [<ffffffff81421909>] ? sys_recvmsg+0x49/0x80 [ 414.522059] [<ffffffff8144d164>] compat_sys_sendmsg+0x14/0x20 [ 414.522121] [<ffffffff8144e08d>] compat_sys_socketcall+0x19d/0x1f0 [ 414.522185] [<ffffffff8102d640>] sysenter_dispatch+0x7/0x2e [ 414.522246] Code: 06 49 8d 56 10 45 89 7e 0c 66 41 89 46 04 8b 85 58 ff ff ff 41 c6 46 10 00 41 89 46 08 c6 42 01 00 66 c7 42 02 00 00 49 8b 45 68 <48> 8b 00 8b 80 c0 00 00 00 89 42 04 8b 85 5c ff ff ff 89 42 0c [ 414.524636] RIP [<ffffffff8145118e>] tc_fill_qdisc+0xbe/0x300 [ 414.524734] RSP <ffff88011a123878> [ 414.524799] ---[ end trace 513a4307e5c34d00 ]---
Most of the class code was copied from DRR. Does it have the same problem?