[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