Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Any plans to update to Kernel 5.10.x? #4

Open
fernandodiacenco opened this issue Jun 18, 2021 · 5 comments
Open

Any plans to update to Kernel 5.10.x? #4

fernandodiacenco opened this issue Jun 18, 2021 · 5 comments

Comments

@fernandodiacenco
Copy link

Hi there,

FQ_CODEL_FAST compiles normally on a Debian 10 router Kernel 4.19, but it does not compile on the same Debian running 5.10 Kernel, giving the error:

make: Entering directory '/usr/src/linux-headers-5.10.0-0.bpo.5-amd64'
CC [M] /usr/src/fq_codel_fast/sch_fq_codel_fast.o
In file included from /usr/src/fq_codel_fast/sch_fq_codel_fast.c:26:
/usr/src/linux-headers-5.10.0-0.bpo.5-common/include/net/pkt_cls.h:913:22: error: ‘TCQ_ETS_MAX_BANDS’ undeclared here (not in a function); did you mean ‘TCQ_MIN_PRIO_BANDS’?
unsigned int quanta[TCQ_ETS_MAX_BANDS]; /* 0 for strict bands. */
^~~~~~~~~~~~~~~~~
TCQ_MIN_PRIO_BANDS
/usr/src/fq_codel_fast/sch_fq_codel_fast.c: In function ‘fq_codel_enqueue’:
/usr/src/fq_codel_fast/sch_fq_codel_fast.c:162:2: warning: parameter names (without types) in function declaration
int uninitialized_var(ret);
^~~
/usr/src/fq_codel_fast/sch_fq_codel_fast.c:168:37: error: ‘ret’ undeclared (first use in this function); did you mean ‘net’?
idx = fq_codel_classify(skb, sch, &ret);
^~~
net
/usr/src/fq_codel_fast/sch_fq_codel_fast.c:168:37: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [/usr/src/linux-headers-5.10.0-0.bpo.5-common/scripts/Makefile.build:284: /usr/src/fq_codel_fast/sch_fq_codel_fast.o] Error 1
make[1]: *** [/usr/src/linux-headers-5.10.0-0.bpo.5-common/Makefile:1819: /usr/src/fq_codel_fast] Error 2
make: *** [/usr/src/linux-headers-5.10.0-0.bpo.5-common/Makefile:185: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-5.10.0-0.bpo.5-amd64'

Any plans to update to 5.10? I ask because I only managed to get fq_pie on kernel 5.10 and I kinda want to test fq_codel_fast along with fq_pie

Thanks.

@dtaht
Copy link
Owner

dtaht commented Jun 22, 2021

put a

#define TCQ_ETS_MAX_BANDS 16

in somewhere before it hits this call.

yes I do hope to resume testing fq_codel_fast at some point... and it would be great to know if it still worked at all on a later OS. the GRO splitting has become more and more important of late.

@fernandodiacenco
Copy link
Author

Now it almost compiles, but still complains about a variable called ret

sudo make -C "/usr/src/linux-headers-uname -r" M=/usr/src/fq_codel_fast modules

make: Entering directory '/usr/src/linux-headers-5.10.0-0.bpo.7-amd64'
CC [M] /usr/src/fq_codel_fast/sch_fq_codel_fast.o
/usr/src/fq_codel_fast/sch_fq_codel_fast.c: In function ‘fq_codel_enqueue’:
/usr/src/fq_codel_fast/sch_fq_codel_fast.c:162:2: warning: parameter names (without types) in function declaration
int uninitialized_var(ret);
^~~
/usr/src/fq_codel_fast/sch_fq_codel_fast.c:168:37: error: ‘ret’ undeclared (first use in this function); did you mean ‘net’?
idx = fq_codel_classify(skb, sch, &ret);
^~~
net
/usr/src/fq_codel_fast/sch_fq_codel_fast.c:168:37: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [/usr/src/linux-headers-5.10.0-0.bpo.7-common/scripts/Makefile.build:284: /usr/src/fq_codel_fast/sch_fq_codel_fast.o] Error 1
make[1]: *** [/usr/src/linux-headers-5.10.0-0.bpo.7-common/Makefile:1845: /usr/src/fq_codel_fast] Error 2
make: *** [/usr/src/linux-headers-5.10.0-0.bpo.7-common/Makefile:185: __sub-make] Error 2
make: Leaving directory '/usr/src/linux-headers-5.10.0-0.bpo.7-amd64'

Looking at the file sch_fq_codel_fast.c I see a variable called ret, so its not a typo as suggested by the error code, I don't know what to do.

@dtaht
Copy link
Owner

dtaht commented Jun 24, 2021

I am trying to clear time to work on this more fully. However I would be very interested in your test plan and test results for fq_pie, fq_codel, and cake, in the interim?

round 'here we use flent a lot. and sqm-scripts to configure itr

@fernandodiacenco
Copy link
Author

I wrote a big text explaining everything, but realized I need to hone the skill of getting a point across without too much text

Want to flent rrul, my flent broken, not fixed yet
Using iperf3 and dslreports and gut feeling to test
Home connection 100/50, starts with about 95mbps upload then averages to 50mbps in 10sec or so
Can I set a limit that takes account of this variation? Trying HTB and TBF with ceil/burst, not sure if doing right*
How they work without setting upper limit: cake good, fq_codel good, fq_pie bad
How they work setting a upper limit: all good
Gut is liking fq_codel, less resources spent than cake
Gut has crush on fq_codel_fast, want to date, invite broken

TLDR: I'm trying to understand the algorithms behavior to see if its feasible to set up a bunch of used wireless access points (with Openwrt or anything else, no wireless) as a sort of SQM appliance, to improve my community/peers quality of experience as they are working from home while the kids watches classes online and stuff.

*This is what I'm doing on the limiters

With TBF
tc qdisc add dev ppp0 root handle 1: tbf rate 50mbit burst 90mbit latency 300ms
tc qdisc add dev ppp0 parent 1: handle 110: fq_codel

<Repeat for fq_pie and cake, but cake is: cake dual-dsthost overhead 44>

With HTB
tc qdisc add dev ppp0 root handle 1: htb default 1
tc class add dev ppp0 parent 1: classid 1:1 htb rate 90mbit ceil 90mbit
tc class add dev ppp0 parent 1:1 classid 1:10 htb rate 50mbit ceil 90mbit
tc qdisc add dev ppp0 parent 1:10 fq_codel

@dtaht
Copy link
Owner

dtaht commented Jun 27, 2021

see the sqm-scripts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants