On Tue, Sep 8, 2020 at 12:36 PM Andrey V. Elsukov <a...@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 oliv...@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 oliv...@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 _______________________________________________ svn-src-all@freebsd.org mailing list https://lists.freebsd.org/mailman/listinfo/svn-src-all To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"