From owner-freebsd-current@freebsd.org  Mon Sep 17 20:52:24 2018
Return-Path: <owner-freebsd-current@freebsd.org>
Delivered-To: freebsd-current@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 107C210A74C3
 for <freebsd-current@mailman.ysv.freebsd.org>;
 Mon, 17 Sep 2018 20:52:24 +0000 (UTC) (envelope-from lev@FreeBSD.org)
Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org
 [IPv6:2001:1900:2254:206a::50:5])
 by mx1.freebsd.org (Postfix) with ESMTP id 8D6658CD06
 for <freebsd-current@freebsd.org>; Mon, 17 Sep 2018 20:52:23 +0000 (UTC)
 (envelope-from lev@FreeBSD.org)
Received: by mailman.ysv.freebsd.org (Postfix)
 id 5141510A74C2; Mon, 17 Sep 2018 20:52:23 +0000 (UTC)
Delivered-To: current@mailman.ysv.freebsd.org
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1])
 by mailman.ysv.freebsd.org (Postfix) with ESMTP id 3FF3510A74C1
 for <current@mailman.ysv.freebsd.org>; Mon, 17 Sep 2018 20:52:23 +0000 (UTC)
 (envelope-from lev@FreeBSD.org)
Received: from onlyone.not-for.work (onlyone.not-for.work
 [IPv6:2a01:4f8:201:6350::2])
 by mx1.freebsd.org (Postfix) with ESMTP id D28FB8CD00;
 Mon, 17 Sep 2018 20:52:22 +0000 (UTC) (envelope-from lev@FreeBSD.org)
Received: from lion.home.serebryakov.spb.ru (unknown
 [IPv6:2001:470:923f:1:dcf4:3d3c:7e78:129b])
 (Authenticated sender: lev@serebryakov.spb.ru)
 by onlyone.not-for.work (Postfix) with ESMTPSA id 23601CE8;
 Mon, 17 Sep 2018 23:52:21 +0300 (MSK)
Date: Mon, 17 Sep 2018 23:52:20 +0300
From: Lev Serebryakov <lev@FreeBSD.org>
Reply-To: lev@FreeBSD.org
Organization: FreeBSD
Message-ID: <468346531.20180917235220@serebryakov.spb.ru>
To: current@FreeBSD.org
CC: brnrd@FreeBSD.org, jkim@FreeBSD.org
Subject: Re: Speed problems with both system openssl and security/openssl-devel
In-Reply-To: <43892083.20180913024646@serebryakov.spb.ru>
References: <43892083.20180913024646@serebryakov.spb.ru>
MIME-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
X-BeenThere: freebsd-current@freebsd.org
X-Mailman-Version: 2.1.27
Precedence: list
List-Id: Discussions about the use of FreeBSD-current
 <freebsd-current.freebsd.org>
List-Unsubscribe: <https://lists.freebsd.org/mailman/options/freebsd-current>, 
 <mailto:freebsd-current-request@freebsd.org?subject=unsubscribe>
List-Archive: <http://lists.freebsd.org/pipermail/freebsd-current/>
List-Post: <mailto:freebsd-current@freebsd.org>
List-Help: <mailto:freebsd-current-request@freebsd.org?subject=help>
List-Subscribe: <https://lists.freebsd.org/mailman/listinfo/freebsd-current>, 
 <mailto:freebsd-current-request@freebsd.org?subject=subscribe>
X-List-Received-Date: Mon, 17 Sep 2018 20:52:24 -0000

Hello Lev,

Thursday, September 13, 2018, 2:46:46 AM, you wrote:

>   Linux have openssl 1.1.0f, and  I've tried both system /usr/bin/openssl (1.0.2p)
> and /usr/local/bin/openssl from security/openssl-devel port (1.1.0i), results are
> virtually the same. I have "ASM" and "SSE2" options enabled in port.

>  What happens here? Why does FreeBSD's build of openssl use AES-NI so
> inefficient?
 More datapoints.

(1) aes-256-cbc behaves really wired. Time output is
completely bogus without "-elapsed" and speed is unbelievably low with
"-elapsed". aes-256-gcm doesn't have this anomaly

without "-elapsed" (please note "in 0.xxs" here):

Doing aes-256-cbc for 3s on 16 size blocks: 503555 aes-256-cbc's in 0.60s
Doing aes-256-cbc for 3s on 64 size blocks: 520386 aes-256-cbc's in 0.54s
Doing aes-256-cbc for 3s on 256 size blocks: 435106 aes-256-cbc's in 0.44s
Doing aes-256-cbc for 3s on 1024 size blocks: 242832 aes-256-cbc's in 0.38s
Doing aes-256-cbc for 3s on 8192 size blocks: 49087 aes-256-cbc's in 0.09s
...
aes-256-cbc      13393.26k    61782.64k   254599.17k   663093.25k  4289287.51k

Doing aes-256-gcm for 3s on 16 size blocks: 12051311 aes-256-gcm's in 3.03s
Doing aes-256-gcm for 3s on 64 size blocks: 6428598 aes-256-gcm's in 3.04s
Doing aes-256-gcm for 3s on 256 size blocks: 2122316 aes-256-gcm's in 3.00s
Doing aes-256-gcm for 3s on 1024 size blocks: 610443 aes-256-gcm's in 3.13s
Doing aes-256-gcm for 3s on 8192 size blocks: 75836 aes-256-gcm's in 3.03s
...
aes-256-gcm      63611.04k   135380.66k   181104.30k   199531.13k   204947.96k

with "-elapsed":

Doing aes-256-cbc for 3s on 16 size blocks: 493829 aes-256-cbc's in 3.01s
Doing aes-256-cbc for 3s on 64 size blocks: 530550 aes-256-cbc's in 3.06s
Doing aes-256-cbc for 3s on 256 size blocks: 426699 aes-256-cbc's in 3.01s
Doing aes-256-cbc for 3s on 1024 size blocks: 243305 aes-256-cbc's in 3.03s
Doing aes-256-cbc for 3s on 8192 size blocks: 48069 aes-256-cbc's in 3.01s
...
aes-256-cbc       2626.91k    11087.41k    36317.07k    82191.94k   130919.48k

Doing aes-256-gcm for 3s on 16 size blocks: 12041385 aes-256-gcm's in 3.08s
Doing aes-256-gcm for 3s on 64 size blocks: 6445757 aes-256-gcm's in 3.05s
Doing aes-256-gcm for 3s on 256 size blocks: 2129499 aes-256-gcm's in 3.01s
Doing aes-256-gcm for 3s on 1024 size blocks: 587396 aes-256-gcm's in 3.01s
Doing aes-256-gcm for 3s on 8192 size blocks: 75806 aes-256-gcm's in 3.03s
...
aes-256-gcm      62590.75k   135047.68k   181245.26k   199977.06k   204866.89k

(2) I've added debug output to 'crypto/evp/e_aes.c' and it shows, that
AES-NIU should be used.

(3) openssl111 from ports doesn't show these problems.

-- 
Best regards,
 Lev                            mailto:lev@FreeBSD.org