Hello there! I'm not very practical with Linux but i can usually search it up.
I'm trying to get as much as low latency processing as possible here is what i did:
- Set obviously the SQM (i pretty much used the interface, however if there are parameters that can be set to lower latency like buffers or stuff like that please let me know!
- I've set the writeback and workqueue affinity to cpu 0 (/sys/bus/workqueue/devices/writeback/cpumask,
/sys/devices/virtual/workqueue/cpumask) - I've set affinities for Tx and Rx IRQs since my router by default set them to cpu 0 (and it has 4 cpus in total)
- This is currently my sysctl (if there are things i can tweak more for low latency let me know!)
net.core.default_qdisc=cake
net.ipv4.tcp_congestion_control=bbr
vm.dirty_ratio=10
vm.dirty_background_ratio=3
vm.swappiness=10
vm.stat_interval=10
net.ipv4.ip_local_port_range=1024 65000
net.ipv4.conf.all.log_martians=0
net.core.netdev_max_backlog=10000
net.core.busy_read=50 (no idea if works on router)
net.core.busy_poll=50 (no idea if works on router)
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv4.tcp_timestamps=1 (i play mainly games that use UDP so more TCP lattency should not be a problem)
net.ipv4.tcp_sack=1 - I would like to try a preemptive kernel but i have no idea where to start since i'm completly new to this world
- Build an idle tickless (again no idea on how to do that )
- Disable CPU idle? (if that's possible at all)
If there are other stuff i missed please share ! thanks very much