Op 16 okt. 2013, om 11:45 heeft Koen Kooi <k...@dominion.thruhere.net> het volgende geschreven:
> > Op 16 okt. 2013, om 11:20 heeft Phil Blundell <p...@pbcl.net> het volgende > geschreven: > >> On Wed, 2013-10-16 at 09:25 +0200, Koen Kooi wrote: >>> From: Koen Kooi <koen.k...@linaro.org> >>> >>> This enables aes and sha1 assembly at buildtime. Openssl does a >>> runtime check to see which portion gets enabled. >> >> [...] >> >>> Algo blocksize ops/s after >>> ops/s before difference >>> ------------------------------------------- >>> MD5 16 308,766 264,664 -14.28% >>> 64 277,090 263,340 -4.96% >>> 256 212,652 197,043 -7.34% >>> 1024 103,604 100,157 -3.33% >>> 8192 17,936 17,796 -0.78% >> >> Do you know why it's causing MD5 to get slower? I guess md5 with >> blocksize=16 is not a very common case, but still. > > I really don't know and it is the only algo that gets a lot slower. This > patch is a preparation for (more) NEON optimizations which seem to fix the > regression, see > > > https://docs.google.com/spreadsheet/ccc?key=0AhgZ33Tf6eBldHVONjRXRnItWld4eFlRWTJ3RzVIdGc&usp=sharing > > and > > > http://dominion.thruhere.net/koen/angstrom/0002-openssl-1.0.1e-add-ARMv7-AES-optimizations.patch > > I need to test that patch on A9 and A15 cores as well since it doesn't seem > to do a lot on A8 cores :( And on A9 cores linux-armv4 is 20% *faster* on MD5 with blocksize=16, see spreadsheet above. So it probably is a scheduling issue that favours A9 cores. regards, Koen. > >> Also, it seems generally a bit unwholesome for openssl to be picking its >> own CFLAGS at all. Would it be better to just make it use the same >> CFLAGS as everything else? > > openssl.inc already pokes at CLAG(S): > > CFLAG = "${@base_conditional('SITEINFO_ENDIANNESS', 'le', '-DL_ENDIAN', > '-DB_ENDIAN', d)} \ > -DTERMIO ${CFLAGS} -Wall -Wa,--noexecstack" > > The complete command looks like this: > > arm-angstrom-linux-gnueabi-gcc -march=armv7-a -mthumb-interwork > -mfloat-abi=hard -mfpu=neon -mtune=cortex-a8 > --sysroot=/build/v2013.06/build/tmp-angstrom_v2013_06-eglibc/sysroots/beaglebone > -I. -I.. -I../include -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT > -DDSO_DLFCN -DHAVE_DLFCN_H -DL_ENDIAN -DTERMIO -O2 -pipe -g > -feliminate-unused-debug-types -Wall -Wa,--noexecstack -DHAVE_CRYPTODEV > -DUSE_CRYPTODEV_DIGESTS -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_GF2m > -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DAES_ASM -DBSAES_ASM -DGHASH_ASM -c > -c -o armv4cpuid.o armv4cpuid.S > > So the '$cflags = -DTERMIO -O3 -Wall' in linux-armv4 gets overridden by > OE, just like we want :) > > regards, > > Koen _______________________________________________ Openembedded-core mailing list Openembedded-core@lists.openembedded.org http://lists.openembedded.org/mailman/listinfo/openembedded-core