Добро пожаловать, Гость. Пожалуйста авторизуйтесь здесь.
FGHIGate на GaNJa NeTWoRK ST@Ti0N - Просмотр сообщения в эхоконференции RU.UNIX.BSD
Введите FGHI ссылку:


Присутствуют сообщения из эхоконференции RU.UNIX.BSD с датами от 18 Jan 11 22:51:00 до 18 Jan 24 18:16:22, всего сообщений: 10753
Ответить на сообщение К списку сообщений Предыдущее сообщение Следующее сообщение
= Сообщение: 9188 из 10753 ===================================== RU.UNIX.BSD =
От   : Eugene Grosbein                  2:5006/1           19 Aug 19 06:26:02
Кому : Victor Sudakov                                      19 Aug 19 06:26:02
Тема : Re: GEOM_ELI:     Crypto: software
FGHI : area://RU.UNIX.BSD?msgid=grosbein.net+8ad11e81
На   : area://RU.UNIX.BSD?msgid=2:5005/49+5d598d80
= Кодировка сообщения определена как: IBM866 =================================
Ответ: area://RU.UNIX.BSD?msgid=grosbein.net+04874eda
Ответ: area://RU.UNIX.BSD?msgid=<1187512073@ddt.demos.su>+1b2bb8b8
Ответ: area://RU.UNIX.BSD?msgid=2:5030/500+5d5a4bcc
Ответ: area://RU.UNIX.BSD?msgid=2:5005/49+5d5a9eb6
==============================================================================
19 авг. 2019, понедельник, в 00:38 NOVT, Victor Sudakov написал(а):

VS> Hашел я процессор с AESNI, но что-то я что загружаю aesni.ko, что выгружаю его
VS> - результат "openssl speed aes-128-cbc" совершенно одинаковый. Видимо что-то
VS> делаю или понимаю не так.

Как сказано в man aesni, оно влияет на ядерную подсистему crypto(4).

Hо если openssl (работает не в ядре) запускается на процессоре с AES-NI
и с ключом -evp, то он использует AES-NI. Если ему не оторвать это
переменной среды OPENSSL_ia32cap:
https://www.openssl.org/docs/man1.1.0/man3/OPENSSL_ia32cap.html

env OPENSSL_ia32cap=~0x200000000000000 openssl ...

$ fgrep "define AESNI_CAPABLE" /usr/src/crypto/openssl/crypto/evp/e_aes.c
#  define AESNI_CAPABLE   (OPENSSL_ia32cap_P[1]&(1<<(57-32)))

bit #57 denoting AES-NI instruction set extension

Hа самом деле openssl даже на процессорах без AES-NI, но с поддержой
всяческих SSE/MMX/AVX очень здорово ускоряет вычисления за счет
использования 128-битной арифметики, если она доступна.

Перед тем, как разобрался с этим, почитав сорцы, я имел неосторожность
погонять openssl speed -evp aes-128-cbc -elapsed
на системе с ZFS (но без GELI) и поддержкой AES-NI в процессоре,
в разных комбинациях загружая/выгружая aesni.ko и cryptodev.ko
параллельно с работой файловой системы и словил креш с ребутом
на очередном прогоне openssl speed. Сервер удалённый без консоли
и запись крешдампов не была включена, так что на чём конкретно
оно срубилось, сказать точно не могу. Теоретически ZFS может
для вычисления крипто-хешей использовать crypto(9), туда не лазил.

Вообще это опасно, конечно, делать то, что я делал -
пока ядро не использует регистры CPU, с которыми работают
эти наборы команд (SSE/MMX/AVX/AESNI), то при переключении
контекста из приложения в ядро и обратно в то же приложение,
ядро не обязательно сохранять и восстанавливать все эти регистры
для экономии времени. Hо если ядро начинает их использовать,
то приходится. Что будет, если ядро в лице ZFS или ещё какого
потребителя crypto(9) начнет использовать такие регистры,
а потом выбить у него из под ног табуреточку одновременно
запуская openssl speed... Вполне какой-нибудь assert() мог
сработать, ну или просто скрешиться из-за дедлока какого.

Eugene
--- slrn/1.0.3 (FreeBSD)
* Origin: RDTC JSC (2:5006/1@fidonet)

К главной странице гейта
Powered by NoSFeRaTU`s FGHIGate
Открытие страницы: 0.100478 секунды