[dpdk-dev] [PATCH v4 2/2] app/pdump: enhance to support multi-core capture
Varghese, Vipin
vipin.varghese at intel.com
Tue Apr 2 10:06:49 CEST 2019
Hi David,
Thanks for the inputs, these are useful. Let me work on these and share v5 ASAP.
Thanks
Vipin Varghese
From: David Marchand <david.marchand at redhat.com>
Sent: Tuesday, April 2, 2019 12:35 PM
To: Varghese, Vipin <vipin.varghese at intel.com>
Cc: dev <dev at dpdk.org>; Kovacevic, Marko <marko.kovacevic at intel.com>; Pattan, Reshma <reshma.pattan at intel.com>; Wiles, Keith <keith.wiles at intel.com>; Mcnamara, John <john.mcnamara at intel.com>; Byrne, Stephen1 <stephen1.byrne at intel.com>; Tamboli, Amit S <amit.tamboli at intel.com>; Padubidri, Sanjay A <sanjay.padubidri at intel.com>; Patel, Amol <amol.patel at intel.com>
Subject: Re: [dpdk-dev] [PATCH v4 2/2] app/pdump: enhance to support multi-core capture
On Tue, Apr 2, 2019 at 6:33 AM Vipin Varghese <vipin.varghese at intel.com<mailto:vipin.varghese at intel.com>> wrote:
Add option --multi, to enhance the pdump application to allow capture
on unique cores for each --pdump option. If option --multi is ignored
the default capture occurs on a single core for all --pdump options.
Signed-off-by: Vipin Varghese <vipin.varghese at intel.com<mailto:vipin.varghese at intel.com>>
---
app/pdump/main.c | 76 ++++++++++++++++++++++++++++++++------
doc/guides/tools/pdump.rst | 8 +++-
2 files changed, 72 insertions(+), 12 deletions(-)
diff --git a/app/pdump/main.c b/app/pdump/main.c
index c1db2eb8d..997c8942f 100644
--- a/app/pdump/main.c
+++ b/app/pdump/main.c
@@ -28,6 +28,7 @@
#include <rte_pdump.h>
#define CMD_LINE_OPT_PDUMP "pdump"
+#define CMD_LINE_OPT_MULTI "multi"
#define PDUMP_PORT_ARG "port"
#define PDUMP_PCI_ARG "device_id"
#define PDUMP_QUEUE_ARG "queue"
@@ -139,12 +140,14 @@ struct parse_val {
static int num_tuples;
static struct rte_eth_conf port_conf_default;
static volatile uint8_t quit_signal;
+static uint8_t multiple_core_capture;
/**< display usage */
static void
pdump_usage(const char *prgname)
{
- printf("usage: %s [EAL options] -- --pdump "
+ printf("usage: %s [EAL options] -- [--multi] "
+ "--pdump "
"'(port=<port id> | device_id=<pci id or vdev name>),"
"(queue=<queue_id>),"
"(rx-dev=<iface or pcap file> |"
Rather than hardcode the usage, reuse the macro you introduced: CMD_LINE_OPT_MULTI.
@@ -376,6 +379,7 @@ launch_args_parse(int argc, char **argv, char *prgname)
int option_index;
static struct option long_option[] = {
{"pdump", 1, 0, 0},
+ {"multi", 0, 0, 0},
{NULL, 0, 0, 0}
};
Idem reuse the macro.
Besides look at lib/librte_eal/common/eal_options.h and lib/librte_eal/common/eal_common_options.c.
Define an enum for long only options and map "multi" to an integer that has no printable character associated.
This way, you can avoid (see below)...
@@ -395,6 +399,10 @@ launch_args_parse(int argc, char **argv, char *prgname)
pdump_usage(prgname);
return -1;
}
+ } else if (!strncmp(long_option[option_index].name,
+ CMD_LINE_OPT_MULTI,
+ sizeof(CMD_LINE_OPT_MULTI))) {
+ multiple_core_capture = 1;
}
break;
default:
... this strncmp.
getopt_long already matched the input option for you.
--
David Marchand
More information about the dev
mailing list