Date: Thu, 20 Feb 2020 12:16:06 +0100 From: "Kristof Provost" <kp@FreeBSD.org> To: "Gleb Smirnoff" <glebius@freebsd.org> Cc: freebsd-net <freebsd-net@freebsd.org> Subject: Re: vtnet IFF_NEEDSEPOCH? Message-ID: <CB21E2A0-48DF-46CC-BFC2-31A105B7C865@FreeBSD.org> In-Reply-To: <20200219224845.GI5741@FreeBSD.org> References: <B45B8E77-CDB2-450E-951C-1E6E6BCC2527@FreeBSD.org> <20200218193708.GH5741@FreeBSD.org> <5520BD42-7D17-4561-A2CD-C690B159D15E@FreeBSD.org> <20200219224845.GI5741@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On 19 Feb 2020, at 23:48, Gleb Smirnoff wrote:
> On Tue, Feb 18, 2020 at 10:08:50PM +0100, Kristof Provost wrote:
> K> So I suspect our call stack is something like virtqueue_intr() ->
> K> vtnet_rx_vq_intr() -> vtnet_rxq_eof() -> vtnet_rxq_input() ->
> K> ether_input().
> K> I don’t see anything entering epoch in that path, which
> presumably explains
> K> the panic, but I still don’t understand why my bhyve current vm
> doesn’t
> K> panic in the same way.
>
> On bhyve we enter it through interrupt handler, and this is where we
> enter the epoch. Does RISC-V has interrupt handling by the MI code
> in sys/kern/kern_intr.c as other platforms?
>
It does, yes, but that was the hint I needed. I didn’t know that we
entered net_epoch automagically based on the interrupt type.
The difference between the two is that Bhyve uses virtio_pci, and in my
qemu case we run through the virtio_mmio path. In that path we always
set INTR_TYPE_MISC, so we never set INTR_TYPE_NET, even for if_vtnet, so
we never entered epoch.
This is the correct fix:
diff --git a/sys/dev/virtio/mmio/virtio_mmio.c
b/sys/dev/virtio/mmio/virtio_mmio.c
index 95eb8647052..ccafe326868 100644
--- a/sys/dev/virtio/mmio/virtio_mmio.c
+++ b/sys/dev/virtio/mmio/virtio_mmio.c
@@ -196,7 +196,7 @@ vtmmio_setup_intr(device_t dev, enum intr_type
type)
return (ENXIO);
}
- if (bus_setup_intr(dev, sc->res[1], INTR_TYPE_MISC |
INTR_MPSAFE,
+ if (bus_setup_intr(dev, sc->res[1], type | INTR_MPSAFE,
NULL, vtmmio_vq_intr, sc, &sc->ih)) {
device_printf(dev, "Can't setup the interrupt\n");
return (ENXIO);
Thanks for the help!
Regards,
Kristof
From owner-freebsd-net@freebsd.org Thu Feb 20 11:18:20 2020
Return-Path: <owner-freebsd-net@freebsd.org>
Delivered-To: freebsd-net@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
by mailman.nyi.freebsd.org (Postfix) with ESMTP id EFA0325CCDF
for <freebsd-net@mailman.nyi.freebsd.org>;
Thu, 20 Feb 2020 11:18:20 +0000 (UTC)
(envelope-from bugzilla-noreply@freebsd.org)
Received: from mailman.nyi.freebsd.org (mailman.nyi.freebsd.org
[IPv6:2610:1c1:1:606c::50:13])
by mx1.freebsd.org (Postfix) with ESMTP id 48NXC069CNz4WXT
for <freebsd-net@freebsd.org>; Thu, 20 Feb 2020 11:18:20 +0000 (UTC)
(envelope-from bugzilla-noreply@freebsd.org)
Received: by mailman.nyi.freebsd.org (Postfix)
id D1C7E25CCDE; Thu, 20 Feb 2020 11:18:20 +0000 (UTC)
Delivered-To: net@mailman.nyi.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
by mailman.nyi.freebsd.org (Postfix) with ESMTP id D184725CCDD
for <net@mailman.nyi.freebsd.org>; Thu, 20 Feb 2020 11:18:20 +0000 (UTC)
(envelope-from bugzilla-noreply@freebsd.org)
Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org
[IPv6:2610:1c1:1:606c::19:3])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
server-signature RSA-PSS (4096 bits)
client-signature RSA-PSS (4096 bits) client-digest SHA256)
(Client CN "mxrelay.nyi.freebsd.org",
Issuer "Let's Encrypt Authority X3" (verified OK))
by mx1.freebsd.org (Postfix) with ESMTPS id 48NXC05Cs2z4WX9
for <net@FreeBSD.org>; Thu, 20 Feb 2020 11:18:20 +0000 (UTC)
(envelope-from bugzilla-noreply@freebsd.org)
Received: from kenobi.freebsd.org (kenobi.freebsd.org
[IPv6:2610:1c1:1:606c::50:1d])
(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
server-signature RSA-PSS (4096 bits))
(Client did not present a certificate)
by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id A2B9520CE0
for <net@FreeBSD.org>; Thu, 20 Feb 2020 11:18:20 +0000 (UTC)
(envelope-from bugzilla-noreply@freebsd.org)
Received: from kenobi.freebsd.org ([127.0.1.5])
by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id 01KBIK7O021121
for <net@FreeBSD.org>; Thu, 20 Feb 2020 11:18:20 GMT
(envelope-from bugzilla-noreply@freebsd.org)
Received: (from www@localhost)
by kenobi.freebsd.org (8.15.2/8.15.2/Submit) id 01KBIKHF021120
for net@FreeBSD.org; Thu, 20 Feb 2020 11:18:20 GMT
(envelope-from bugzilla-noreply@freebsd.org)
X-Authentication-Warning: kenobi.freebsd.org: www set sender to
bugzilla-noreply@freebsd.org using -f
From: bugzilla-noreply@freebsd.org
To: net@FreeBSD.org
Subject: [Bug 244241] ng_eiface: panic: epoch_wait_preempt() called in the
middle of an epoch section of the same epoch
Date: Thu, 20 Feb 2020 11:18:20 +0000
X-Bugzilla-Reason: AssignedTo CC
X-Bugzilla-Type: changed
X-Bugzilla-Watch-Reason: None
X-Bugzilla-Product: Base System
X-Bugzilla-Component: kern
X-Bugzilla-Version: CURRENT
X-Bugzilla-Keywords: panic
X-Bugzilla-Severity: Affects Many People
X-Bugzilla-Who: linimon@FreeBSD.org
X-Bugzilla-Status: New
X-Bugzilla-Resolution:
X-Bugzilla-Priority: ---
X-Bugzilla-Assigned-To: net@FreeBSD.org
X-Bugzilla-Flags:
X-Bugzilla-Changed-Fields: cc assigned_to keywords
Message-ID: <bug-244241-7501-yZilspMZar@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-244241-7501@https.bugs.freebsd.org/bugzilla/>
References: <bug-244241-7501@https.bugs.freebsd.org/bugzilla/>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/
Auto-Submitted: auto-generated
MIME-Version: 1.0
X-BeenThere: freebsd-net@freebsd.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Networking and TCP/IP with FreeBSD <freebsd-net.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-net>,
<mailto:freebsd-net-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-net/>
List-Post: <mailto:freebsd-net@freebsd.org>
List-Help: <mailto:freebsd-net-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-net>,
<mailto:freebsd-net-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Thu, 20 Feb 2020 11:18:21 -0000
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D244241
Mark Linimon <linimon@FreeBSD.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC|net@FreeBSD.org |
Assignee|bugs@FreeBSD.org |net@FreeBSD.org
Keywords| |panic
--=20
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CB21E2A0-48DF-46CC-BFC2-31A105B7C865>
