DPDK patches and discussions
 help / color / mirror / Atom feed
From: "Bhagavatula, Pavan" <Pavan.Bhagavatula@cavium.com>
To: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>,
	"Jacob,  Jerin" <Jerin.JacobKollanukkaran@cavium.com>,
	"nipun.gupta@nxp.com" <nipun.gupta@nxp.com>,
	"hemant.agrawal@nxp.com" <hemant.agrawal@nxp.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [dpdk-dev] [PATCH v8 7/9] test: add event timer adapter auto-test
Date: Fri, 30 Mar 2018 15:48:46 +0000	[thread overview]
Message-ID: <20180330154755.GA23814@ltp-pvn> (raw)
In-Reply-To: <1522358852-3630-8-git-send-email-erik.g.carrillo@intel.com>

Hi Erik,

Few comments below,

On Thu, Mar 29, 2018 at 04:27:30PM -0500, Erik Gabriel Carrillo wrote:
> Signed-off-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
> ---
>  test/test/Makefile                   |    1 +
>  test/test/test_event_timer_adapter.c | 1837 ++++++++++++++++++++++++++++++++++
>  2 files changed, 1838 insertions(+)
>  create mode 100644 test/test/test_event_timer_adapter.c
>
<snip>
> +/* Test that adapter stops correctly. */
> +static int
> +adapter_stop(void)
> +{
> +	uint32_t evdev_service_id, adapter_service_id;
> +	struct rte_event_timer_adapter *l_adapter = NULL;
> +
Please use INTERNAL_PORT capability to determine if service core is required.

> +	/* retrieve service ids */
> +	TEST_ASSERT_SUCCESS(rte_event_dev_service_id_get(evdev,
> +			&evdev_service_id), "Failed to get event device "
> +			"service id");
> +	TEST_ASSERT_SUCCESS(rte_event_timer_adapter_service_id_get(timdev,
> +			&adapter_service_id), "Failed to get event timer "
> +			"adapter service id");
> +
> +	/* Test adapter stop */
> +	TEST_ASSERT_SUCCESS(rte_event_timer_adapter_stop(timdev),
> +			"Failed to stop event adapter");
> +
> +	TEST_ASSERT_FAIL(rte_event_timer_adapter_stop(l_adapter),
> +			"Erroneously stopped null event adapter");
> +
> +	TEST_ASSERT_SUCCESS(rte_event_timer_adapter_free(timdev),
> +			"Failed to free adapter");
> +
> +	rte_mempool_free(eventdev_test_mempool);
> +
> +	return TEST_SUCCESS;
> +}
> +
<snip>
> +stat_inc_reset_ev_enq(void)
> +{
> +	int ret, i, n;
> +	int num_evtims = MAX_TIMERS;
> +	struct rte_event_timer *evtims[num_evtims];
> +	struct rte_event evs[BATCH_SIZE];
> +	struct rte_event_timer_adapter_stats stats;
> +	const struct rte_event_timer init_tim = {
> +		.ev.op = RTE_EVENT_OP_NEW,
> +		.ev.queue_id = TEST_QUEUE_ID,
> +		.ev.sched_type = RTE_SCHED_TYPE_ATOMIC,
> +		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
> +		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
> +		.state = RTE_EVENT_TIMER_NOT_ARMED,
> +		.timeout_ticks = 5,	// expire in .5 sec
> +	};
> +
> +	ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims,
> +				   num_evtims);
> +	TEST_ASSERT_EQUAL(ret, 0, "Failed to get array of timer objs: ret = %d",
> +			  ret);
> +
> +	for (i = 0; i < num_evtims; i++) {
> +		*evtims[i] = init_tim;
> +		evtims[i]->ev.event_ptr = evtims[i];
> +	}
> +
> +	ret = rte_event_timer_adapter_stats_get(timdev, &stats);
> +	TEST_ASSERT_EQUAL(ret, 0, "Failed to get stats");
> +	TEST_ASSERT_EQUAL((int)stats.ev_enq_count, 0, "Stats not clear at "
> +			  "startup");
> +
> +	/* Test with the max value for the adapter */
> +	ret = rte_event_timer_arm_burst(timdev, evtims, num_evtims);
> +	TEST_ASSERT_EQUAL(ret, num_evtims,
> +			  "Failed to arm all event timers: attempted = %d, "
> +			  "succeeded = %d, rte_errno = %s",
> +			  num_evtims, ret, rte_strerror(rte_errno));
> +
> +	rte_delay_ms(1000);
> +
> +#define MAX_TRIES 1000

