DPDK patches and discussions
 help / color / mirror / Atom feed
From: Vipin Varghese <vipin.varghese@intel.com>
To: dev@dpdk.org, thomas@monjalon.net, john.mcnamara@intel.com
Cc: konstantin.ananyev@intel.com, stephen@networkplumber.org,
	reshma.pattan@intel.com, jasvinder.singh@intel.com,
	stephen1.byrne@intel.com, amol.patel@intel.com,
	Vipin Varghese <vipin.varghese@intel.com>
Subject: [dpdk-dev] [PATCH v9 6/6] app/procinfo: add support for iter mempool
Date: Fri, 11 Jan 2019 03:06:45 +0530	[thread overview]
Message-ID: <20190110213645.29901-7-vipin.varghese@intel.com> (raw)
In-Reply-To: <20190110213645.29901-1-vipin.varghese@intel.com>

Function iter_mempool is used for iterating slected mempool elements
and display the contents of elements for a max of 256 bytes. In case
of invalid or no name for mempool, no information is displayed.

Signed-off-by: Vipin Varghese <vipin.varghese@intel.com>
Acked-by: Reshma  Pattan <reshma.pattan@intel.com>
Acked-by: John McNamara <john.mcnamara@intel.com>
---
 app/proc-info/main.c           | 48 +++++++++++++++++++++++++++++++++-
 doc/guides/tools/proc_info.rst |  6 ++++-
 2 files changed, 52 insertions(+), 2 deletions(-)

diff --git a/app/proc-info/main.c b/app/proc-info/main.c
index 4aeab926d..b9acfa9ec 100644
--- a/app/proc-info/main.c
+++ b/app/proc-info/main.c
@@ -33,6 +33,7 @@
 #include <rte_security.h>
 #include <rte_cryptodev.h>
 #include <rte_tm.h>
+#include <rte_hexdump.h>
 
 /* Maximum long option length for option parsing. */
 #define MAX_LONG_OPT_SZ 64
@@ -88,6 +89,9 @@ static char *ring_name;
 /**< Enable show mempool. */
 static uint32_t enable_shw_mempool;
 static char *mempool_name;
+/**< Enable iter mempool. */
+static uint32_t enable_iter_mempool;
+static char *mempool_iter_name;
 
 /**< display usage */
 static void
@@ -112,7 +116,8 @@ proc_info_usage(const char *prgname)
 		"  --show-tm: to display traffic manager information for ports\n"
 		"  --show-crypto: to display crypto information\n"
 		"  --show-ring[=name]: to display ring information\n"
-		"  --show-mempool[=name]: to display mempool information\n",
+		"  --show-mempool[=name]: to display mempool information\n"
+		"  --iter-mempool=name: iterate mempool elements to display content\n",
 		prgname);
 }
 
@@ -224,6 +229,7 @@ proc_info_parse_args(int argc, char **argv)
 		{"show-crypto", 0, NULL, 0},
 		{"show-ring", optional_argument, NULL, 0},
 		{"show-mempool", optional_argument, NULL, 0},
+		{"iter-mempool", required_argument, NULL, 0},
 		{NULL, 0, 0, 0}
 	};
 
@@ -284,6 +290,10 @@ proc_info_parse_args(int argc, char **argv)
 					"show-mempool", MAX_LONG_OPT_SZ)) {
 				enable_shw_mempool = 1;
 				mempool_name = optarg;
+			} else if (!strncmp(long_option[option_index].name,
+					"iter-mempool", MAX_LONG_OPT_SZ)) {
+				enable_iter_mempool = 1;
+				mempool_iter_name = optarg;
 			}
 			break;
 		case 1:
