Download raw body.
fq_codel: uncap count
On Mon 12/02/2024 20:57, Bjorn Ketelaars wrote: > Dave Taht reported a bug of fq_codel count being capped at 400 [0]. Our > implementation uses a lookup table of the first ~400 inverse square > roots, which is used to reach target, instead of a free running > variable. > I would not go as far of calling this a bug, instead I think this is a > design choice (?). However you look at it, it is seemingly a deviation > from RFC 8290, which describes the use of a free running variable, which > is calculated. Per Dave's suggestion I had a look at the implementation > of linux and FreeBSD. > > Diff below replaces the lookup table by a calculation based on Newton's > method for finding the inverse root of a square root. This is the same > approach as used by FreeBSD. > > I have been running with this diff on amd64 without any noticeable > impact on performance. I'm hoping that someone is willing to review the > bits below, and helps testing. > > While here zap a couple of white spaces. > > [0] https://marc.info/?l=openbsd-bugs&m=170741059623394&w=2 I performed additional tests using flent, playing with the number of flows, and noticed a significant performance drop. Using the diff, softnet0 hogs all CPU time, latency increases and the machine becomes unresponsive. Using the same test conditions the current fq_codel implementation simply just works. I'm not sure what is causing the above, and I need to dig further. Sorry for not finding this earlier. Please ignore this diff for now as it needs more work/testing.
fq_codel: uncap count