On Wed, May 24, 2017 at 06:03:04PM +0200, Mike Belopuhov wrote: > On Sun, May 21, 2017 at 11:53 +0200, Mike Belopuhov wrote: > > On Sat, May 20, 2017 at 18:53 +0200, Mike Belopuhov wrote: > > > On Sat, May 20, 2017 at 17:30 +0200, Sebastien Marie wrote: > > > > > > > > From my pf configuration, I had removed queue with bandwidth and > > > > replaced them with: > > > > > > > > queue fq on pppoe0 flows 1024 default > > > > queue fq on re0 flows 1024 default > > > > > > > > > > Regarding your configuration, I'd advise you to use hfsc (the > > > default queueing) on pppoe0. Set it to your *uplink* bandwidth: > > > > > > queue pppoe0-rootq on pppoe0 bandwidth 2M max 2M default > > > > > > And use the flow queue only on the underlying interface. > > > > > > Since this is what I've been advising folks to use, I didn't > > > manage to find this bug beforehands. Apologies for that. > > > > > > I'll try to come up with the diff to do ifq_serialize for > > > if_qstart_compat. > > > > This turns out to be a rather contained problem. if_enqueue > > is already going down the ifq_start -> ifq_serialize -> > > ifq_start_task -> if_qstart_compat chain and sppp code is > > using if_enqueue. But it also calls if_start, which means > > that instead of calling if_qstart_compat directly from there, > > we need to let ifq_start do its magic. I've got this tested > > at home. OK? > > > > Sebastien, can you please confirm that this solves your problem? > David, does this look reasonable to you? >
Hi mikeb@, Sorry I didn't test it: I had understood that due the problem was due to my (unsupported) use of fq on pppoe0, so I just skipped it (the backtrace of the panic passed by sppp_ functions). I have push your diff on top of the kernel, and now I am running with it (and fq on re0 *and* on pppoe0). I will report any panic with it. I just noted that even with GENERIC.MP (amd64: OpenBSD 6.1-current (GENERIC.MP) #82: Wed May 24 06:29:56 MDT 2017), pfctl -sq error out: # pfctl -sq pfctl: DIOCGETQSTATS: Bad file descriptor (and same error with systat queue). Thanks. -- Sebastien Marie