@@ -1179,6 +1189,40 @@ show_mempool(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
+iter_mempool(char *name)
+{
+	snprintf(bdr_str, MAX_STRING_LEN, " iter - 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) {
+			/* iterate each object */
+			uint32_t ret = rte_mempool_obj_iter(ptr,
+					mempool_itr_obj, NULL);
+			printf("\n  - iterated %u objects\n", ret);
+			STATS_BDR_STR(50, "");
+			return;
+		}
+	}
+
+	STATS_BDR_STR(50, "");
+}
+
 int
 main(int argc, char **argv)
 {
@@ -1270,6 +1314,8 @@ main(int argc, char **argv)
 		show_ring(ring_name);
 	if (enable_shw_mempool)
 		show_mempool(mempool_name);
+	if (enable_iter_mempool)
+		iter_mempool(mempool_iter_name);
 
 	ret = rte_eal_cleanup();
 	if (ret)
diff --git a/doc/guides/tools/proc_info.rst b/doc/guides/tools/proc_info.rst
index 42c5d45e0..6bdf5a861 100644
--- a/doc/guides/tools/proc_info.rst
+++ b/doc/guides/tools/proc_info.rst
@@ -19,7 +19,7 @@ The application has a number of command line options:
 
    ./$(RTE_TARGET)/app/dpdk-procinfo -- -m | [-p PORTMASK] [--stats | --xstats |
    --stats-reset | --xstats-reset] [ --show-port | --show-tm | --show-crypto |
-   --show-ring[=name] | --show-mempool[=name] ]
+   --show-ring[=name] | --show-mempool[=name] | --iter-mempool=name ]
 
 Parameters
 ~~~~~~~~~~
@@ -65,6 +65,10 @@ The show-mempool parameter display current allocation of all mempool
 debug information. Specifying the name allows to display details for specific
 specific mempool. For invalid or no mempool name, whole list is dump.
 
+**--iter-mempool=name**
+The iter-mempool parameter iterates and displays mempool elements specified
+by name. For invalid or no mempool name no elements are displayed.
+
 Limitations
 -----------
 
-- 
2.17.1

  parent reply	other threads:[~2019-01-10 15:40 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-22 14:15 [dpdk-dev] [PATCH v5 1/9] app/procinfo: add usage for new debug Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 2/9] app/procinfo: add compare for new options Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 3/9] app/procinfo: add prototype for debug instances Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 4/9] app/procinfo: add support for show port Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 5/9] app/procinfo: add support for show tm Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 6/9] app/procinfo: add support for show crypto Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 7/9] app/procinfo: add support for debug ring Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 8/9] app/procinfo: add support for show mempool Vipin Varghese
