[dpdk-dev] [PATCH v2 3/3] app/crypto-perf: introduce new performance test application

De Lara Guarch, Pablo pablo.de.lara.guarch at intel.com
Mon Jan 9 15:51:25 CET 2017



> -----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.

> +				!(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