Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 21 Oct 2020 21:18:49 +0000
From:      bugzilla-noreply@freebsd.org
To:        net@FreeBSD.org
Subject:   [Bug 248652] iflib: netmap pkt-gen large TX performance difference between 11-STABLE and 12-STABLE/CURRENT on ix & ixl NIC
Message-ID:  <bug-248652-7501-0eWa2XXgK7@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-248652-7501@https.bugs.freebsd.org/bugzilla/>
References:  <bug-248652-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=3D248652

--- Comment #32 from Vincenzo Maffione <vmaffione@FreeBSD.org> ---
(In reply to Sylvain Galliano from comment #29)
Thanks again for your tests.

I'm inclined to think that the pkt-gen hang issue that you see is not direc=
tly
caused by the ixl patch.
Would you please try to test what happens if you only apply the ixl patch
(discarding all the changes related to the netmap timer)?
In the very end the change to ixl is orthogonal to the netmap timer issue.

Also, it would be useful to understand whether the hang problem comes from =
some
sort of race condition or not. For this purpose, you may try to use the -R
argument of pkt-gen (this time with the timer+ixl patch) to specify a maxim=
um
rate in packets per second (pps). E.g. you could start from 1000 pps, check
that it does not hang, double the rate and repeat the process until you fin=
d a
critical rate that causes the hang. Unless this is not a race condition and=
 the
hang happens at any rate.
When the hang happens, it may help to see the ring state, e.g. with the
following patch to pkt-gen. I expect to see head, cur and tail having the s=
ame
value.=20

diff --git a/apps/pkt-gen/pkt-gen.c b/apps/pkt-gen/pkt-gen.c
index ef876f4f..19497fe9 100644
--- a/apps/pkt-gen/pkt-gen.c
+++ b/apps/pkt-gen/pkt-gen.c
@@ -1675,6 +1675,10 @@ sender_body(void *data)
                                break;
                        D("poll error on queue %d: %s", targ->me,
                                rv ? strerror(errno) : "timeout");
+                       for (i =3D targ->nmd->first_tx_ring; i <=3D
targ->nmd->last_tx_ring; i++) {
+                               txring =3D NETMAP_TXRING(nifp, i);
+                               D("txring %u %u %u", txring->head, txring->=
cur,
txring->tail);
+                       }
                        // goto quit;
                }
                if (pfd.revents & POLLERR) {

--=20
You are receiving this mail because:
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?bug-248652-7501-0eWa2XXgK7>