From patchwork Tue Nov 6 12:49:09 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Varghese, Vipin" X-Patchwork-Id: 47894 X-Patchwork-Delegate: thomas@monjalon.net Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 9BC234F91; Tue, 6 Nov 2018 13:53:16 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 8986A532C for ; Tue, 6 Nov 2018 13:53:14 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga001.fm.intel.com ([10.253.24.23]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 06 Nov 2018 04:53:14 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,471,1534834800"; d="scan'208";a="105696558" Received: from unknown (HELO saesrv02-S2600CWR.intel.com) ([10.224.122.203]) by fmsmga001.fm.intel.com with ESMTP; 06 Nov 2018 04:53:11 -0800 From: Vipin Varghese To: dev@dpdk.org, thomas@monjalon.net, reshma.pattan@intel.com, stephen@networkplumber.org, john.mcnamara@intel.com Cc: stephen1.byrne@intel.com, michael.j.glynn@intel.com, amol.patel@intel.com, Vipin Varghese Date: Tue, 6 Nov 2018 18:19:09 +0530 Message-Id: <20181106124912.40700-6-vipin.varghese@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181106124912.40700-1-vipin.varghese@intel.com> References: <20181106124912.40700-1-vipin.varghese@intel.com> Subject: [dpdk-dev] [PATCH v4 6/9] app/procinfo: add support for show crypto X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Function show_crypto is used for displaying the crypto PMD under the primary process. Signed-off-by: Vipin Varghese --- v4: - add space to compare - Vipin Varghese V3: - replace MACRO to function - Reshma Pathan & Stephen Hemminger - add memset for struct elements - Reshma Pathan - change display formating of flags - Vipin Varghese - use MACRO for string - Vipin Varghese --- app/proc-info/main.c | 80 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 79 insertions(+), 1 deletion(-) diff --git a/app/proc-info/main.c b/app/proc-info/main.c index 8ec2e9474..7213b43fe 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -1032,10 +1032,88 @@ show_tm(void) STATS_BDR_STR(50, ""); } +static void +display_crypto_feature_info(uint64_t x) +{ + if (x == 0) + return; + + printf("\t -- feature flags\n"); + printf("\t\t + symmetric (%c), asymmetric (%c)\n" + "\t\t + symmetric operation chaining (%c)\n", + (x & RTE_CRYPTODEV_FF_SYMMETRIC_CRYPTO) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_ASYMMETRIC_CRYPTO) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_SYM_OPERATION_CHAINING) ? 'y' : 'n'); + printf("\t\t + CPU: SSE (%c), AVX (%c), AVX2 (%c), AVX512 (%c)\n", + (x & RTE_CRYPTODEV_FF_CPU_SSE) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_CPU_AVX) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_CPU_AVX2) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_CPU_AVX512) ? 'y' : 'n'); + printf("\t\t + AESNI: CPU (%c), HW (%c)\n", + (x & RTE_CRYPTODEV_FF_CPU_AESNI) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_HW_ACCELERATED) ? 'y' : 'n'); + printf("\t\t + INLINE (%c)\n", + (x & RTE_CRYPTODEV_FF_SECURITY) ? 'y' : 'n'); + printf("\t\t + ARM: NEON (%c), CE (%c)\n", + (x & RTE_CRYPTODEV_FF_CPU_NEON) ? 'y' : 'n', + (x & RTE_CRYPTODEV_FF_CPU_ARM_CE) ? 'y' : 'n'); + printf("\t -- buffer offload\n"); + printf("\t\t + IN_PLACE_SGL (%c)\n", + (x & RTE_CRYPTODEV_FF_IN_PLACE_SGL) ? 'y' : 'n'); + printf("\t\t + OOP_SGL_IN_SGL_OUT (%c)\n", + (x & RTE_CRYPTODEV_FF_OOP_SGL_IN_SGL_OUT) ? 'y' : 'n'); + printf("\t\t + OOP_SGL_IN_LB_OUT (%c)\n", + (x & RTE_CRYPTODEV_FF_OOP_SGL_IN_LB_OUT) ? 'y' : 'n'); + printf("\t\t + OOP_LB_IN_SGL_OUT (%c)\n", + (x & RTE_CRYPTODEV_FF_OOP_LB_IN_SGL_OUT) ? 'y' : 'n'); + printf("\t\t + OOP_LB_IN_LB_OUT (%c)\n", + (x & RTE_CRYPTODEV_FF_OOP_LB_IN_LB_OUT) ? 'y' : 'n'); +} + static void show_crypto(void) { - printf(" crypto\n"); + uint8_t crypto_dev_count = rte_cryptodev_count(), i; + + snprintf(bdr_str, MAX_STRING_LEN, " show - CRYPTO PMD %"PRIu64, + rte_get_tsc_hz()); + STATS_BDR_STR(10, bdr_str); + + for (i = 0; i < crypto_dev_count; i++) { + struct rte_cryptodev_info dev_info; + struct rte_cryptodev_stats stats; + + memset(&dev_info, 0, sizeof(dev_info)); + rte_cryptodev_info_get(i, &dev_info); + + printf(" - device (%u)\n", i); + printf("\t -- name (%s)\n" + "\t -- driver (%s)\n" + "\t -- id (%u) on socket (%d)\n" + "\t -- queue pairs (%d)\n", + rte_cryptodev_name_get(i), + dev_info.driver_name, + dev_info.driver_id, + dev_info.device->numa_node, + rte_cryptodev_queue_pair_count(i)); + + display_crypto_feature_info(dev_info.feature_flags); + + printf("\t -- stats\n"); + memset(&stats, 0, sizeof(0)); + if (rte_cryptodev_stats_get(i, &stats) == 0) { + printf("\t\t + enqueue count (%"PRIu64")" + " error (%"PRIu64")\n", + stats.enqueued_count, + stats.enqueue_err_count); + printf("\t\t + dequeue count (%"PRIu64")" + " error (%"PRIu64")\n", + stats.dequeued_count, + stats.dequeue_err_count); + } + } + + STATS_BDR_STR(50, ""); } static void