Patrick Lamaizière wrote:
Le Fri, 6 Jun 2008 23:41:35 +0200,
Patrick Lamaizière <[EMAIL PROTECTED]> a écrit :

Hello,

I'm trying to port the glxsb driver from OpenBSD to FreeBSD 7-STABLE
(via the NetBSD port).
" The glxsb driver supports the security block of the Geode LX
series processors.  The Geode LX is a member of the AMD Geode family
of integrated x86 system chips.

Driven by periodic checks for available data from the generator,
glxsb supplies entropy to the random(4) driver for common usage.

glxsb also supports acceleration of AES-128-CBC operations for
crypto(4)."

Well, I hope this is the final version.

http://user.lamaiziere.net/patrick/glxsb-220608.tar.gz

I added a patch for FreeBSD 6 but i'am not able to test it.

On 7-STABLE, I've tested with hundred openssl encryptions and some flood
pings under ipsec in the background. Looks good for me.

If someone can test and review it, it would be cool.

Hi,

I'm having trouble testing it. My CPU is Geode LX:

CPU: Geode(TM) Integrated Processor by AMD PCS (499.91-MHz 586-class CPU)
  Origin = "AuthenticAMD"  Id = 0x5a2  Stepping = 2
  Features=0x88a93d<FPU,DE,PSE,TSC,MSR,CX8,SEP,PGE,CMOV,CLFLUSH,MMX>
  AMD Features=0xc0400000<MMX+,3DNow!+,3DNow!>

When loading the driver, it attaches:

Jun 22 18:49:41 ursaminor kernel: cryptosoft0: <software crypto> on motherboard Jun 22 18:49:41 ursaminor kernel: glxsb0: <AMD Geode LX Security Block (AES-128-CBC,RNG)> mem 0xe0210000-0xe0213fff irq 11 at device 1.2 on pci0

I have the following klds loaded:

 7    1 0xc3819000 4000     glxsb.ko
 8    2 0xc389d000 23000    crypto.ko
 9    2 0xc38c0000 a000     zlib.ko
10    1 0xc381e000 4000     cryptodev.ko

Running openssl speed without cryptodev gives:

> openssl speed aes-128-cbc
To get the most accurate results, try to run this
program when this computer is idle.
Doing aes-128 cbc for 3s on 16 size blocks: 1005506 aes-128 cbc's in 0.98s
Doing aes-128 cbc for 3s on 64 size blocks: 262185 aes-128 cbc's in 0.98s
Doing aes-128 cbc for 3s on 256 size blocks: 66055 aes-128 cbc's in 0.97s
Doing aes-128 cbc for 3s on 1024 size blocks: 16680 aes-128 cbc's in 0.98s
Doing aes-128 cbc for 3s on 8192 size blocks: 2086 aes-128 cbc's in 0.98s
OpenSSL 0.9.8e 23 Feb 2007
built on: Tue Apr 15 19:40:37 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 aes-128 cbc 16465.91k 17171.01k 17422.55k 17486.30k 17485.16k


But running it with cryptodev gives:

> openssl speed aes-128-cbc -engine cryptodev
engine "cryptodev" set.
To get the most accurate results, try to run this
program when this computer is idle.
Doing aes-128 cbc for 3s on 16 size blocks: 1007404 aes-128 cbc's in 0.97s
Doing aes-128 cbc for 3s on 64 size blocks: 262177 aes-128 cbc's in 0.98s
Doing aes-128 cbc for 3s on 256 size blocks: 66500 aes-128 cbc's in 0.98s
Doing aes-128 cbc for 3s on 1024 size blocks: 16564 aes-128 cbc's in 0.97s
Doing aes-128 cbc for 3s on 8192 size blocks: 2087 aes-128 cbc's in 0.98s
OpenSSL 0.9.8e 23 Feb 2007
built on: Tue Apr 15 19:40:37 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 aes-128 cbc 16545.20k 17173.92k 17417.71k 17476.48k 17485.82k

The results are practically the same.

This is on 7-STABLE from April.

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to