From patchwork Tue Nov 6 02:34:37 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Varghese, Vipin" X-Patchwork-Id: 47869 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 BDA115B30; Tue, 6 Nov 2018 03:38:43 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id 08F415F2C for ; Tue, 6 Nov 2018 03:38:42 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Nov 2018 18:38:42 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,469,1534834800"; d="scan'208";a="86951059" Received: from unknown (HELO saesrv02-S2600CWR.intel.com) ([10.224.122.203]) by orsmga007.jf.intel.com with ESMTP; 05 Nov 2018 18:38:39 -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 08:04:37 +0530 Message-Id: <20181106023438.36740-8-vipin.varghese@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181106023438.36740-1-vipin.varghese@intel.com> References: <20181106023438.36740-1-vipin.varghese@intel.com> Subject: [dpdk-dev] [PATCH v4 8/9] app/procinfo: add support for show mempool 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_mempool is used for displaying the MEMPOOL of the primary process. For valid mempool elements are iterated for max of 256 bytes. Signed-off-by: Vipin Varghese --- v4: - add spacing for flag compare - Vipin Varghese V3: - add avail and in use - Vipin Varghese - add flag split - Vipin Varghese --- app/proc-info/main.c | 67 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 66 insertions(+), 1 deletion(-) diff --git a/app/proc-info/main.c b/app/proc-info/main.c index b97668d7f..bd28556ed 100644 --- a/app/proc-info/main.c +++ b/app/proc-info/main.c @@ -33,6 +33,7 @@ #include #include #include +#include /* Maximum long option length for option parsing. */ #define MAX_LONG_OPT_SZ 64 @@ -1154,10 +1155,74 @@ show_ring(char *name) STATS_BDR_STR(50, ""); } +static void +mempool_itr_obj(struct rte_mempool *mp, + void *opaque, void *obj, + unsigned int obj_idx) +{ + printf(" - obj_idx %u opaque %p obj %p\n", + obj_idx, opaque, obj); + + if (obj) + rte_hexdump(stdout, " Obj Content", + obj, (mp->elt_size > 256)?256:mp->elt_size); +} + static void show_mempool(char *name) { - printf(" mempools Name (%s)\n", name); + uint64_t flags = 0; + + snprintf(bdr_str, MAX_STRING_LEN, " show - MEMPOOL %"PRIu64, + rte_get_tsc_hz()); + STATS_BDR_STR(10, bdr_str); + + if (name != NULL) { + struct rte_mempool *ptr = rte_mempool_lookup(name); + if (ptr != NULL) { + flags = ptr->flags; + printf(" - Name: %s on socket %d\n" + " - flags:\n" + "\t -- No spread (%c)\n" + "\t -- No cache align (%c)\n" + "\t -- SP put (%c), SC get (%c)\n" + "\t -- Pool created (%c)\n" + "\t -- No IOVA config (%c)\n", + ptr->name, + ptr->socket_id, + (flags & MEMPOOL_F_NO_SPREAD) ? 'y' : 'n', + (flags & MEMPOOL_F_NO_CACHE_ALIGN) ? 'y' : 'n', + (flags & MEMPOOL_F_SP_PUT) ? 'y' : 'n', + (flags & MEMPOOL_F_SC_GET) ? 'y' : 'n', + (flags & MEMPOOL_F_POOL_CREATED) ? 'y' : 'n', + (flags & MEMPOOL_F_NO_IOVA_CONTIG) ? 'y' : 'n'); + printf(" - Size %u Cache %u element %u\n" + " - header %u trailer %u\n" + " - private data size %u\n", + ptr->size, + ptr->cache_size, + ptr->elt_size, + ptr->header_size, + ptr->trailer_size, + ptr->private_data_size); + printf(" - memezone - socket %d\n", + ptr->mz->socket_id); + printf(" - Count: avail (%u), in use (%u)\n", + rte_mempool_avail_count(ptr), + rte_mempool_in_use_count(ptr)); + + /* iterate each object */ + int ret = rte_mempool_obj_iter(ptr, + mempool_itr_obj, NULL); + printf(" - iterated %u objects\n", ret); + + STATS_BDR_STR(50, ""); + return; + } + } + + rte_mempool_list_dump(stdout); + STATS_BDR_STR(50, ""); } int From patchwork Tue Nov 6 02:34:38 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Varghese, Vipin" X-Patchwork-Id: 47870 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 A795E5F34; Tue, 6 Nov 2018 03:38:48 +0100 (CET) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by dpdk.org (Postfix) with ESMTP id ABFEA5F34 for ; Tue, 6 Nov 2018 03:38:46 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga104.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 05 Nov 2018 18:38:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.54,469,1534834800"; d="scan'208";a="86951153" Received: from unknown (HELO saesrv02-S2600CWR.intel.com) ([10.224.122.203]) by orsmga007.jf.intel.com with ESMTP; 05 Nov 2018 18:38:43 -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 08:04:38 +0530 Message-Id: <20181106023438.36740-9-vipin.varghese@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20181106023438.36740-1-vipin.varghese@intel.com> References: <20181106023438.36740-1-vipin.varghese@intel.com> Subject: [dpdk-dev] [PATCH v4 9/9] doc/procinfo: add information for debug options 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" Document update for debug options and information for PMD instances like port, traffic manager, crypto, mempool and ring instances. Signed-off-by: Vipin Varghese --- V3: - update document from dbg to show - Vipin Varghese V2: - update word style for content - Vipin Varghese --- doc/guides/tools/proc_info.rst | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/doc/guides/tools/proc_info.rst b/doc/guides/tools/proc_info.rst index d5b5ed6a6..5c2ce762b 100644 --- a/doc/guides/tools/proc_info.rst +++ b/doc/guides/tools/proc_info.rst @@ -6,9 +6,9 @@ dpdk-procinfo Application The dpdk-procinfo application is a Data Plane Development Kit (DPDK) application that runs as a DPDK secondary process and is capable of retrieving port -statistics, resetting port statistics and printing DPDK memory information. -This application extends the original functionality that was supported by -dump_cfg. +statistics, resetting port statistics and printing DPDK memory information and +debug information for port|tm|crypto|ring|mempool. This application extends the +original functionality that was supported by dump_cfg. Running the Application ----------------------- @@ -17,7 +17,8 @@ The application has a number of command line options: .. code-block:: console ./$(RTE_TARGET)/app/dpdk-procinfo -- -m | [-p PORTMASK] [--stats | --xstats | - --stats-reset | --xstats-reset] + --stats-reset | --xstats-reset | --show-port | --show-tm | --show-crypto | + --show-mempool[=name] | --show-ring[=name]] Parameters ~~~~~~~~~~ @@ -41,6 +42,28 @@ If no port mask is specified xstats are reset for all DPDK ports. **-m**: Print DPDK memory information. +**--show-port** +The show-port parameter displays port level various configuration and +mbuf pool information associated to RX queues. + +**--show-tm** +The show-tm parameter displays per port traffic manager settings and +current configuration. It also display statistics too. + +**--show-crypto** +The show-crypto parameter displays available cryptodev configurations, +settings and stats per node. + +**--show-mempool[=name]** +The show-mempool parameter display current allocation of all mempool +with debug information. Specifying the name allows display details for +specific mempool. For invalid|no mempool name, whole list is dump. + +**--show-ring[=name]** +The show-ring pararmeter display current allocation of all ring with +debug information. Specifying the name allows to display details for specific +ring. For invalid|no ring name, whole list is dump. + Limitations -----------