[dpdk-dev] [PATCH v2 3/3] app/crypto-perf: introduce new performance test application
Mrozowicz, SlawomirX
slawomirx.mrozowicz at intel.com
Tue Jan 10 08:28:01 CET 2017
>-----Original Message-----
>From: De Lara Guarch, Pablo
>Sent: Monday, January 9, 2017 3:51 PM
>To: Mrozowicz, SlawomirX <slawomirx.mrozowicz at intel.com>;
>dev at dpdk.org
>Cc: Mrozowicz, SlawomirX <slawomirx.mrozowicz at intel.com>; Doherty,
>Declan <declan.doherty at intel.com>; Azarewicz, PiotrX T
><piotrx.t.azarewicz at intel.com>; Kerlin, Marcin <marcin.kerlin at intel.com>;
>Kobylinski, MichalX <michalx.kobylinski at intel.com>
>Subject: RE: [dpdk-dev] [PATCH v2 3/3] app/crypto-perf: introduce new
>performance test application
>
>
>
>> -----Original Message-----
>> From: dev [mailto:dev-bounces at dpdk.org] On Behalf Of Slawomir
>> Mrozowicz
>> Sent: Thursday, January 05, 2017 4:50 PM
>> To: dev at dpdk.org
>> Cc: Mrozowicz, SlawomirX; Doherty, Declan; Azarewicz, PiotrX T;
>> Kerlin, Marcin; Kobylinski, MichalX
>> Subject: [dpdk-dev] [PATCH v2 3/3] app/crypto-perf: introduce new
>> performance test application
>>
>> This patchset introduce new application which allows measuring
>> performance parameters of PMDs available in crypto tree. The goal of
>> this application is to replace existing performance tests in app/test.
>> Parameters available are: throughput (--ptest throughput) and latency
>> (--ptest latency). User can use multiply cores to run tests on but
>> only one type of crypto PMD can be measured during single application
>> execution. Cipher parameters, type of device, type of operation and
>> chain mode have to be specified in the command line as application
>> parameters. These parameters are checked using device capabilities
>> structure.
>> Couple of new library functions in librte_cryptodev are introduced for
>> application use.
>> To build the application a CONFIG_RTE_APP_CRYPTO_PERF flag has to be
>> set (it is set by default).
>> Example of usage: -c 0xc0 --vdev crypto_aesni_mb_pmd -w 0000:00:00.0
>> -- --ptest throughput --devtype crypto_aesni_mb --optype
>> cipher-then-auth --cipher-algo aes-cbc --cipher-op encrypt
>> --cipher-key-sz 16 --auth-algo sha1-hmac --auth-op generate
>> --auth-key-sz 64 --auth-digest-sz 12 --total-ops 10000000 --burst-sz
>> 32 --buffer-sz 64
>>
>> Signed-off-by: Declan Doherty <declan.doherty at intel.com>
>> Signed-off-by: Slawomir Mrozowicz <slawomirx.mrozowicz at intel.com>
>> Signed-off-by: Piotr Azarewicz <piotrx.t.azarewicz at intel.com>
>> Signed-off-by: Marcin Kerlin <marcinx.kerlin at intel.com>
>> Signed-off-by: Michal Kobylinski <michalx.kobylinski at intel.com>
>> ---
>> MAINTAINERS | 4 +
>> app/Makefile | 1 +
>> app/crypto-perf/Makefile | 51 ++
>> app/crypto-perf/cperf.h | 58 ++
>> app/crypto-perf/cperf_ops.c | 474 +++++++++++++++
>> app/crypto-perf/cperf_ops.h | 66 +++
>> app/crypto-perf/cperf_options.h | 104 ++++
>> app/crypto-perf/cperf_options_parsing.c | 875
>> ++++++++++++++++++++++++++++
>> app/crypto-perf/cperf_test_latency.c | 685
>> ++++++++++++++++++++++
>> app/crypto-perf/cperf_test_latency.h | 57 ++
>> app/crypto-perf/cperf_test_throughput.c | 651
>> +++++++++++++++++++++
>> app/crypto-perf/cperf_test_throughput.h | 58 ++
>> app/crypto-perf/cperf_test_vector_parsing.c | 500 ++++++++++++++++
>> app/crypto-perf/cperf_test_vector_parsing.h | 73 +++
>> app/crypto-perf/cperf_test_vectors.c | 476 +++++++++++++++
>> app/crypto-perf/cperf_test_vectors.h | 98 ++++
>> app/crypto-perf/cperf_verify_parser.c | 314 ++++++++++
>> app/crypto-perf/data/aes_cbc_128_sha.data | 503 ++++++++++++++++
>> app/crypto-perf/data/aes_cbc_192_sha.data | 504 ++++++++++++++++
>> app/crypto-perf/data/aes_cbc_256_sha.data | 504 ++++++++++++++++
>> app/crypto-perf/main.c | 411 +++++++++++++
>> config/common_base | 6 +
>> doc/guides/rel_notes/release_17_02.rst | 5 +
>> doc/guides/tools/cryptoperf.rst | 397 +++++++++++++
>> doc/guides/tools/index.rst | 1 +
>> 25 files changed, 6876 insertions(+)
>
>...
>
>> diff --git a/app/crypto-perf/cperf_options_parsing.c b/app/crypto-
>> perf/cperf_options_parsing.c
>
>...
>
>> +int
>> +cperf_options_check(struct cperf_options *options) {
>> + if (options->segments_nb > options->buffer_sz) {
>> + RTE_LOG(ERR, USER1,
>> + "Segments number greater than buffer
>> size.\n");
>> + return -EINVAL;
>> + }
>
>...
>
>> + } else if (options->op_type == CPERF_AEAD) {
>> + if (!(options->cipher_op ==
>> RTE_CRYPTO_CIPHER_OP_ENCRYPT &&
>> + options->auth_op ==
>> + RTE_CRYPTO_AUTH_OP_GENERATE) ||
>
>This logic is incorrect. This OR should be an AND.
[Sławomir]
Sure. You are right. I am changing it.
>
>> + !(options->cipher_op ==
>> + RTE_CRYPTO_CIPHER_OP_DECRYPT &&
>> + options->auth_op ==
>> + RTE_CRYPTO_AUTH_OP_VERIFY)) {
>> + RTE_LOG(ERR, USER1, "Use together options:
>> encrypt and"
>> + " generate or decrypt and verify.\n");
>> + return -EINVAL;
>> + }
>> + }
>> +
>> + return 0;
>> +}
>
More information about the dev
mailing list