[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