Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 2 Mar 2009 20:14:40 +0100
From:      Patrick =?ISO-8859-15?Q?Lamaizi=E8re?= <patfbsd@davenulle.org>
To:        vascim@yahoo.com
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: slow freebsd cripto-accelerating framework
Message-ID:  <20090302201440.1c878fab@baby-jane.lamaiziere.net>
In-Reply-To: <965289.45194.qm@web38306.mail.mud.yahoo.com>
References:  <965289.45194.qm@web38306.mail.mud.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Le Mon, 2 Mar 2009 05:57:56 -0800 (PST),
Vasile Marii <vascim@yahoo.com>:

> I'm working to port a cripto accelerating device driver(it's custom
> made device) from linux (which works fine) to bsd (freebsd 7.1), but
> i couldn't get the same(decent) results as for linux. The driver for
> linux and for bsd both a started from the corresponding driver for
> geode LX cripo accelerator. I concluded that it's not the device and
> the bottleneck is somewhere in the kernel. I modified the original
> glxsb(geode crypto accelerator) driver and made it return immediately
> after receiving a cripto task (so the device actually does nothing
> aka device is taking zero time to cript any block of data) and the
> data is actually not cripted. I made this for debugging purposes to
> see if the kernel delivers enough data to the device. The netperf
> results between the two exactly the same machines(with a
> tunnel(AES-CBC with HMAC_SHA256) between them) with the exactly the
> same driver shows a throughput of maximum 20Mbps(without IPSEC tunnel
> i can get 94,1 Mbps). I've seen similar problems on some threads
> regarding VIA(which should work with 1,1 Gbps throughput). I've
> tested the device not cripting network traffic (meaning "feed" the
> device manually and give it data immediately after it finishes the
> previous) and i can get a full speed of 117 Mbps(meaning it should be
> enough for my needs of 100Mbps NIC). Does anybody have any better
> results on glxsb or via?(i mean a netperf test between two machines)
> or there is a hack or a setting in the kernel or somewhere else? Any
> help is appreciated. Thanks!

I didn't make any benchmark with glxsb on IPsec. I've made some
measures with the cryptotest tool (see /usr/src/tools/tools/crypto/) and
openssl. The throughput is far more better than 20 Mbits (around
150 Mbits with data size = 4096 bytes).

So I don't think that the botleneck is in the crypto framework.
  
But the throughput heavely depends of the size of the data see (on
blue the current glxsb):
http://user.lamaiziere.net/patrick/glxsb-171108/glxsb-perf.pdf
Measured with the cryptotest tool.

While I'm here, does someone know why there is a big drop in the
throughput when the size is just > 4096 bytes (the size of a page on
I386)? 

Regards.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20090302201440.1c878fab>