Please make MAX_TRIES equivalent to num_evtims, here we are trying to deq 10
events in burst and assume it to succeed but in case event dev doesn't support
burst mode event will be stuck as it will have only 1000 tries instead of 4096.

> +	int sum = 0;
> +	int tries = 0;
> +	bool done = false;
> +	while (!done) {
> +		sum += rte_event_dequeue_burst(evdev, TEST_PORT_ID, evs,
> +					       RTE_DIM(evs), 10);
> +		if (sum >= num_evtims || ++tries >= MAX_TRIES)
> +			done = true;
> +
> +		rte_delay_ms(10);
> +	}
> +
> +	TEST_ASSERT_EQUAL(sum, num_evtims, "Expected %d timer expiry events, "
> +			  "got %d", num_evtims, sum);
> +
<snip>
> +event_timer_arm_max(void)
> +{
> +	int ret, i, n;
> +	int num_evtims = MAX_TIMERS;
> +	struct rte_event_timer *evtims[num_evtims];
> +	struct rte_event evs[BATCH_SIZE];
> +	const struct rte_event_timer init_tim = {
> +		.ev.op = RTE_EVENT_OP_NEW,
> +		.ev.queue_id = TEST_QUEUE_ID,
> +		.ev.sched_type = RTE_SCHED_TYPE_ATOMIC,
> +		.ev.priority = RTE_EVENT_DEV_PRIORITY_NORMAL,
> +		.ev.event_type =  RTE_EVENT_TYPE_TIMER,
> +		.state = RTE_EVENT_TIMER_NOT_ARMED,
> +		.timeout_ticks = 5,	// expire in .5 sec
> +	};
> +
> +	ret = rte_mempool_get_bulk(eventdev_test_mempool, (void **)evtims,
> +				   num_evtims);
> +	TEST_ASSERT_EQUAL(ret, 0, "Failed to get array of timer objs: ret = %d",
> +			  ret);
> +
> +	for (i = 0; i < num_evtims; i++) {
> +		*evtims[i] = init_tim;
> +		evtims[i]->ev.event_ptr = evtims[i];
> +	}
> +
> +	/* Test with the max value for the adapter */
> +	ret = rte_event_timer_arm_burst(timdev, evtims, num_evtims);
> +	TEST_ASSERT_EQUAL(ret, num_evtims,
> +			  "Failed to arm all event timers: attempted = %d, "
> +			  "succeeded = %d, rte_errno = %s",
> +			  num_evtims, ret, rte_strerror(rte_errno));
> +
> +	rte_delay_ms(1000);
> +
> +#define MAX_TRIES 1000

Same as above.

> +	int sum = 0;
> +	int tries = 0;
> +	bool done = false;

<snip>

> +static int
> +adapter_create_max(void)
> +{
> +	int i;
> +	uint32_t svc_start_count, svc_end_count;
> +	struct rte_event_timer_adapter *adapters[
> +					RTE_EVENT_TIMER_ADAPTER_NUM_MAX + 1];
> +
> +	struct rte_event_timer_adapter_conf conf = {
> +		.event_dev_id = evdev,
> +		// timer_adapter_id set in loop
> +		.clk_src = RTE_EVENT_TIMER_ADAPTER_CPU_CLK,
> +		.timer_tick_ns = NSECPERSEC / 10,
> +		.max_tmo_ns = 180 * NSECPERSEC,
> +		.nb_timers = MAX_TIMERS,
> +		.flags = 0,
> +	};
> +
> +	svc_start_count = rte_service_get_count();
> +
> +	/* This test expects that there are sufficient service IDs available
> +	 * to be allocated. I.e., RTE_EVENT_TIMER_ADAPTER_NUM_MAX may need to
> +	 * be less than RTE_SERVICE_NUM_MAX if anything else uses a service
> +	 * (the SW event device, for example).
> +	 */
Same as above service use need to be dependent on INTERNAL_PORT capability.

Also, in software event dev case this can be a valid test but in case of a hw
event dev RTE_EVENT_TIMER_ADAPTER_NUM_MAX number of event devicesmight not be
binded to dpdk. Either we need to provide a API to check how many event devices
are supported or use eventdev_timer_adapter_caps_get_t to get the number.

Thoughts?

> +	for (i = 0; i < RTE_EVENT_TIMER_ADAPTER_NUM_MAX; i++) {
> +		conf.timer_adapter_id = i;
> +		adapters[i] = rte_event_timer_adapter_create_ext(&conf,
> +				test_port_conf_cb, NULL);
> +		TEST_ASSERT_NOT_NULL(adapters[i], "Failed to create adapter "
> +				"%d", i);
> +	}
> +
<snip>

Thanks,
Pavan.

  reply	other threads:[~2018-03-30 15:48 UTC|newest]

Thread overview: 133+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <1511890148-22295-1-git-send-email-erik.g.carrillo@intel.com>
2017-12-01 20:00 ` [dpdk-dev] [RFC PATCH v5 0/5] eventtimer: introduce event timer adapter Erik Gabriel Carrillo
2017-12-01 20:00   ` [dpdk-dev] [RFC PATCH v5 1/5] " Erik Gabriel Carrillo
2017-12-06 15:17     ` Jerin Jacob
2017-12-06 16:23       ` Carrillo, Erik G
2017-12-01 20:00   ` [dpdk-dev] [RFC PATCH v5 2/5] eventtimer: add common code Erik Gabriel Carrillo
2017-12-06 15:35     ` Jerin Jacob
2017-12-01 20:00   ` [dpdk-dev] [RFC PATCH v5 3/5] eventtimer: add config variable for adapter Erik Gabriel Carrillo
2017-12-06 15:41     ` Jerin Jacob
2017-12-06 20:01       ` Carrillo, Erik G
2017-12-01 20:00   ` [dpdk-dev] [RFC PATCH v5 4/5] eventtimer: add default software implementation stub Erik Gabriel Carrillo
2017-12-01 20:00   ` [dpdk-dev] [RFC PATCH v5 5/5] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-01-11  0:20   ` [dpdk-dev] [PATCH v6 00/23] eventtimer: introduce event timer adapter Erik Gabriel Carrillo
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 01/23] eventtimer: add event timer adapter API Erik Gabriel Carrillo
2018-01-11 11:10       ` Pavan Nikhilesh
2018-01-11 16:56         ` Carrillo, Erik G
2018-01-11 17:31           ` Pavan Nikhilesh
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 02/23] eventtimer: add common code Erik Gabriel Carrillo
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 03/23] eventtimer: add default software driver stub Erik Gabriel Carrillo
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 04/23] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 05/23] eventtimer: add adapter allocation definitions Erik Gabriel Carrillo
2018-01-11 11:18       ` Pavan Nikhilesh
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 06/23] test: exercise event timer adapter allocation functions Erik Gabriel Carrillo
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 07/23] eventtimer: add adapter get info function definition Erik Gabriel Carrillo
2018-01-11  0:20     ` [dpdk-dev] [PATCH v6 08/23] eventtimer: add adapter start/stop definitions Erik Gabriel Carrillo
2018-01-11 17:28       ` Pavan Nikhilesh
2018-01-18 23:57         ` Carrillo, Erik G
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 09/23] eventtimer: add API to get service id Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 10/23] eventtimer: remove service id entry from info structure Erik Gabriel Carrillo
2018-01-11 11:34       ` Pavan Nikhilesh
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 11/23] test: exercise event timer adapter start/stop functions Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 12/23] eventtimer: add event timer arm/cancel function definitions Erik Gabriel Carrillo
2018-01-11 11:38       ` Pavan Nikhilesh
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 13/23] eventtimer: add adapter service definition Erik Gabriel Carrillo
2018-01-11 12:03       ` Pavan Nikhilesh
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 14/23] eventtimer: add event timer initializer function Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 15/23] eventtimer: add buffering of timer expiry events Erik Gabriel Carrillo
2018-01-11 12:18       ` Pavan Nikhilesh
2018-01-18 23:07         ` Carrillo, Erik G
2018-01-20  8:55           ` Pavan Nikhilesh
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 16/23] eventtimer: add stats to API Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 17/23] eventtimer: add support for single-producer put mode Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 18/23] eventtimer: add non-blocking mode for event timer operations Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 19/23] test: exercise event timer arm and expiry Erik Gabriel Carrillo
2018-01-11 12:26       ` Pavan Nikhilesh
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 20/23] maintainers: add event timer adapter section Erik Gabriel Carrillo
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 21/23] doc: add event timer adapter to API index Erik Gabriel Carrillo
2018-01-12 11:12       ` Kovacevic, Marko
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 22/23] doc: add event timer adapter section to programmer's guide Erik Gabriel Carrillo
2018-01-11 15:26       ` Kovacevic, Marko
2018-01-11  0:21     ` [dpdk-dev] [PATCH v6 23/23] doc: add event timer adapter to release notes Erik Gabriel Carrillo
2018-01-12 10:48       ` Kovacevic, Marko
2018-03-08 21:53     ` [dpdk-dev] [PATCH v7 0/7] eventtimer: introduce event timer adapter Erik Gabriel Carrillo
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 1/7] eventtimer: add event timer adapter API Erik Gabriel Carrillo
2018-03-12  7:53         ` Jerin Jacob
2018-03-12 16:22           ` Carrillo, Erik G
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 2/7] eventtimer: add common code Erik Gabriel Carrillo
2018-03-12  8:11         ` Jerin Jacob
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 3/7] eventtimer: add default software driver Erik Gabriel Carrillo
2018-03-12  8:45         ` Jerin Jacob
2018-03-12 21:20           ` Carrillo, Erik G
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 4/7] eventtimer: add support for meson build system Erik Gabriel Carrillo
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 5/7] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-03-14 12:52         ` Pavan Nikhilesh
2018-03-14 21:42           ` Carrillo, Erik G
2018-03-14 13:31         ` Pavan Nikhilesh
2018-03-14 21:40           ` Carrillo, Erik G
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 6/7] doc: add event timer adapter section to programmer's guide Erik Gabriel Carrillo
2018-03-12 11:21         ` Jerin Jacob
2018-03-12 22:02           ` Carrillo, Erik G
2018-03-08 21:54       ` [dpdk-dev] [PATCH v7 7/7] doc: add event timer adapter documentation Erik Gabriel Carrillo
2018-03-12 11:28         ` Jerin Jacob
2018-03-29 21:27       ` [dpdk-dev] [PATCH v8 0/9] eventtimer: introduce event timer adapter Erik Gabriel Carrillo
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 1/9] " Erik Gabriel Carrillo
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 2/9] eventdev: convert to SPDX license tag in header Erik Gabriel Carrillo
2018-04-02  8:12           ` Jerin Jacob
2018-04-02  9:16             ` Hemant Agrawal
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 3/9] eventtimer: add common code Erik Gabriel Carrillo
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 4/9] mk: update library order in static build Erik Gabriel Carrillo
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 5/9] eventtimer: add default software driver Erik Gabriel Carrillo
2018-04-02  8:42           ` Jerin Jacob
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 6/9] eventtimer: add support for meson build system Erik Gabriel Carrillo
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 7/9] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-03-30 15:48           ` Bhagavatula, Pavan [this message]
2018-03-30 18:47             ` Carrillo, Erik G
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 8/9] doc: add event timer adapter section to programmer's guide Erik Gabriel Carrillo
2018-03-29 21:27         ` [dpdk-dev] [PATCH v8 9/9] doc: add event timer adapter documentation Erik Gabriel Carrillo
2018-04-02 19:39         ` [dpdk-dev] [PATCH v9 0/9] eventtimer: introduce event timer adapter Erik Gabriel Carrillo
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 1/9] " Erik Gabriel Carrillo
2018-04-02 23:25             ` Jerin Jacob
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 2/9] eventdev: convert to SPDX license tag in header Erik Gabriel Carrillo
2018-04-02 23:27             ` Jerin Jacob
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 3/9] eventtimer: add common code Erik Gabriel Carrillo
2018-04-02 23:35             ` Jerin Jacob
2018-04-03 18:38               ` Carrillo, Erik G
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 4/9] mk: update library order in static build Erik Gabriel Carrillo
2018-04-02 23:36             ` Jerin Jacob
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 5/9] eventtimer: add default software driver Erik Gabriel Carrillo
2018-04-03  9:59             ` Pavan Nikhilesh
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 6/9] eventtimer: add support for meson build system Erik Gabriel Carrillo
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 7/9] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-04-03  9:52             ` Pavan Nikhilesh
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 8/9] doc: add event timer adapter section to programmer's guide Erik Gabriel Carrillo
2018-04-03  0:00             ` Jerin Jacob
2018-04-02 19:39           ` [dpdk-dev] [PATCH v9 9/9] doc: add event timer adapter documentation Erik Gabriel Carrillo
2018-04-02 23:42             ` Jerin Jacob
2018-04-02 23:19           ` [dpdk-dev] [PATCH v9 0/9] eventtimer: introduce event timer adapter Jerin Jacob
2018-04-03 14:09             ` Carrillo, Erik G
2018-04-03 14:15               ` Jerin Jacob
2018-04-03 18:32                 ` Carrillo, Erik G
2018-04-03 21:44           ` [dpdk-dev] [PATCH v10 " Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 1/9] " Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 2/9] eventdev: convert to SPDX license tag in header Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 3/9] eventtimer: add common code Erik Gabriel Carrillo
2018-04-04 16:50               ` Pavan Nikhilesh
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 4/9] mk: update library order in static build Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 5/9] eventtimer: add default software driver Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 6/9] eventtimer: add support for meson build system Erik Gabriel Carrillo
2018-04-04 16:51               ` Pavan Nikhilesh
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 7/9] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 8/9] doc: add event timer adapter section to programmer's guide Erik Gabriel Carrillo
2018-04-03 21:44             ` [dpdk-dev] [PATCH v10 9/9] doc: add event timer adapter documentation Erik Gabriel Carrillo
2018-04-04  2:31             ` [dpdk-dev] [PATCH v10 0/9] eventtimer: introduce event timer adapter Jerin Jacob
2018-04-04 21:51             ` [dpdk-dev] [PATCH v11 " Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 1/9] " Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 2/9] eventdev: convert to SPDX license tag in header Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 3/9] eventtimer: add common code Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 4/9] mk: update library order in static build Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 5/9] eventtimer: add default software driver Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 6/9] eventtimer: add support for meson build system Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 7/9] test: add event timer adapter auto-test Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 8/9] doc: add event timer adapter section to programmer's guide Erik Gabriel Carrillo
2018-04-04 21:51               ` [dpdk-dev] [PATCH v11 9/9] doc: add event timer adapter documentation Erik Gabriel Carrillo
2018-04-05  3:31               ` [dpdk-dev] [PATCH v11 0/9] eventtimer: introduce event timer adapter Jerin Jacob

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=20180330154755.GA23814@ltp-pvn \
    --to=pavan.bhagavatula@cavium.com \
    --cc=Jerin.JacobKollanukkaran@cavium.com \
    --cc=dev@dpdk.org \
    --cc=erik.g.carrillo@intel.com \
    --cc=hemant.agrawal@nxp.com \
    --cc=nipun.gupta@nxp.com \
    /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).