Date: Thu, 17 Sep 2020 19:49:14 +0200 From: =?UTF-8?Q?Olivier_Cochard=2DLabb=C3=A9?= <olivier@freebsd.org> To: "Andrey V. Elsukov" <ae@freebsd.org> Cc: src-committers <src-committers@freebsd.org>, svn-src-all <svn-src-all@freebsd.org>, svn-src-head <svn-src-head@freebsd.org> Subject: Re: svn commit: r365449 - head/sbin/rcorder Message-ID: <CA%2Bq%2BTcr%2B3Gp4EcmJoLYC0JEOmuVzYdujMQdC4P=n9Zi4jYMmkQ@mail.gmail.com> In-Reply-To: <202009081036.088AaCk8085096@repo.freebsd.org> References: <202009081036.088AaCk8085096@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, Sep 8, 2020 at 12:36 PM Andrey V. Elsukov <ae@freebsd.org> wrote: > Author: ae > Date: Tue Sep 8 10:36:11 2020 > New Revision: 365449 > URL: https://svnweb.freebsd.org/changeset/base/365449 > > Log: > Add a few features to rcorder: > > > Hi Andrey, I've spent some time bisecting an IPSec gateway performance regression on -head that points to this commit. So my bench uses a simple static IPSec aes-gcm-16 setup, and their results vary a lot between those 2 revisions: - r365448: Estimated Equilibrium Ethernet throughput= 1413 Mb/s (maximum value seen: 1419 Mb/s) - r365449: Estimated Equilibrium Ethernet throughput= 469 Mb/s (maximum value seen: 469 Mb/s) How could a modification to the rcoder be the source cause of that ? My rc.conf contains this: kld_list="aesni" ipsec_enable="YES" So My first thought was that the aesni module wasn't loaded anymore: Before upgrade: [root@hp]~# uname -a FreeBSD hp 13.0-CURRENT FreeBSD 13.0-CURRENT #15 r365448M: Thu Sep 17 18:17:58 CEST 2020 olivier@lame4.bsdrp.net:/usr/src/amd64.amd64/sys/amd64 amd64 [root@hp]~# kldstat Id Refs Address Size Name 1 11 0xffffffff80200000 1ee58b0 kernel 2 1 0xffffffff82319000 34c8 fdescfs.ko 3 1 0xffffffff8231d000 a240 aesni.ko 4 1 0xffffffff82328000 8c98 ioat.ko 5 1 0xffffffff82331000 e350 ipsec.ko Then after upgrade: [root@hp]~# uname -a FreeBSD hp 13.0-CURRENT FreeBSD 13.0-CURRENT #14 r365449M: Thu Sep 17 17:01:35 CEST 2020 olivier@lame4.bsdrp.net:/usr/src/amd64.amd64/sys/amd64 amd64 [root@hp]~# kldstat Id Refs Address Size Name 1 11 0xffffffff80200000 1ee58b0 kernel 2 1 0xffffffff82319000 34c8 fdescfs.ko 3 1 0xffffffff8231d000 e350 ipsec.ko 4 1 0xffffffff8232c000 a240 aesni.ko 5 1 0xffffffff82337000 8c98 ioat.ko => aesni.ko is correctly loaded, so it is not the problem, but notice the order of the kernel modules that have changed. Could be this the source of the problem ? Let's try: [root@hp]~# service ipsec stop Clearing ipsec manual keys/policies. [root@hp]~# kld kldconfig kldload kldstat kldunload kldxref [root@hp]~# kldunload ioat [root@hp]~# kldunload aesni [root@hp]~# kldunload ipsec [root@hp]~# kldload aesni [root@hp]~# kldload ipsec [root@hp]~# service ipsec start Installing ipsec manual keys/policies. [root@hp]~# kldstat Id Refs Address Size Name 1 11 0xffffffff80200000 1ee58b0 kernel 2 1 0xffffffff82319000 34c8 fdescfs.ko 5 1 0xffffffff82337000 8c98 ioat.ko 6 1 0xffffffff8231d000 a240 aesni.ko 7 1 0xffffffff82328000 e350 ipsec.ko And after that the IPSec bench results are back to their previous value :-) So rcorder needs to load aesni before ipsec. Regards, Olivier
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CA%2Bq%2BTcr%2B3Gp4EcmJoLYC0JEOmuVzYdujMQdC4P=n9Zi4jYMmkQ>