Date: Mon, 03 Dec 2018 21:58:49 +0000 From: bugzilla-noreply@freebsd.org To: bugs@FreeBSD.org Subject: [Bug 233759] igb (I210) + net.inet.ipsec.async_crypto=1 + aesni kills receiving queues and traffic Message-ID: <bug-233759-227@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D233759 Bug ID: 233759 Summary: igb (I210) + net.inet.ipsec.async_crypto=3D1 + aesni kills receiving queues and traffic Product: Base System Version: CURRENT Hardware: Any OS: Any Status: New Severity: Affects Only Me Priority: --- Component: kern Assignee: bugs@FreeBSD.org Reporter: lev@FreeBSD.org I'm benchmarking system with FreeBSD 13-CURRENT (r340933) configured as "VPN border router". It receives traffic via igb0 (I210) and pass it with encryp= tion via IPsec tunnel mode via igb1 (I210 too). CPU supports AES-NI, so it is enabled. I'm using aes-128-gcm cipher. Incoming traffic has characteristics which allow to employ all 4 queues of igb0, which run on 4 cores of 4-core CPU, it could be seen in "top -SH" out= put and under heavy load queues consume 400% of CPU, 100% each. Everything work= s as expected. But when I set "sysctl net.inet.ipsec.async_crypto=3D1" strange thing happe= ns: some igb0 queues stop to work. Sometimes it is 1 queue, sometimes 2 queues,= and sometimes 3 (I never seen 4 queues stop to work, though). Stopped queues do= n't consume CPU and don't pass traffic, so 1/4, 2/4 or 3/4 of incoming traffic = is simply lost. Even if traffic is very light (say, 64 packet per second!), traffic which was classified to "stopped" queues is lost. "tcpdump -i igb0" doesn't show it. Only reboot reset this behavior, setting "sysctl net.inet.ipsec.async_crypt= o=3D0" doesn't help. --=20 You are receiving this mail because: You are the assignee for the bug.=
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-233759-227>