OpenSSH performance with VIA padlock

Iain Morgan imorgan at nas.nasa.gov
Wed Nov 19 07:33:19 EST 2008


On Tue, Nov 18, 2008 at 21:21:28 +0200, Jan Klod wrote:
> On Tuesday 18 November 2008 18:47:58 you wrote:
> > On Tue, Nov 18, 2008 at 17:28:11 +0200, Jan Klod wrote:
> > > Hello list,
> > > please spend a minute considering these facts and maybe there is
> > > something to improve:
> > >
> > > 1) VIA Eden based board can write AES256 encrypted information on HDD at
> > > > 60MB/s
> Yes, this one I am very sure about. Padlock was used in that case!
> 
> > > 2) iperf shows NIC speed 69MB/s
> > > 3) openssl tests have even better results
> > > 4) openssh can transfer AES256 encrypted information at < 27MB/s (and
> > > worse with HDD encryption)
> > >
> > > It is better with openssh 5.x, than 4.6, but still I see no reason why
> > > results are so bad... Please, could someone explain? I don't believe,
> > > padlock is used properly...
> > >
> > > Jan
> >
> > Remember, cycles are also taken up by the message digest. You don't
> > mention which MAC you are using nor do you give any of the OpenSSL speed
> > numbers for AES or any of the digests.
> >
> > Also, what performance do you get for a memory-to-memory transfer over
> > the loopback?
> 
> mount -t ramfs ramfs /mnt/ram0
> mount -t ramfs ramfs /mnt/ram1
> dd if=/dev/sda of=/mnt/ram0/1 bs=512K count=400
> 400+0 records in
> 400+0 records out
> 209715200 bytes (210 MB) copied, 3.37567 s, 62.1 MB/s
> 
> dd if=/mnt/ram0/1 of=/mnt/ram1/1 bs=512K count=400
> 400+0 records in
> 400+0 records out
> 209715200 bytes (210 MB) copied, 1.31667 s, 159 MB/s
> 
> scp -c aes256-cbc -o MACs=hmac-md5 /mnt/del VIA:/mnt
> 100%  200MB  22.2MB/s
> 
> scp -c aes256-cbc -o MACs=hmac-sha1 /mnt/del VIA:/mnt
> 100%  200MB  18.2MB/s
> 
> scp -c aes256-cbc -o MACs=hmac-sha1-96 /mnt/del VIA:/mnt
> 100%  200MB  18.2MB/s
> 
> Those scp speeds are becoming slower as transfers are lasting longer, though. 
> That is a final value. Since md5, which is not supported by VIA padlock is 
> faster than sha1 (which is said to be supported), it is more than suspicios, 
> that hardware accelerator is not used...
> 
> zcat /proc/config.gz | grep PADLOCK
> CONFIG_CRYPTO_DEV_PADLOCK=y
> CONFIG_CRYPTO_DEV_PADLOCK_AES=y
> CONFIG_CRYPTO_DEV_PADLOCK_SHA=y
> 
> openssl speed:
> The 'numbers' are in 1000s of bytes per second processed.
> type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes
> md5               4335.51k    15169.19k    43828.91k    82976.77k   112391.51k
> hmac(md5)         5269.63k    17989.14k    49426.43k    87639.72k   113415.51k
> sha1              3996.45k    12144.02k    28099.67k    41740.97k    48594.07k
> sha256            2486.99k     5744.75k    10174.81k    12615.68k    13537.21k
> sha512            1755.15k     7005.40k    12058.54k    18123.09k    21217.55k
> aes-128 cbc      12835.45k    16641.41k    18044.67k    18433.37k    18512.29k
> aes-192 cbc      11315.21k    14180.52k    15334.57k    15637.16k    15742.29k
> aes-256 cbc      10224.77k    12465.86k    13237.33k    13445.46k    13480.06k
> 
> Well... I was wrong saying, that I have openssl aes HW accel. working. 
> 
> I am using 2.6.25 kernel with PaX, no other patches. Please, do you have any 
> idea at this point, why padlock is not used? What should I try?

By a 'memory-to-memory' transfer, I was meaning something like:

$ dd if=/dev/zero bs=1024 count=102400 | ssh localhost 'cat > /dev/null'

Note also that your openssl speed output indicates about 13MB/s for
AES-128 which is _slower_ than what you have reported for your scp's.
(You may need to use the -engine with openssl.)

You might want to also try umac-64 at openssh.com for your MAC.

-- 
Iain Morgan


More information about the openssh-unix-dev mailing list