From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id 2DAEE3BA8E for ; Sat, 5 Jan 2019 06:35:12 -0500 (EST) Received: by mail-wr1-x444.google.com with SMTP id x10so38711047wrs.8 for ; Sat, 05 Jan 2019 03:35:12 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heistp.net; s=google; h=mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=e28dTzCoOM0Ko8HDHX1w6cjfHlM1OKVr4pcuxq6fLU8=; b=hQyT8UqFov/oGu3k8bVC/53Smn3u4OA1S0uB9gDRpFGFf6bPBKI+rry29AeGhGqI5o 3FIf5C8V3UaPDnzieUydt3+20447RtXmhLJdJivs8sN3qC1JGPOkdAguvfrij/tAkY8R MARlMPiHeCJAqyP9RyH2r43b3mcln5KgbO1hCrnNDoswiuQOhaZdB24eMmax/lcSKy1r 1PI+Lo1WaeWgTSpkQWHHK+ODmUgaTvMRIToDVPynN688oUql/Xivw2NIXMigT9LjXqOU XNulRkMD5rVaDni8PsIl53qU5Qi2FaeOk1MMYuu42e3viFikc2BExX1Y3GIqzhk91rzm K+fA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:subject:from:in-reply-to:date:cc :content-transfer-encoding:message-id:references:to; bh=e28dTzCoOM0Ko8HDHX1w6cjfHlM1OKVr4pcuxq6fLU8=; b=PNRKXWII9zE9P0KhvyCGhuZeQbeUVRH2jpIRM2wsif+PrYIVqehmVnDjgMhVyKXV2O QxRLRUcFxVHkAmez8mtREkaQZ6h8ONuyuGnX/F+LXJW8Xf+m47ds7lU/aoCw0ojS13Ni YpDXgQIeUPAhNlpQ9qKyTMcafCc7LYf2NEXpILQ+z0roxkQWs6vJsr8SR55HGEowzBxh +T4wi9/2rJ+hB0r4lfRkEVlmOXNUzF55BawVXXgLCMjao+C4K8b8JIIJbsS/aIEdevmh wK+S7lXvBQE5UyvmKVrN4tjT2br/nDBvdAGJmnJMcP+lg7ofpEeMnmR/yhv7u/w7WOOO Cuog== X-Gm-Message-State: AJcUukeVojH8DkIWoDgdYHreE7calsMa+ESdH+i6niUuvzHDsNm2VNya pGg5vJGNvNpJxevZFwrGSgSFDw== X-Google-Smtp-Source: ALg8bN6MD9cwlUKNPpPD2Qu1EjfZQJ64JMkOWy2eDQmLMGp0UV8UXo8iL8SVFial/e5/TcnJRTKo1g== X-Received: by 2002:adf:f091:: with SMTP id n17mr31581013wro.292.1546688111129; Sat, 05 Jan 2019 03:35:11 -0800 (PST) Received: from tron.luk.heistp.net (h-1169.lbcfree.net. [185.193.85.130]) by smtp.gmail.com with ESMTPSA id 10sm3841109wmy.40.2019.01.05.03.35.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 05 Jan 2019 03:35:10 -0800 (PST) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 11.5 \(3445.9.1\)) From: Pete Heist In-Reply-To: Date: Sat, 5 Jan 2019 12:35:08 +0100 Cc: Cake List Content-Transfer-Encoding: quoted-printable Message-Id: <25538C9F-4E88-4EA5-A796-4F4EDF5EF0E8@heistp.net> References: <5482A3CA-9C36-4DDE-A858-24D8467F70C7@heistp.net> <8736q8yumt.fsf@toke.dk> <4C422792-7E51-4DBA-A229-FA7D3F987FB6@heistp.net> <87zhsgxdao.fsf@toke.dk> <87wonjxvss.fsf@toke.dk> <0077CC34-490F-4D76-82D3-BE37B27F2E1C@heistp.net> <49A6DCF8-BE98-47F4-9C66-6B4288390A58@heistp.net> <52EF4FE7-0DF4-402F-A550-008A8F1DDDFA@toke.dk> To: =?utf-8?Q?Toke_H=C3=B8iland-J=C3=B8rgensen?= X-Mailer: Apple Mail (2.3445.9.1) Subject: Re: [Cake] cake infinite loop(?) with hfsc on one-armed router X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 05 Jan 2019 11:35:12 -0000 Giving you this also, for how it=E2=80=99s set up... IFACE=3Deth0 RATE=3D100mbit tc qdisc add dev $IFACE root handle 1: hfsc default 1 tc class add dev $IFACE parent 1: classid 1:1 hfsc ls rate $RATE ul rate = $RATE tc class add dev $IFACE parent 1: classid 1:2 hfsc ls rate $RATE ul rate = $RATE tc qdisc add dev $IFACE parent 1:1 cake besteffort dual-dsthost # = no-split-gso tc qdisc add dev $IFACE parent 1:2 cake besteffort dual-srchost # = no-split-gso tc filter add dev $IFACE parent 1:0 prio 1 protocol all \ basic match not "meta(vlan mask 0xfff gt 0x0)" flowid 1:1 tc filter add dev $IFACE parent 1:0 prio 2 protocol all \ basic match "meta(vlan mask 0xfff eq 0xce4)" flowid 1:2 > On Jan 5, 2019, at 12:26 PM, Pete Heist wrote: >=20 > Nope, egress on both eth0 and eth0.3300. >=20 > Dunce question, but I=E2=80=99m applying the patch manually because = copying it from email didn=E2=80=99t seem to work- how to get patch to = work? >=20 > root@apu1a:~/src/sch_cake# patch sch_cake.c ../hfsc.patch=20 > patching file sch_cake.c > patch: **** malformed patch at line 7: static void = cake_reconfigure(struct Qdisc *sch); > root@apu1a:~/src/sch_cake# git apply ../hfsc.patch > fatal: corrupt patch at line 7 >=20 >> On Jan 5, 2019, at 12:18 PM, Toke H=C3=B8iland-J=C3=B8rgensen = wrote: >>=20 >> Reverse, is that with an ingress qdisc? >>=20 >> -Toke >>=20 >> On 5 January 2019 12:06:44 CET, Pete Heist wrote: >>> Quick update to the trace because I had to apply the patch manually = and >>> missed one line to remove (qdisc_tree_reduce_backlog...), just so it >>> doesn=E2=80=99t through off the addresses for you, but it still does = the same >>> thing: >>>=20 >>> root@apu1a:~/src/sch_cake# [ 697.089814] BUG: unable to handle = kernel >>> NULL pointer dereference at 00000008 >>> [ 697.097009] IP: [] adjust_parent_qlen+0x37/0xf08 >>> [sch_cake] >>> [ 697.103491] *pde =3D 00000000=20 >>> [ 697.106405] Oops: 0000 [#1] SMP=20 >>> [ 697.109697] Modules linked in: em_meta cls_basic sch_hfsc >>> sch_cake(O) xt_ACCOUNT(O) ipt_REJECT xt_recent iptable_mangle >>> iptable_nat nfn >>> [ 697.160768] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G O=20= >>> 3.16.7-ckt9-voyage #1 >>> [ 697.168776] Hardware name: PC Engines APU/APU, BIOS 4.0 = 09/08/2014 >>> [ 697.174957] task: f5c811d0 ti: f5c86000 task.ti: f5c86000 >>> [ 697.180366] EIP: 0060:[] EFLAGS: 00210206 CPU: 1 >>> [ 697.185862] EIP is at adjust_parent_qlen+0x37/0xf08 [sch_cake] >>> [ 697.191701] EAX: f5cdd000 EBX: ffffffe8 ECX: 00000000 EDX: = 00000003 >>> [ 697.197977] ESI: 00010000 EDI: f2f00000 EBP: f5c99cf0 ESP: = f5c99ce8 >>> [ 697.204250] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 >>> [ 697.209648] CR0: 8005003b CR2: 00000008 CR3: 305c6000 CR4: = 00000790 >>> [ 697.215913] Stack: >>> [ 697.217932] 000000ba ef8f0000 f5c99d84 f9f3a12a e0b706f9 = 0209090a >>> 000011be 000017a8 >>> [ 697.225879] 00000000 00000004 000000b9 f2f02e80 00200246 = 000000ba >>> ef8f0100 c131996d >>> [ 697.233828] 93ceb5ff 0000009f f5486e80 f5486e80 f5c99dbc = f5c99d54 >>> 0209090a 0209480a >>> [ 697.241776] Call Trace: >>> [ 697.244239] [] adjust_parent_qlen+0x92d/0xf08 = [sch_cake] >>> [ 697.250524] [] ? _raw_spin_unlock_bh+0x13/0x15 >>> [ 697.255936] [] ? tc_classify_compat+0x2f/0x5f >>> [ 697.261254] [] ? tc_classify+0x1a/0x8b >>> [ 697.265967] [] 0xf9f45a8e >>> [ 697.269564] [] __dev_queue_xmit+0x210/0x35f >>> [ 697.274715] [] ? ip_fragment+0x79f/0x79f >>> [ 697.279601] [] dev_queue_xmit+0xa/0xc >>> [ 697.284231] [] neigh_resolve_output+0x12f/0x145 >>> [ 697.289727] [] ip_finish_output+0x352/0x73d >>> [ 697.294872] [] ip_output+0x73/0xaf >>> [ 697.299240] [] ip_forward_finish+0x66/0x6b >>> [ 697.304301] [] ip_forward+0x2b0/0x36d >>> [ 697.308930] [] ip_rcv_finish+0x267/0x29a >>> [ 697.313817] [] ip_rcv+0x2b4/0x338 >>> [ 697.318103] [] __netif_receive_skb_core+0x467/0x4b6 >>> [ 697.323944] [] __netif_receive_skb+0x48/0x59 >>> [ 697.329176] [] netif_receive_skb_internal+0x59/0x85 >>> [ 697.335017] [] napi_gro_complete+0x87/0x8c >>> [ 697.340080] [] napi_gro_flush+0x3e/0x53 >>> [ 697.344880] [] napi_complete+0x17/0x27 >>> [ 697.349594] [] 0xf81161a2 >>> [ 697.353186] [] net_rx_action+0x56/0x10e >>> [ 697.357986] [] __do_softirq+0x91/0x175 >>> [ 697.362701] [] ? = __hrtimer_tasklet_trampoline+0x1a/0x1a >>> [ 697.368886] [] do_softirq_own_stack+0x1d/0x23 >>> [ 697.374203] =20 >>> [ 697.376136] [] irq_exit+0x34/0x75 >>> [ 697.380646] [] do_IRQ+0x92/0xa6 >>> [ 697.384755] [] common_interrupt+0x2c/0x40 >>> [ 697.389733] [] ? cpuidle_enter_state+0x37/0x96 >>> [ 697.395137] [] cpuidle_enter+0xf/0x12 >>> [ 697.399768] [] cpu_startup_entry+0x135/0x1e1 >>> [ 697.405002] [] start_secondary+0x1a6/0x1ab >>> [ 697.410056] Code: 70 24 85 f6 74 5e 66 31 f6 81 fe 00 00 ff ff 74 = 53 >>> 8b 40 34 8b 00 f6 40 08 01 75 05 39 70 20 74 16 8b 58 18 83 eb 183 >>> [ 697.430491] EIP: [] adjust_parent_qlen+0x37/0xf08 >>> [sch_cake] SS:ESP 0068:f5c99ce8 >>> [ 697.438891] CR2: 0000000000000008 >>> [ 697.442220] ---[ end trace 4fdb119875d1f11d ]--- >>> [ 697.446847] Kernel panic - not syncing: Fatal exception in = interrupt >>> [ 697.453281] Kernel Offset: 0x0 from 0xc1000000 (relocation range: >>> 0xc0000000-0xf7ffdfff) >>> [ 697.461426] Rebooting in 30 seconds.. >>>=20 >>>=20 >>>> On Jan 5, 2019, at 11:59 AM, Pete Heist wrote: >>>>=20 >>>>=20 >>>>> On Jan 5, 2019, at 11:06 AM, Toke H=C3=B8iland-J=C3=B8rgensen = >>> wrote: >>>>>=20 >>>>> Hmm, try this version for 3.16 - probably doesn't work on later >>> kernels. >>>>> I'll look into a proper backport once you've confirmed that it = works >>> :) >>>>=20 >>>> Thanks! Quick reminder, I=E2=80=99ve only seen this happen with = hfsc, not >>> when cake is a leaf below htb, for whatever reason, but that = aside... >>>>=20 >>>> After the patch I was able to do an iperf3 upload through the >>> one-armed router (receive on default VLAN and send on tagged VLAN), = but >>> when I ran iperf3 in reverse mode (receive on tagged VLAN and send = on >>> default VLAN), this happened right away (also see compile warnings >>> below): >>>>=20 >>>>=20 >>>> root@apu1a:~# [ 341.268556] BUG: unable to handle kernel NULL >>> pointer dereference at 00000008 >>>> [ 341.275801] IP: [] adjust_parent_qlen+0x37/0xf1a >>> [sch_cake] >>>> [ 341.282290] *pde =3D 00000000=20 >>>> [ 341.285203] Oops: 0000 [#1] SMP=20 >>>> [ 341.288496] Modules linked in: em_meta cls_basic sch_hfsc >>> sch_cake(O) xt_ACCOUNT(O) ipt_REJECT xt_recent iptable_mangle >>> iptable_nat nfi >>>> [ 341.339568] CPU: 1 PID: 0 Comm: swapper/1 Tainted: G O=20= >>> 3.16.7-ckt9-voyage #1 >>>> [ 341.347576] Hardware name: PC Engines APU/APU, BIOS 4.0 = 09/08/2014 >>>> [ 341.353765] task: f5c811d0 ti: f5c86000 task.ti: f5c86000 >>>> [ 341.359173] EIP: 0060:[] EFLAGS: 00210206 CPU: 1 >>>> [ 341.364669] EIP is at adjust_parent_qlen+0x37/0xf1a [sch_cake] >>>> [ 341.370508] EAX: f5d65000 EBX: ffffffe8 ECX: 00000000 EDX: >>> 00000003 >>>> [ 341.376774] ESI: 00010000 EDI: f2900000 EBP: f5c99cf0 ESP: >>> f5c99ce8 >>>> [ 341.383041] DS: 007b ES: 007b FS: 00d8 GS: 0000 SS: 0068 >>>> [ 341.388447] CR0: 8005003b CR2: 00000008 CR3: 35cde000 CR4: >>> 00000790 >>>> [ 341.394713] Stack: >>>> [ 341.396734] 000001e1 f56f0000 f5c99d84 fa0e913c e0b706f9 = 0209090a >>> f2907840 000017a8 >>>> [ 341.404678] 00000000 00000004 000001e0 000001e1 f56f0100 = f2a90000 >>> 000017a8 c131996d >>>> [ 341.412626] ca4edbd8 0000004d f54fca00 f54fca00 f5c99dbc = f5c99d54 >>> 0209090a 0209480a >>>> [ 341.420573] Call Trace: >>>> [ 341.423037] [] adjust_parent_qlen+0x93f/0xf1a >>> [sch_cake] >>>> [ 341.429322] [] ? _raw_spin_unlock_bh+0x13/0x15 >>>> [ 341.434734] [] ? tc_classify_compat+0x2f/0x5f >>>> [ 341.440054] [] ? tc_classify+0x1a/0x8b >>>> [ 341.444767] [] 0xfa0f4a8e >>>> [ 341.448361] [] __dev_queue_xmit+0x210/0x35f >>>> [ 341.453504] [] ? ip_fragment+0x79f/0x79f >>>> [ 341.458392] [] dev_queue_xmit+0xa/0xc >>>> [ 341.463023] [] neigh_resolve_output+0x12f/0x145 >>>> [ 341.468517] [] ip_finish_output+0x352/0x73d >>>> [ 341.473664] [] ip_output+0x73/0xaf >>>> [ 341.478033] [] ip_forward_finish+0x66/0x6b >>>> [ 341.483091] [] ip_forward+0x2b0/0x36d >>>> [ 341.487720] [] ip_rcv_finish+0x267/0x29a >>>> [ 341.492607] [] ip_rcv+0x2b4/0x338 >>>> [ 341.496894] [] __netif_receive_skb_core+0x467/0x4b6 >>>> [ 341.502741] [] __netif_receive_skb+0x48/0x59 >>>> [ 341.507975] [] netif_receive_skb_internal+0x59/0x85 >>>> [ 341.513818] [] napi_gro_complete+0x87/0x8c >>>> [ 341.518878] [] napi_gro_flush+0x3e/0x53 >>>> [ 341.523680] [] napi_complete+0x17/0x27 >>>> [ 341.528394] [] 0xf80361a2 >>>> [ 341.531985] [] net_rx_action+0x56/0x10e >>>> [ 341.536785] [] __do_softirq+0x91/0x175 >>>> [ 341.541501] [] ? = __hrtimer_tasklet_trampoline+0x1a/0x1a >>>> [ 341.547685] [] do_softirq_own_stack+0x1d/0x23 >>>> [ 341.553002] =20 >>>> [ 341.554933] [] irq_exit+0x34/0x75 >>>> [ 341.559445] [] do_IRQ+0x92/0xa6 >>>> [ 341.563554] [] common_interrupt+0x2c/0x40 >>>> [ 341.568531] [] ? cpuidle_enter_state+0x37/0x96 >>>> [ 341.573936] [] cpuidle_enter+0xf/0x12 >>>> [ 341.578567] [] cpu_startup_entry+0x135/0x1e1 >>>> [ 341.583802] [] start_secondary+0x1a6/0x1ab >>>> [ 341.588856] Code: 70 24 85 f6 74 5e 66 31 f6 81 fe 00 00 ff ff = 74 >>> 53 8b 40 34 8b 00 f6 40 08 01 75 05 39 70 20 74 16 8b 58 18 83 eb = 18e >>>> [ 341.609292] EIP: [] adjust_parent_qlen+0x37/0xf1a >>> [sch_cake] SS:ESP 0068:f5c99ce8 >>>> [ 341.617689] CR2: 0000000000000008 >>>> [ 341.621012] ---[ end trace db8ecd998020cc49 ]--- >>>> [ 341.625639] Kernel panic - not syncing: Fatal exception in >>> interrupt >>>> [ 341.632073] Kernel Offset: 0x0 from 0xc1000000 (relocation = range: >>> 0xc0000000-0xf7ffdfff) >>>> [ 341.640215] Rebooting in 30 seconds.. >>>>=20 >>>>=20 >>>>=20 >>>> Probably less critically, some compile warnings: >>>>=20 >>>> root@apu1a:~/src/sch_cake# make clean >>>> make[1]: Entering directory >>> '/usr/src/linux-headers-3.16.7-ckt9-voyage' >>>> CLEAN /root/src/sch_cake/.tmp_versions >>>> CLEAN /root/src/sch_cake/Module.symvers >>>> make[1]: Leaving directory >>> '/usr/src/linux-headers-3.16.7-ckt9-voyage' >>>> root@apu1a:~/src/sch_cake# make >>>> make[1]: Entering directory >>> '/usr/src/linux-headers-3.16.7-ckt9-voyage' >>>> CC [M] /root/src/sch_cake/sch_cake.o >>>> /root/src/sch_cake/sch_cake.c: In function = =E2=80=98adjust_parent_qlen=E2=80=99: >>>> /root/src/sch_cake/sch_cake.c:1753:31: warning: passing argument 1 = of >>> =E2=80=98qdisc_match_from_root=E2=80=99 from incompatible pointer = type >>>> sch =3D qdisc_match_from_root(qdisc_dev(sch), TC_H_MAJ(parentid)); >>>> ^ >>>> /root/src/sch_cake/sch_cake.c:1727:22: note: expected =E2=80=98struct= Qdisc >>> *=E2=80=99 but argument is of type =E2=80=98struct net_device *=E2=80=99= >>>> static struct Qdisc *qdisc_match_from_root(struct Qdisc *root, u32 >>> handle) >>>> ^ >>>> Building modules, stage 2. >>>> MODPOST 1 modules >>>> CC /root/src/sch_cake/sch_cake.mod.o >>>> LD [M] /root/src/sch_cake/sch_cake.ko >>>> make[1]: Leaving directory >>> '/usr/src/linux-headers-3.16.7-ckt9-voyage' >>>>=20 >=20