slow freebsd cripto-accelerating framework

Vasile Marii vascim at yahoo.com
Mon Mar 2 06:24:38 PST 2009


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!

---------------
Vasile Marii



      


More information about the freebsd-hackers mailing list