2018-11-22 14:15 ` [dpdk-dev] [PATCH v5 9/9] doc/procinfo: add information for debug options Vipin Varghese
2018-11-22 18:08   ` Mcnamara, John
2018-11-23  4:58     ` Varghese, Vipin
2018-12-03  5:49 ` [dpdk-dev] [PATCH v6 0/9] app/proc-info: improve debug of proc-info tool Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 1/9] app/procinfo: add usage for new debug Vipin Varghese
2018-12-12 14:14     ` Pattan, Reshma
2018-12-12 15:06       ` Varghese, Vipin
2018-12-13  5:08     ` [dpdk-dev] [PATCH v7 0/9] app/proc-info: improve debug of proc-info tool Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 1/9] app/procinfo: add usage for new debug Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 2/9] app/procinfo: add compare for new options Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 3/9] app/procinfo: add prototype for debug instances Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 4/9] app/procinfo: add support for show port Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 5/9] app/procinfo: add support for show tm Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 6/9] app/procinfo: add support for show crypto Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 7/9] app/procinfo: add support for debug ring Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 8/9] app/procinfo: add support for show iter mempool Vipin Varghese
2018-12-13  5:08       ` [dpdk-dev] [PATCH v7 9/9] doc/procinfo: add information for debug options Vipin Varghese
2018-12-13 14:42       ` [dpdk-dev] [PATCH v7 0/9] app/proc-info: improve debug of proc-info tool Pattan, Reshma
2018-12-13 16:21         ` Varghese, Vipin
2018-12-22 21:02           ` Thomas Monjalon
2018-12-26  5:21             ` Varghese, Vipin
2018-12-26 21:33               ` Thomas Monjalon
2018-12-27  2:46                 ` Varghese, Vipin
2018-12-27  9:32                   ` Thomas Monjalon
2018-12-27 10:45                     ` Varghese, Vipin
2019-01-07 15:38       ` [dpdk-dev] [PATCH v8 0/7] app/proc-info: enhance " Vipin Varghese
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 1/7] app/procinfo: prepare for new debug functions Vipin Varghese
2019-01-09 23:45           ` Thomas Monjalon
2019-01-10  3:08             ` Varghese, Vipin
2019-01-10  8:39               ` Thomas Monjalon
2019-01-10  8:53                 ` Varghese, Vipin
2019-01-10  9:09                   ` Thomas Monjalon
2019-01-10 21:36           ` [dpdk-dev] [PATCH v9 0/6] app/proc-info: enhance debug of proc-info tool Vipin Varghese
2019-01-10 21:36             ` [dpdk-dev] [PATCH v9 1/6] app/procinfo: add support for show port Vipin Varghese
2019-01-10 17:40               ` Thomas Monjalon
2019-01-11  3:57                 ` Varghese, Vipin
2019-01-11 10:22                   ` Thomas Monjalon
2019-01-10 21:36             ` [dpdk-dev] [PATCH v9 2/6] app/procinfo: add support for show tm Vipin Varghese
2019-01-10 21:36             ` [dpdk-dev] [PATCH v9 3/6] app/procinfo: add support for show crypto Vipin Varghese
2019-01-10 21:36             ` [dpdk-dev] [PATCH v9 4/6] app/procinfo: add support for debug ring Vipin Varghese
2019-01-10 21:36             ` [dpdk-dev] [PATCH v9 5/6] app/procinfo: add support for show mempool Vipin Varghese
2019-01-10 21:36             ` Vipin Varghese [this message]
2019-01-11 14:46             ` [dpdk-dev] [PATCH v9 0/6] app/proc-info: enhance debug of proc-info tool Thomas Monjalon
2019-01-14  0:07               ` Varghese, Vipin
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 2/7] app/procinfo: add support for show port Vipin Varghese
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 3/7] app/procinfo: add support for show tm Vipin Varghese
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 4/7] app/procinfo: add support for show crypto Vipin Varghese
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 5/7] app/procinfo: add support for debug ring Vipin Varghese
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 6/7] app/procinfo: add support for show mempool Vipin Varghese
2019-01-07 15:38         ` [dpdk-dev] [PATCH v8 7/7] app/procinfo: add support for iter mempool Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 2/9] app/procinfo: add compare for new options Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 3/9] app/procinfo: add prototype for debug instances Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 4/9] app/procinfo: add support for show port Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 5/9] app/procinfo: add support for show tm Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 6/9] app/procinfo: add support for show crypto Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 7/9] app/procinfo: add support for debug ring Vipin Varghese
2018-12-03  5:49   ` [dpdk-dev] [PATCH v6 8/9] app/procinfo: add support for show iter mempool Vipin Varghese
2018-12-12 16:10     ` Pattan, Reshma
2018-12-13  2:26       ` Varghese, Vipin
2018-12-03  5:50   ` [dpdk-dev] [PATCH v6 9/9] doc/procinfo: add information for debug options Vipin Varghese

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190110213645.29901-7-vipin.varghese@intel.com \
    --to=vipin.varghese@intel.com \
    --cc=amol.patel@intel.com \
    --cc=dev@dpdk.org \
    --cc=jasvinder.singh@intel.com \
    --cc=john.mcnamara@intel.com \
    --cc=konstantin.ananyev@intel.com \
    --cc=reshma.pattan@intel.com \
    --cc=stephen1.byrne@intel.com \
    --cc=stephen@networkplumber.org \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).