This change adds setting up of alignment mask for buffers according to the value, which is obtained from the kernel algorithm definition.
Signed-off-by: Vladimir Zapolskiy <vzapols...@gmail.com> --- examples/hashcrypt_speed.c | 10 ++++++---- examples/sha_speed.c | 10 ++++++---- examples/speed.c | 12 ++++++++++-- 3 files changed, 22 insertions(+), 10 deletions(-) diff --git a/examples/hashcrypt_speed.c b/examples/hashcrypt_speed.c index f5e0e40..2344577 100644 --- a/examples/hashcrypt_speed.c +++ b/examples/hashcrypt_speed.c @@ -80,7 +80,7 @@ int hash_data(struct session_op *sess, int fdc, int chunksize, int alignmask) uint8_t mac[AALG_MAX_RESULT_LEN]; if (alignmask) { - if (posix_memalign((void **)&buffer, alignmask, chunksize)) { + if (posix_memalign((void **)&buffer, alignmask + 1, chunksize)) { printf("posix_memalign() failed!\n"); return 1; } @@ -128,7 +128,7 @@ int hash_data(struct session_op *sess, int fdc, int chunksize, int alignmask) int main(void) { - int fd, i, fdc = -1; + int fd, i, fdc = -1, alignmask = 0; struct session_op sess; char keybuf[32]; #ifdef CIOCGSESSINFO @@ -165,10 +165,11 @@ int main(void) } printf("requested hash CRYPTO_SHA1, got %s with driver %s\n", siop.hash_info.cra_name, siop.hash_info.cra_driver_name); + alignmask = siop.alignmask; #endif for (i = 256; i <= (64 * 4096); i *= 2) { - if (hash_data(&sess, fdc, i, siop.alignmask)) + if (hash_data(&sess, fdc, i, alignmask)) break; } @@ -189,10 +190,11 @@ int main(void) } printf("requested hash CRYPTO_SHA2_256, got %s with driver %s\n", siop.hash_info.cra_name, siop.hash_info.cra_driver_name); + alignmask = siop.alignmask; #endif for (i = 256; i <= (64 * 1024); i *= 2) { - if (hash_data(&sess, fdc, i, 0)) + if (hash_data(&sess, fdc, i, alignmask)) break; } diff --git a/examples/sha_speed.c b/examples/sha_speed.c index f31558f..6389db2 100644 --- a/examples/sha_speed.c +++ b/examples/sha_speed.c @@ -80,7 +80,7 @@ int hash_data(struct session_op *sess, int fdc, int chunksize, int alignmask) uint8_t mac[AALG_MAX_RESULT_LEN]; if (alignmask) { - if (posix_memalign((void **)&buffer, alignmask, chunksize)) { + if (posix_memalign((void **)&buffer, alignmask + 1, chunksize)) { printf("posix_memalign() failed!\n"); return 1; } @@ -128,7 +128,7 @@ int hash_data(struct session_op *sess, int fdc, int chunksize, int alignmask) int main(void) { - int fd, i, fdc = -1; + int fd, i, fdc = -1, alignmask = 0; struct session_op sess; char keybuf[32]; #ifdef CIOCGSESSINFO @@ -161,10 +161,11 @@ int main(void) } printf("requested hash CRYPTO_SHA1, got %s with driver %s\n", siop.hash_info.cra_name, siop.hash_info.cra_driver_name); + alignmask = siop.alignmask; #endif for (i = 256; i <= (64 * 4096); i *= 2) { - if (hash_data(&sess, fdc, i, siop.alignmask)) + if (hash_data(&sess, fdc, i, alignmask)) break; } @@ -183,10 +184,11 @@ int main(void) } printf("requested hash CRYPTO_SHA2_256, got %s with driver %s\n", siop.hash_info.cra_name, siop.hash_info.cra_driver_name); + alignmask = siop.alignmask; #endif for (i = 256; i <= (64 * 1024); i *= 2) { - if (hash_data(&sess, fdc, i, 0)) + if (hash_data(&sess, fdc, i, alignmask)) break; } diff --git a/examples/speed.c b/examples/speed.c index 1d5525c..59eaf06 100644 --- a/examples/speed.c +++ b/examples/speed.c @@ -80,7 +80,7 @@ int encrypt_data(struct session_op *sess, int fdc, int chunksize, int alignmask) char metric[16]; if (alignmask) { - if (posix_memalign((void **)&buffer, alignmask, chunksize)) { + if (posix_memalign((void **)&buffer, alignmask + 1, chunksize)) { printf("posix_memalign() failed!\n"); return 1; } @@ -191,9 +191,17 @@ int main(int argc, char** argv) perror("ioctl(CIOCGSESSION)"); return 1; } +#ifdef CIOCGSESSINFO + siop.ses = sess.ses; + if (ioctl(fdc, CIOCGSESSINFO, &siop)) { + perror("ioctl(CIOCGSESSINFO)"); + return 1; + } + alignmask = siop.alignmask; +#endif for (i = 256; i <= (64 * 1024); i *= 2) { - if (encrypt_data(&sess, fdc, i, 0)) + if (encrypt_data(&sess, fdc, i, alignmask)) break; } -- 1.7.2.3 _______________________________________________ Cryptodev-linux-devel mailing list Cryptodev-linux-devel@gna.org https://mail.gna.org/listinfo/cryptodev-linux-devel