Hardware Crypto Accelerator wird nicht benutzt

rMarkus

Chuck The Plant
Hallo,

ich setze eine Karte mit Broadcom BCM5820 unter FreeBSD 6.3 ein.
Der Treiber ubsec(4) kann geladen werden und meldet sich korrekt.
Code:
ubsec0 mem 0xfebe0000-0xfebeffff irq 23 at device 5.0 on pci0
ubsec0: Broadcom 5820


Eigentlich habe ich erwartet, dass nun z.B. OpenSSL diese auch nutzt.


openssl speed ohne Karte:
Code:
OpenSSL 0.9.7e-p1 25 Oct 2004
built on: Sat Jun 14 16:00:17 CEST 2008
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial) blowfish(idx)
compiler: cc
available timing options: USE_TOD HZ=128 [sysconf value]
timing function used: getrusage
The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2               1315.83k     2849.01k     4130.45k     4526.54k     4702.50k
mdc2              3404.10k     4181.76k     4398.75k     4513.71k     4536.28k
md4               8117.28k    28745.99k    83851.53k   160516.33k   209246.63k
md5               6621.11k    22095.66k    58265.07k    97792.62k   137204.35k
hmac(md5)         8875.38k    27371.25k    67007.85k   105701.33k   133393.56k
sha1              6466.21k    19773.47k    45607.87k    68558.36k    80831.00k
rmd160            4935.85k    13911.25k    29361.59k    40984.25k    46183.91k
rc4              80481.19k    88871.10k    90811.49k    91773.98k    91727.12k
des cbc          40612.45k    40905.01k    40794.83k    40909.69k    41029.47k
des ede3         15772.11k    15872.70k    15987.52k    15970.10k    16035.86k
idea cbc             0.00         0.00         0.00         0.00         0.00
rc2 cbc          11462.98k    11912.12k    11930.27k    11906.64k    11898.10k
rc5-32/12 cbc    83118.73k    84579.28k    84504.24k    84644.42k    84608.48k
blowfish cbc     71114.12k    72651.11k    72771.36k    73112.45k    72302.67k
cast cbc         45463.57k    50879.89k    52634.49k    53579.08k    52862.08k
aes-128 cbc      44080.72k    41559.76k    41786.12k    42114.39k    41980.49k
aes-192 cbc      39097.76k    36750.21k    37025.60k    37294.76k    36967.23k
aes-256 cbc      34641.94k    32874.76k    32977.86k    33182.05k    32849.11k
                  sign    verify    sign/s verify/s
rsa  512 bits   0.0011s   0.0001s    951.4   9875.0
rsa 1024 bits   0.0050s   0.0003s    200.6   3553.9
rsa 2048 bits   0.0299s   0.0009s     33.5   1109.1
rsa 4096 bits   0.1998s   0.0031s      5.0    320.1
                  sign    verify    sign/s verify/s
dsa  512 bits   0.0008s   0.0010s   1180.2    961.3
dsa 1024 bits   0.0025s   0.0030s    402.4    335.2
dsa 2048 bits   0.0083s   0.0101s    120.8     98.7

openssl speed mit Karte und Treiber geladen
Code:
OpenSSL 0.9.7e-p1 25 Oct 2004
built on: Thu Jul 10 17:33:46 CEST 2008
options:bn(64,32) md2(int) rc4(idx,int) des(ptr,risc1,16,long) aes(partial)
blowfish(idx)
compiler: cc
available timing options: USE_TOD HZ=128 [sysconf value] timing function used: getrusage The 'numbers' are in 1000s of bytes per second processed.
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
md2               1313.79k     2870.72k     4071.30k     4594.55k    4769.29k
mdc2              3387.11k     4171.57k     4403.03k     4485.56k    4513.43k
md4               8133.77k    28576.06k    85234.63k   161511.50k  209040.74k
md5               6581.27k    21952.02k    58175.08k    97256.50k  137210.28k
hmac(md5)         8875.81k    27200.88k    66535.55k   107681.19k  133237.59k
sha1              6439.98k    19743.84k    45478.24k    68458.06k   80772.87k
rmd160            4892.36k    13906.12k    29347.15k    40933.92k   46080.74k
rc4              80423.98k    88813.45k    90749.54k    91721.21k   91682.53k
des cbc          40587.34k    40878.65k    40769.55k    40882.98k   41004.60k
des ede3         15710.13k    15892.92k    15988.59k    15992.02k   15983.14k
idea cbc             0.00         0.00         0.00         0.00    0.00
rc2 cbc          11562.70k    11913.60k    11929.63k    11951.36k   11886.83k
rc5-32/12 cbc    83284.67k    84296.88k    84448.50k    84596.27k   84556.41k
blowfish cbc     71073.90k    72605.74k    72723.98k    73065.21k   72263.79k
cast cbc         45436.91k    50845.28k    52596.01k    53543.37k   52834.57k
aes-128 cbc      44726.09k    41651.40k    42096.24k    42509.30k   42227.51k
aes-192 cbc      39436.93k    36728.63k    36922.90k    37336.14k   37061.44k
aes-256 cbc      34857.48k    32830.95k    33050.71k    33374.45k   33042.68k
                  sign    verify    sign/s verify/s
rsa  512 bits   0.0011s   0.0001s    950.4   9871.3
rsa 1024 bits   0.0050s   0.0003s    200.5   3551.6
rsa 2048 bits   0.0299s   0.0009s     33.4   1110.8
rsa 4096 bits   0.2000s   0.0031s      5.0    319.7
                  sign    verify    sign/s verify/s
dsa  512 bits   0.0008s   0.0010s   1180.9    990.0
dsa 1024 bits   0.0025s   0.0030s    402.5    328.1
dsa 2048 bits   0.0083s   0.0102s    120.9     98.3

Wie man sieht, sind die Werte ziemlich gleich.
Die Karte unterstützt eigentlich DES, 3DES, MD5, SHA1 und random(4).

Muss man noch irgendwas bei dem OpenSSL konfigurieren, dass diese Karte genutzt wird?

PS: Die 64-Bit-Karte steckt auch in einem 64-Bit-Slot
 
crypto(4) ist im Generic-Kernel (als Modul)

Ausgangszustand:
Code:
root@r19:[~]# kldstat
Id Refs Address    Size     Name
 1    3 0xc0400000 7a05b0   kernel
 2    1 0xc0ba1000 5c304    acpi.ko


Laden des Treibers
Code:
kldload ubsec

dmesg des Treibers
Code:
ubsec0 mem 0xfebe0000-0xfebeffff irq 27 at device 7.0 on pci0
ubsec0: Broadcom 5820

geladene Module
Code:
root@r19:[~]# kldstat
Id Refs Address    Size     Name
 1    6 0xc0400000 7a05b0   kernel
 2    1 0xc0ba1000 5c304    acpi.ko
 3    1 0xc75bb000 9000     ubsec.ko
 4    1 0xc75c4000 19000    crypto.ko
 5    1 0xc75dd000 a000     zlib.ko

crypto ist also automatisch als Abhängigkeit zu ubsec dabei.


Muss man vielleicht bei OpenSSH was konfigurieren oder OpenSSL anders compilieren?
Unter OpenBSD und der AES-Engine der neuen Geode-CPUs nutzt OpenSSL diese auch nicht, obwohl das Kernel-Modul sogar automatisch geladen wird.
 
Jo da stimmt was mit OpenSSL nicht. Hatte das Problem auch mal beim Benchmarken...

OT: sind so Crypto-Prozessoren eigentlich kumulativ? Also wenn ich zwei habe, verteilt crypto dann die Load?
 
Zurück
Oben