Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 08 Nov 2021 09:14:46 +0000
From:      bugzilla-noreply@freebsd.org
To:        net@FreeBSD.org
Subject:   [Bug 259458] iflib_rxeof NULL pointer crash with vmxnet3 driver
Message-ID:  <bug-259458-7501-yVe8yD8UMe@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-259458-7501@https.bugs.freebsd.org/bugzilla/>
References:  <bug-259458-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=3D259458

--- Comment #18 from Andriy Gapon <avg@FreeBSD.org> ---
I think that comment #13 could be on spot.
After applying the following patch the problem hasn't been seen for several
days (whereas previously it happened at least once per day on one of test
machines).

@@ -2572,7 +2572,8 @@
                        bzero((void *)di->idi_vaddr, di->idi_size);
        }
        for (i =3D 0; i < scctx->isc_nrxqsets; i++, rxq++) {
-               /* make sure all transmitters have completed before proceed=
ing
XXX */
+               gtaskqueue_drain(rxq->ifr_task.gt_taskqueue,
+                   &rxq->ifr_task.gt_task);

                rxq->ifr_cq_cidx =3D 0;
                for (j =3D 0, di =3D rxq->ifr_ifdi; j < sctx->isc_nrxqs; j+=
+, di++)

I cannot come up with an exact interaction between threads that could lead =
to
the symptoms, but there certainly was a data race.
I used anonymous dtrace to capture initial network configuration and I saw =
some
interleaving between _task_fn_rx and iflib_if_ioctl -> iflib_stop /
iflib_init_locked. One specific ioctl that I saw was SIOCSIFCAP.

--=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-259458-7501-yVe8yD8UMe>