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

Reply via email to