Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 8 Apr 2020 03:03:24 +0200
From:      Hans Petter Selasky <hps@selasky.org>
To:        Mark Johnston <markj@freebsd.org>, Eric Joyner <erj@freebsd.org>
Cc:        freebsd-net@freebsd.org, shurd <shurd@freebsd.org>, John Baldwin <jhb@freebsd.org>, Drew Gallatin <gallatin@netflix.com>
Subject:   Re: Issue with epoch_drain_callbacks and unloading iavf(4) [using iflib]
Message-ID:  <2220ccb5-7c32-bf90-b50c-42f60fb94ace@selasky.org>
In-Reply-To: <20200407232347.GA5605@raichu>
References:  <CA%2Bb0zg809EGMS1Ngr38BSb1yNpDqxbCnAv9eC%2BcDwbMQ5t%2BqXQ@mail.gmail.com> <20200212222219.GE83892@raichu> <CAKdFRZjdiz_axuweksNUHis7jPKXHqOmhQg%2BQWzpVnsKY%2Bcrmg@mail.gmail.com> <20200328225150.GA82767@raichu> <CAKdFRZgm43LmjJ9dYDBGM8EV0ePRMLPr4YW_tPELANXQGpqpCA@mail.gmail.com> <CA%2Bb0zg_k=8nMhapa=T=yTcSJcUrrnG=AfQB%2Be0gPcCrgkbWtCQ@mail.gmail.com> <20200331192024.GE97238@raichu> <CA%2Bb0zg9z7srroWLtV_poedghXjCr0GvHv95cu4JzFrRdZoaeWw@mail.gmail.com> <20200406212903.GA55712@raichu> <CA%2Bb0zg-JM1rjO_OPh16sgM3Hm2hbzePNaW5bcxiL9aOpJ_vsOA@mail.gmail.com> <20200407232347.GA5605@raichu>

next in thread | previous in thread | raw e-mail | index | archive | help
On 2020-04-08 01:23, Mark Johnston wrote:
> On Mon, Apr 06, 2020 at 02:34:50PM -0700, Eric Joyner wrote:
>> On Mon, Apr 6, 2020 at 2:29 PM Mark Johnston <markj@freebsd.org> wrote:
>>
>>> On Mon, Apr 06, 2020 at 02:19:25PM -0700, Eric Joyner wrote:
>>>> Mark,
>>>>
>>>> I think I was mistaken about the backtrace looking the same. I was
>>> looking
>>>> at it from within ddb, and I think I focused on the
>>>> epoch_block_handler_preempt line and didn't notice that it only stopped
>>>> there this time. Here's the new one I've got from kgdb:
>>>
>>> Thanks.  Could you try to print "td->td_name" from frame 4?  It should
>>> also be available as er->er_blockedtd.  Basically, I'm trying to verify
>>> that the interrupt thread itself isn't the one that we're waiting for,
>>> else there is another bug to be fixed.
>>>
>>> If you can provide kernel symbols and vmcore, I'd be happy to look at it
>>> myself.
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> https://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>>>
>>
>> Here's what I get:
>>
>> (kgdb) frame 4
>> #4  epoch_block_handler_preempt (global=0xfffff80003de0100,
>> cr=0xfffffe00dee85900, arg=0x0) at /usr/src/sys/kern/subr_epoch.c:507
>> 507     }
>> (kgdb) print td->td_name
>> $1 = "if_io_tqg_31\000\000\000\000\000\000\000"
>> (kgdb) print er->er_blockedtd
>> $2 = (struct thread *) 0x0
> 
> I spent some time looking at the core.  It looks like we have yet
> another problem: the gtaskqueue code won't exit the net epoch if it is
> constantly running a net task.  Could you please retry with the patches
> from before, and this one included?
> 

There is the same issue in kern_intr.c (FYI).

--HPS




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2220ccb5-7c32-bf90-b50c-42f60fb94ace>