Date: Sun, 25 Feb 2024 01:18:05 +0000 From: bugzilla-noreply@freebsd.org To: net@FreeBSD.org Subject: [Bug 276890] Getting fq_codel correct on inbound shaping Message-ID: <bug-276890-7501-7KyWIFpv2u@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-276890-7501@https.bugs.freebsd.org/bugzilla/> References: <bug-276890-7501@https.bugs.freebsd.org/bugzilla/>
next in thread | previous in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D276890 --- Comment #5 from Dave Taht <dave.taht@gmail.com> --- I am a little dubious about the "active" idea. http://fxr.watson.org/fxr/source/netpfil/ipfw/dn_sched_fq_codel.c#L413 Also. if (!si->flows[idx].active ) { 319 STAILQ_INSERT_TAIL(&si->newflows, &si->flows[idx], flowchain); 320 si->flows[idx].deficit =3D param->quantum; 321 si->flows[idx].cst.dropping =3D false; 322 si->flows[idx].cst.first_above_time =3D 0; 323 si->flows[idx].active =3D 1; 324 //D("activate %d",idx); 325 } In the linux version we do not touch the codel state variables at this phas= e at all, but retain the previous settings. It may be that dropping and first_above_time get set in roughly the same way in my version, but perhaps= if I describe the intent of what should happen, I too will understand this code better.=20 The idea of a flow going out of an "active" state is not that any of it=C2= =B4s state needs to be reset. The overall target of fq_codel is to reduce the total de= lay in all the queues to the target (usually 5ms). It maintains a cache of the = last "good" drop rate.=20 If a single flow, out of dozens, has an arrival rate like this: A A A A And that is still too much relative to the other flows, it needs to get more drops.=20 Anyway, instead of checking for or maintaining an active or inactive "state= " we just check to see if queue length > 0. Just saving my state here on this subtley. Also we use the global queue len= gth not the per queue length to turn off the global dropper, which I have to go looking through here to see if it is correct. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-276890-7501-7KyWIFpv2u>