How do I install sch_fq_codel kernel module?

daemon.err modprobe: failed to find a module named sch_fq_codel

getting this error after selecting fq_codel, couldn't find any kernel module package for this, what should I do then?

In all likelihood fq_codel is built into the kernel so you do not need to install/load a kernel module for it. Please post the output of tc -s qdisc, fq_codel is as far as I understand OpenWrt's default qdisc so you should see quite a lot of fq_codel instances in the tc output.

If it's already there then why modprobe is failed? Doesn't it mean, fq_codel won't work if it's not loaded?

Here's the output of tc -s qdisc.

root@OpenWrt:~# tc -s qdisc
qdisc noqueue 0: dev lo root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 0: dev eth0 root refcnt 2 limit 10240p flows 1024 quantum 1518 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
 Sent 416145524 bytes 1246839 pkt (dropped 0, overlimits 0 requeues 6)
 backlog 0b 0p requeues 6
  maxpacket 1498 drop_overlimit 0 new_flow_count 27992 ecn_mark 0
  new_flows_len 0 old_flows_len 0
qdisc noqueue 0: dev lan4 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan3 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan2 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev lan1 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wan root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev br-lan root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan0 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc noqueue 0: dev wlan1 root refcnt 2
 Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc htb 1: dev pppoe-wan root refcnt 2 r2q 10 default 0x10 direct_packets_stat 0 direct_qlen 3
 Sent 36800 bytes 269 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 110: dev pppoe-wan parent 1:10 limit 1001p flows 1024 quantum 1502 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
 Sent 36800 bytes 269 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 750 drop_overlimit 0 new_flow_count 116 ecn_mark 0
  new_flows_len 1 old_flows_len 2
qdisc ingress ffff: dev pppoe-wan parent ffff:fff1 ----------------
 Sent 62203 bytes 200 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
qdisc htb 1: dev ifb4pppoe-wan root refcnt 2 r2q 10 default 0x10 direct_packets_stat 0 direct_qlen 32
 Sent 71003 bytes 200 pkt (dropped 0, overlimits 4 requeues 0)
 backlog 0b 0p requeues 0
qdisc fq_codel 110: dev ifb4pppoe-wan parent 1:10 limit 1001p flows 1024 quantum 1514 target 5ms interval 100ms memory_limit 4Mb ecn drop_batch 64
 Sent 71003 bytes 200 pkt (dropped 0, overlimits 0 requeues 0)
 backlog 0b 0p requeues 0
  maxpacket 1524 drop_overlimit 0 new_flow_count 86 ecn_mark 0
  new_flows_len 1 old_flows_len 1

No, functionality like qdiscs can be either built into the kernel 'monolithically' or compiled as a loadabe module. Only components compiled as loadable module can be successfully loaded, monolithic components are essentially always 'loaded' in memory.
In sqm-scripts we faced the same issue, our solution was to test qdiscs for existence/functionality not simply be trying to load them, but by actually setting them up.

Your output shows fq_codel in use, hence the failure to load it as a module indicates that it was built into the kernel monolithically.

1 Like

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