All of lore.kernel.org
 help / color / mirror / Atom feed
From: Florian Westphal <fw@strlen.de>
To: Christian Theune <ct@flyingcircus.io>
Cc: Linux regressions mailing list <regressions@lists.linux.dev>,
	netdev@vger.kernel.org, markovicbudimir@gmail.com
Subject: Re: [REGRESSION] Userland interface breaks due to hard HFSC_FSC requirement
Date: Fri, 6 Oct 2023 14:23:39 +0200	[thread overview]
Message-ID: <20231006122339.GC29258@breakpoint.cc> (raw)
In-Reply-To: <879EA0B7-F334-4A17-92D5-166F627BEE6F@flyingcircus.io>

Christian Theune <ct@flyingcircus.io> wrote:

[ Trimming CCs, adding patch author ]

> it seems that 6.6rc4 is affected as well:
> ----
> commit b3d26c5702c7d6c45456326e56d2ccf3f103e60f
> Author: Budimir Markovic <markovicbudimir@gmail.com>
> Date:   Thu Aug 24 01:49:05 2023 -0700
> 
>     net/sched: sch_hfsc: Ensure inner classes have fsc curve
> ——
> 
> I have not found newer commits that would suggest they change any behaviour around this in any way, but I might be wrong.
> 
> Christian
> 
> > On 6. Oct 2023, at 11:01, Linux regression tracking (Thorsten Leemhuis) <regressions@leemhuis.info> wrote:
> > 
> > On 06.10.23 10:37, Christian Theune wrote:
> >> 
> >> (prefix, I was not aware of the regression reporting process and incorrectly reported this informally with the developers mentioned in the change)
> > 
> > Don't worry too much about that, but thx for taking care of all the
> > details. FWIW, there is one more thing that would be good to know:
> > 
> > Does the problem happen with mainline (e.g. 6.6-rc4) as well? That's
> > relevant, as different people might care[1].
> > 
> > Ciao, Thorsten
> > 
> > [1] this among others is explained here:
> > https://linux-regtracking.leemhuis.info/post/frequent-reasons-why-linux-kernel-bug-reports-are-ignored/
> > 
> >> I upgraded from 6.1.38 to 6.1.55 this morning and it broke my traffic shaping script, leaving me with a non-functional uplink on a remote router.
> >> 
> >> The script errors out like this:
> >> 
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + ext=ispA
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + ext_ingress=ifb0
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + modprobe ifb
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + modprobe act_mirred
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc qdisc del dev ispA root
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2061]: Error: Cannot delete qdisc with handle of zero.
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + true
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc qdisc del dev ispA ingress
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2064]: Error: Cannot find specified qdisc on specified device.
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + true
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc qdisc del dev ifb0 root
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2066]: Error: Cannot delete qdisc with handle of zero.
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + true
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc qdisc del dev ifb0 ingress
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2067]: Error: Cannot find specified qdisc on specified device.
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + true
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc qdisc add dev ispA handle ffff: ingress
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + ifconfig ifb0 up
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc filter add dev ispA parent ffff: protocol all u32 match u32 0 0 action mirred egress redirect dev ifb0
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc qdisc add dev ifb0 root handle 1: hfsc default 1
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc class add dev ifb0 parent 1: classid 1:999 hfsc rt m2 2.5gbit
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2053]: + tc class add dev ifb0 parent 1:999 classid 1:1 hfsc sc rate 50mbit
> >> Oct 06 05:49:22 wendy00 isp-setup-shaping-start[2077]: Error: Invalid parent - parent class must have FSC.
> >> 
> >> The error message is also a bit weird (but that’s likely due to iproute2 being weird) as the CLI interface for `tc` and the error message do not map well. (I think I would have to choose `hfsc sc` on the parent to enable the FSC option which isn’t mentioned anywhere in the hfsc manpage).
> >> 
> >> The breaking change was introduced in 6.1.53[1] and a multitude of other currently supported kernels:
> >> 
> >> ----
> >> commit a1e820fc7808e42b990d224f40e9b4895503ac40
> >> Author: Budimir Markovic <markovicbudimir@gmail.com>
> >> Date: Thu Aug 24 01:49:05 2023 -0700
> >> 
> >> net/sched: sch_hfsc: Ensure inner classes have fsc curve
> >> 
> >> [ Upstream commit b3d26c5702c7d6c45456326e56d2ccf3f103e60f ]
> >> 
> >> HFSC assumes that inner classes have an fsc curve, but it is currently
> >> possible for classes without an fsc curve to become parents. This leads
> >> to bugs including a use-after-free.
> >> 
> >> Don't allow non-root classes without HFSC_FSC to become parents.
> >> 
> >> Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
> >> Reported-by: Budimir Markovic <markovicbudimir@gmail.com>
> >> Signed-off-by: Budimir Markovic <markovicbudimir@gmail.com>
> >> Acked-by: Jamal Hadi Salim <jhs@mojatatu.com>
> >> Link: https://lore.kernel.org/r/20230824084905.422-1-markovicbudimir@gmail.com
> >> Signed-off-by: Jakub Kicinski <kuba@kernel.org>
> >> Signed-off-by: Sasha Levin <sashal@kernel.org>
> >> ----
> >> 
> >> Regards,
> >> Christian
> >> 
> >> [1] https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.53
> >> 
> >> #regzbot introduced: a1e820fc7808e42b990d224f40e9b4895503ac40
> >> 
> >> 
> 
> Liebe Grüße,
> Christian Theune
> 
> -- 
> Christian Theune · ct@flyingcircus.io · +49 345 219401 0
> Flying Circus Internet Operations GmbH · https://flyingcircus.io
> Leipziger Str. 70/71 · 06108 Halle (Saale) · Deutschland
> HR Stendal HRB 21169 · Geschäftsführer: Christian Theune, Christian Zagrodnick

  parent reply	other threads:[~2023-10-06 12:23 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-10-06  8:37 [REGRESSION] Userland interface breaks due to hard HFSC_FSC requirement Christian Theune
2023-10-06  9:01 ` Linux regression tracking (Thorsten Leemhuis)
2023-10-06  9:07   ` Christian Theune
2023-10-06  9:16     ` Linux regression tracking (Thorsten Leemhuis)
2023-10-06 10:51       ` Christian Theune
2023-10-06 12:07         ` Bagas Sanjaya
2023-10-06 12:37           ` Christian Theune
2023-10-06 14:13             ` Bagas Sanjaya
2023-10-09 13:15               ` Christian Theune
2023-10-06 12:23     ` Florian Westphal [this message]
2023-10-06 18:51 ` Pedro Tammela
2023-10-06 22:12 ` Pedro Tammela
2023-10-07  4:10   ` Christian Theune
2023-10-09 15:06     ` Jakub Kicinski
2023-10-09 15:31       ` Pedro Tammela
2023-10-09 15:46         ` Christian Theune
2023-10-10  0:28         ` Jakub Kicinski
2023-10-10 15:02           ` Jamal Hadi Salim
2023-10-10 17:31             ` Christian Theune
2023-10-11 17:26               ` Jamal Hadi Salim
2023-10-10 18:26             ` Jakub Kicinski
2023-10-11 17:27               ` Jamal Hadi Salim
2023-10-11 18:11                 ` Christian Theune
2023-11-01 19:05 ` Linux regression tracking #update (Thorsten Leemhuis)
2023-11-02  8:05   ` Linux regression tracking #update (Thorsten Leemhuis)

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=20231006122339.GC29258@breakpoint.cc \
    --to=fw@strlen.de \
    --cc=ct@flyingcircus.io \
    --cc=markovicbudimir@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=regressions@lists.linux.dev \
    /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.