[Bug 268490] [igb] [lagg] [vlan]: Intel i210 performance severely degraded

From: <bugzilla-noreply_at_freebsd.org>
Date: Fri, 17 Mar 2023 18:05:39 UTC
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=268490

--- Comment #34 from Daniel Duerr <duerrd561@gmail.com> ---
(In reply to Kevin Bowling from comment #33)

Hi Kevin,

Here's my first progress report:

### Round 1: Restart the `git bisect` and confirm the commit 68cfeeb1d3c4 works

[root@nfs ~]# cd /usr/src
[root@nfs ~]# git checkout releng/12.4
[root@nfs ~]# git bisect start release/12.4.0 release/12.2.0 -- sys/dev/e1000
Bisecting: a merge base must be tested
[68cfeeb1d3c428e3c3881f45bc3a20a252b37d0e] MFC r365284:
[root@nfs ~]# make -j `sysctl -n hw.ncpu` buildkernel KERNCONF=GENERIC-NODEBUG
&& make installkernel KERNCONF=GENERIC-NODEBUG
[root@nfs ~]# reboot
[root@nfs ~]# uname -a
FreeBSD nfs.tidepool.cloud 12.2-PRERELEASE FreeBSD 12.2-PRERELEASE
68cfeeb1d3c4(HEAD) GENERIC-NODEBUG  amd64
[root@nfs ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  1] local 172.27.6.135 port 5001 connected with 172.27.6.129 port 10616
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-10.00 sec  1.15 GBytes   985 Mbits/sec
[  2] local 172.27.6.135 port 5001 connected with 172.27.6.129 port 20446
[ ID] Interval       Transfer     Bandwidth
[  2] 0.00-10.00 sec  1.15 GBytes   988 Mbits/sec
[  3] local 172.27.6.135 port 5001 connected with 172.27.6.129 port 10068
[ ID] Interval       Transfer     Bandwidth
[  3] 0.00-10.00 sec  1.15 GBytes   985 Mbits/sec

### Round 2: Apply the change to sys/dev/e1000/if_em.c in commit 68cfeeb1d3c4
and see if it still works

[root@nfs src]# vi sys/dev/e1000/if_em.c
[root@nfs src]# git diff
diff --git a/sys/dev/e1000/if_em.c b/sys/dev/e1000/if_em.c
index 558a75ac015e..42faacfc3eea 100644
--- a/sys/dev/e1000/if_em.c
+++ b/sys/dev/e1000/if_em.c
@@ -1338,7 +1338,7 @@ em_if_init(if_ctx_t ctx)
        }

        /* Don't lose promiscuous settings */
-       em_if_set_promisc(ctx, IFF_PROMISC);
+       em_if_set_promisc(ctx, if_getflags(ifp));
        e1000_clear_hw_cntrs_base_generic(&adapter->hw);

        /* MSI-X configuration for 82574 */

[root@nfs ~]# make -j `sysctl -n hw.ncpu` buildkernel KERNCONF=GENERIC-NODEBUG
&& make installkernel KERNCONF=GENERIC-NODEBUG
[root@nfs ~]# reboot
[root@nfs ~]# uname -a
FreeBSD nfs.tidepool.cloud 12.2-PRERELEASE FreeBSD 12.2-PRERELEASE #15
68cfeeb1d3c4(HEAD)-dirty: Fri Mar 17 10:50:14 PDT 2023    
toor@nfs.tidepool.cloud:/usr/obj/usr/src/amd64.amd64/sys/GENERIC-NODEBUG  amd64
[root@nfs ~]# iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 64.0 KByte (default)
------------------------------------------------------------
[  1] local 172.27.6.135 port 5001 connected with 172.27.6.129 port 47216
[  2] local 172.27.6.135 port 5001 connected with 172.27.6.129 port 37030
[  3] local 172.27.6.135 port 5001 connected with 172.27.6.129 port 41145
^CWaiting for server threads to complete. Interrupt again to force quit.
[ ID] Interval       Transfer     Bandwidth
[  1] 0.00-76.70 sec  60.0 Bytes  6.26 bits/sec
[  2] 0.00-56.38 sec  60.0 Bytes  8.51 bits/sec
[  3] 0.00-36.23 sec  60.0 Bytes  13.2 bits/sec
[SUM] 0.00-78.70 sec   180 Bytes  18.3 bits/sec

In summary, the first good commit in the bisect works and when I apply the
change, it stops working.

As a next step, I was thinking I'd (a) revert the manual change back to the
"good" state, (b) so a `git bisect good` to proceed to the next (first "bad")
commit, and (c) manually reverse the change the other way to see if the bad
commit then works. Does that make sense?

-- 
You are receiving this mail because:
You are the assignee for the bug.