How to have fq_pie appear as a choice in LUCI sqm?

I see it's been added to OpenWRT. I was able to handcraft a script manipulating pie to load fq_pie & TBF, but it doesn't load in LUCI. Is there a way to make it selectable in the drop-down menu?

I think you would need to add it to /etc/sqm/sqm.conf

So I just double checked on turrisOS 6.5.2 (based on EOL's OpenWrt, but already using kernel 5.15). Just adding the string fq_pie to /etc/sqm/sqm.conf like this:

SQM_LIB_DIR=/usr/lib/sqm
SQM_STATE_DIR=/var/run/sqm
SQM_QDISC_STATE_DIR=${SQM_STATE_DIR}/available_qdiscs
SQM_CHECK_QDISCS="fq_codel codel pie sfq cake fq_pie"
SQM_SYSLOG=1

should do the trick, before the next reboot, you might need to run /usr/lib/sqm/update-available-qdiscs manually. But after that the GUI should show fq_pie. But please note that none of the handler functions in /usr/lib/sqm/functions.sh are prepared to deal with fq_pie (or pie for that matter). So the quickest way forward is to fix these functions or to create a new qos script that simply calls fq_pie directly... keep in mind that pie has both alpha and beta parameters that can not be selected freely (on the risk of making the control loop unstable, or so, I never looked deeply into pie/fq_pie, so I might be wrong...)

Thanks for the responses. I found it straightforward to make changes in /etc/sqm/sqm.conf , and I also had to tweak /usr/lib/functions.sh by replacing < pie > with < *pie > for the case functions. I'm pleased to say that it's now working. However, I've encountered an issue with the "tupdate" function in LUCI—it seems to be stuck at 20ms regardless of the input, whether it's blank or a specific value. Clearly, using a manual QoS script would resolve this issue, although it defeats the purpose of relying on LUCI. I didn't notice any significant difference between using fq_pie and fq_codel.

Side Note:
I previously overlooked the cpu governor and behold switching from schedutil to performance dramatically reduced cpu usage by ~65%. Now I can use cake again :grinning:

System Specs:
NAME="OpenWrt"
VERSION="23.05.2"
ID="openwrt"
ID_LIKE="lede openwrt"
PRETTY_NAME="OpenWrt 23.05.2"
VERSION_ID="23.05.2"
HOME_URL="https://openwrt.org/"
BUG_URL="https://bugs.openwrt.org/"
SUPPORT_URL="https://forum.openwrt.org/"
BUILD_ID="r23630-842932a63d"
OPENWRT_BOARD="x86/64"
OPENWRT_ARCH="x86_64"
OPENWRT_TAINTS=""
OPENWRT_DEVICE_MANUFACTURER="OpenWrt"
OPENWRT_DEVICE_MANUFACTURER_URL="https://openwrt.org/"
OPENWRT_DEVICE_PRODUCT="Generic"
OPENWRT_DEVICE_REVISION="v0"
OPENWRT_RELEASE="OpenWrt 23.05.2 r23630-842932a63d"

config queue 'eth1'
        option enabled '1'
        option interface 'eth1'
        option download '600000'
        option upload '30000'
        option qdisc 'cake'
        option script 'piece_of_cake.qos'
        option linklayer 'none'
        option debug_logging '1'
        option verbosity '5'
        option qdisc_advanced '1'
        option squash_dscp '1'
        option squash_ingress '1'
        option ingress_ecn 'ECN'
        option egress_ecn 'ECN'
        option qdisc_really_really_advanced '1'
        option iqdisc_opts 'docsis nat wash'
        option eqdisc_opts 'docsis nat wash'


CWWK X86-P2 Fanless Mini PC
Intel(R) Celeron(R) J4125 CPU @ 2.00GHz
2X i226-V 2.5G Nics Firewall Computer
NVMe 2xUSB3.0 Industrial Soft Router. (8G RAM 128G SSD)

Hello,

Is this hardware specific?
Or, available in general?
If generally available, where is this changed?

AFAIK it's available for all systems.

Give it a go in terminal

# Show the current policy settings for the cpu governor (default schedutil)
grep . /sys/devices/system/cpu/cpufreq/policy?/scaling_governor

# Set the policy governor from default to performance 
for c in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $c; done

Append to /etc/rc.local for startup copy & paste into terminal ONCE

sed -i '/^exit 0/i \
for c in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo performance > $c; done\n' /etc/rc.local

Thanks,
I don't think this is available in SNAPSHOT for GL.iNet GL-MT6000?

root@OpenWrt:~# ls -al /sys/devices/system/cpu/cpufreq
drwxr-xr-x    2 root     root             0 Feb 18 17:24 .
drwxr-xr-x    9 root     root             0 Dec 31  1969 ..

Your device is a quad core, which doesn't make sense why it wouldn't have that available...

Try this command:

find /sys/devices/system/cpu/ -name 'scaling_available_governors'

This is the link to the kernel documentation about it:
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt

1 Like

Thanks, I asked in the specific thread for this device.
Don't want to disrupt your thread.

no worries.

This topic was automatically closed 10 days after the last reply. New replies are no longer allowed.