[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openbsd-bugs
Subject:    Re: select performance regression
From:       Darren Tucker <dtucker () dtucker ! net>
Date:       2021-01-12 2:12:28
Message-ID: 20210112021228.GA3949210 () gate ! dtucker ! net
[Download RAW message or body]

On Fri, Jan 08, 2021 at 09:30:21AM +0000, Visa Hankala wrote:
> On Thu, Jan 07, 2021 at 05:49:48PM +0100, Alexander Bluhm wrote:
> > As you can see here, the iperf3 udp performance dropped by 29% at 22nd
> > December.
> > http://bluhm.genua.de/perform/results/2021-01-05T15%3A48%3A19Z/gnuplot/udp.png
> > 
> > All numbers for each commit at that day are here:
> > http://bluhm.genua.de/perform/results/2021-01-05T15%3A48%3A19Z/perform.html
> > 
> > It is caused by this commit:
> > Implement select(2) and pselect(2) on top of kqueue.
> > http://bluhm.genua.de/perform/results/cvslog/src/sys/2020-12-22T12%3A59%3A05Z--2020-12-22T13%3A24%3A45Z.html
> > 
> 
> Thank you for reporting this. I have reverted the change.

djm and I observed the ssh regression tests occasionally spamming the logs
with "select: Broken pipe" from sshd with kernels in this time window.
It didn't happen for every sshd instance (maybe 1 in 100 but usually at
least once in a given run in regress/usr.bin/ssh), but when it did it
logged enough to eventually fill /usr/obj with logspam.  The regression
tests also didn't catch it because other than the logspam the sshds
were functional.

We didn't conclusively pin it on this change, but both he and I
experienced it with kernels in the window, and did not observe it when
we built fresh kernels updated past the window.

If you want to try to reproduce, you can try running the ssh regression
tests with this patch.

Index: test-exec.sh
===================================================================
RCS file: /cvs/src/regress/usr.bin/ssh/test-exec.sh,v
retrieving revision 1.76
diff -u -p -r1.76 test-exec.sh
--- test-exec.sh	4 Apr 2020 23:04:41 -0000	1.76
+++ test-exec.sh	12 Jan 2021 02:05:56 -0000
@@ -209,9 +209,12 @@ cleanup ()
 
 start_debug_log ()
 {
-	echo "trace: $@" >$TEST_REGRESS_LOGFILE
-	echo "trace: $@" >$TEST_SSH_LOGFILE
-	echo "trace: $@" >$TEST_SSHD_LOGFILE
+	if [ -z "${log_started}" ]; then
+		echo "trace: $@" >$TEST_REGRESS_LOGFILE
+		echo "trace: $@" >$TEST_SSH_LOGFILE
+		echo "trace: $@" >$TEST_SSHD_LOGFILE
+		log_started=1
+	fi
 }
 
 save_debug_log ()
@@ -495,5 +498,8 @@ if [ $RESULT -eq 0 ]; then
 	verbose ok $tid
 else
 	echo failed $tid
+fi
+if grep "select: " $OBJ/sshd.log >/dev/null; then
+	exit 1
 fi
 exit $RESULT

-- 
Darren Tucker (dtucker at dtucker.net)
GPG key 11EAA6FA / A86E 3E07 5B19 5880 E860  37F4 9357 ECEF 11EA A6FA (new)
    Good judgement comes with experience. Unfortunately, the experience
usually comes from bad judgement.


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic