From: dpdklab@iol.unh.edu
To: test-report@dpdk.org
Cc: dpdk-test-reports@iol.unh.edu
Subject: |WARNING| pw114766-114783 [PATCH] [23/23] common/cnxk: support Tx compl event via RQ to CQ mapping
Date: Mon, 15 Aug 2022 15:20:11 -0400 (EDT) [thread overview]
Message-ID: <20220815192011.5C0626D509@noxus.dpdklab.iol.unh.edu> (raw)
[-- Attachment #1: Type: text/plain, Size: 17452 bytes --]
Test-Label: iol-testing
Test-Status: WARNING
http://dpdk.org/patch/114766
_apply patch failure_
Submitter: Nithin Dabilpuram <ndabilpuram@marvell.com>
Date: Tuesday, August 09 2022 18:49:07
Applied on: CommitID:72206323a5dd3182b13f61b25a64abdddfee595c
Apply patch set 114766-114783 failed:
Checking patch drivers/common/cnxk/roc_dpi.c...
Checking patch drivers/common/cnxk/roc_nix_queue.c...
error: while searching for:
aura.fc_addr = (uint64_t)sq->fc;
aura.fc_hyst_bits = 0; /* Store count on all updates */
rc = roc_npa_pool_create(&sq->aura_handle, blk_sz, nb_sqb_bufs, &aura,
&pool);
if (rc)
goto fail;
error: patch failed: drivers/common/cnxk/roc_nix_queue.c:713
Checking patch drivers/common/cnxk/roc_npa.c...
Checking patch drivers/common/cnxk/roc_npa.h...
Checking patch drivers/common/cnxk/roc_npa_priv.h...
Checking patch drivers/common/cnxk/roc_sso.c...
Checking patch drivers/common/cnxk/version.map...
Checking patch drivers/mempool/cnxk/cnxk_mempool_ops.c...
Applied patch drivers/common/cnxk/roc_dpi.c cleanly.
Applying patch drivers/common/cnxk/roc_nix_queue.c with 1 reject...
Rejected hunk #1.
Applied patch drivers/common/cnxk/roc_npa.c cleanly.
Applied patch drivers/common/cnxk/roc_npa.h cleanly.
Applied patch drivers/common/cnxk/roc_npa_priv.h cleanly.
Applied patch drivers/common/cnxk/roc_sso.c cleanly.
Applied patch drivers/common/cnxk/version.map cleanly.
Applied patch drivers/mempool/cnxk/cnxk_mempool_ops.c cleanly.
diff a/drivers/common/cnxk/roc_nix_queue.c b/drivers/common/cnxk/roc_nix_queue.c (rejected hunks)
@@ -713,7 +713,7 @@ sqb_pool_populate(struct roc_nix *roc_nix, struct roc_nix_sq *sq)
aura.fc_addr = (uint64_t)sq->fc;
aura.fc_hyst_bits = 0; /* Store count on all updates */
rc = roc_npa_pool_create(&sq->aura_handle, blk_sz, nb_sqb_bufs, &aura,
- &pool);
+ &pool, 0);
if (rc)
goto fail;
Checking patch drivers/common/cnxk/meson.build...
Checking patch drivers/common/cnxk/roc_npa.c...
error: drivers/common/cnxk/roc_npa.c: does not match index
Checking patch drivers/common/cnxk/roc_npa.h...
error: drivers/common/cnxk/roc_npa.h: does not match index
Checking patch drivers/common/cnxk/roc_npa_priv.h...
error: drivers/common/cnxk/roc_npa_priv.h: does not match index
Checking patch drivers/common/cnxk/roc_npa_type.c...
Checking patch drivers/common/cnxk/version.map...
error: drivers/common/cnxk/version.map: does not match index
Applied patch drivers/common/cnxk/meson.build cleanly.
Applied patch drivers/common/cnxk/roc_npa_type.c cleanly.
Checking patch drivers/common/cnxk/roc_nix_queue.c...
error: while searching for:
if (rc)
goto fail;
sq->sqe_mem = plt_zmalloc(blk_sz * nb_sqb_bufs, blk_sz);
if (sq->sqe_mem == NULL) {
rc = NIX_ERR_NO_MEM;
error: patch failed: drivers/common/cnxk/roc_nix_queue.c:717
Applying patch drivers/common/cnxk/roc_nix_queue.c with 1 reject...
Hunk #1 applied cleanly.
Hunk #2 applied cleanly.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Hunk #5 applied cleanly.
Rejected hunk #6.
diff a/drivers/common/cnxk/roc_nix_queue.c b/drivers/common/cnxk/roc_nix_queue.c (rejected hunks)
@@ -717,6 +824,7 @@ sqb_pool_populate(struct roc_nix *roc_nix, struct roc_nix_sq *sq)
if (rc)
goto fail;
+ roc_npa_buf_type_update(sq->aura_handle, ROC_NPA_BUF_TYPE_SQB, 1);
sq->sqe_mem = plt_zmalloc(blk_sz * nb_sqb_bufs, blk_sz);
if (sq->sqe_mem == NULL) {
rc = NIX_ERR_NO_MEM;
Checking patch drivers/common/cnxk/roc_idev.c...
Checking patch drivers/common/cnxk/roc_idev.h...
Checking patch drivers/common/cnxk/roc_idev_priv.h...
Checking patch drivers/common/cnxk/roc_nix.h...
Hunk #1 succeeded at 313 (offset -2 lines).
Checking patch drivers/common/cnxk/roc_nix_inl.c...
Checking patch drivers/common/cnxk/roc_nix_inl.h...
Checking patch drivers/common/cnxk/roc_nix_inl_dev.c...
Checking patch drivers/common/cnxk/roc_nix_inl_priv.h...
Checking patch drivers/common/cnxk/roc_nix_priv.h...
Hunk #1 succeeded at 203 (offset 1 line).
Checking patch drivers/common/cnxk/roc_nix_queue.c...
error: drivers/common/cnxk/roc_nix_queue.c: does not match index
Checking patch drivers/common/cnxk/version.map...
error: drivers/common/cnxk/version.map: does not match index
Applied patch drivers/common/cnxk/roc_idev.c cleanly.
Applied patch drivers/common/cnxk/roc_idev.h cleanly.
Applied patch drivers/common/cnxk/roc_idev_priv.h cleanly.
Applied patch drivers/common/cnxk/roc_nix.h cleanly.
Applied patch drivers/common/cnxk/roc_nix_inl.c cleanly.
Applied patch drivers/common/cnxk/roc_nix_inl.h cleanly.
Applied patch drivers/common/cnxk/roc_nix_inl_dev.c cleanly.
Applied patch drivers/common/cnxk/roc_nix_inl_priv.h cleanly.
Applied patch drivers/common/cnxk/roc_nix_priv.h cleanly.
Checking patch drivers/event/cnxk/cn10k_eventdev.c...
error: while searching for:
}
static void
cn10k_sso_set_priv_mem(const struct rte_eventdev *event_dev, void *lookup_mem)
{
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
int i;
error: patch failed: drivers/event/cnxk/cn10k_eventdev.c:694
error: while searching for:
struct cn10k_sso_hws *ws = event_dev->data->ports[i];
ws->lookup_mem = lookup_mem;
ws->tstamp = dev->tstamp;
}
}
error: patch failed: drivers/event/cnxk/cn10k_eventdev.c:703
error: while searching for:
const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
{
struct cn10k_eth_rxq *rxq;
void *lookup_mem;
int rc;
error: patch failed: drivers/event/cnxk/cn10k_eventdev.c:713
error: while searching for:
return -EINVAL;
rxq = eth_dev->data->rx_queues[0];
lookup_mem = rxq->lookup_mem;
cn10k_sso_set_priv_mem(event_dev, lookup_mem);
cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
return 0;
error: patch failed: drivers/event/cnxk/cn10k_eventdev.c:726
Checking patch drivers/event/cnxk/cn10k_worker.h...
error: while searching for:
}
static __rte_always_inline void
cn10k_process_vwqe(uintptr_t vwqe, uint16_t port_id, const uint32_t flags,
void *lookup_mem, void *tstamp, uintptr_t lbase)
{
uint64_t mbuf_init = 0x100010000ULL | RTE_PKTMBUF_HEADROOM;
struct rte_event_vector *vec;
uint64_t aura_handle, laddr;
uint16_t nb_mbufs, non_vec;
uint16_t lmt_id, d_off;
struct rte_mbuf **wqe;
error: patch failed: drivers/event/cnxk/cn10k_worker.h:127
error: while searching for:
if (flags & NIX_RX_OFFLOAD_TSTAMP_F && tstamp)
mbuf_init |= 8;
nb_mbufs = RTE_ALIGN_FLOOR(vec->nb_elem, NIX_DESCS_PER_LOOP);
nb_mbufs = cn10k_nix_recv_pkts_vector(&mbuf_init, wqe, nb_mbufs,
flags | NIX_RX_VWQE_F, lookup_mem,
tstamp, lbase);
wqe += nb_mbufs;
non_vec = vec->nb_elem - nb_mbufs;
if (flags & NIX_RX_OFFLOAD_SECURITY_F && non_vec) {
mbuf = (struct rte_mbuf *)((uintptr_t)wqe[0] -
sizeof(struct rte_mbuf));
/* Pick first mbuf's aura handle assuming all
* mbufs are from a vec and are from same RQ.
*/
aura_handle = mbuf->pool->pool_id;
ROC_LMT_BASE_ID_GET(lbase, lmt_id);
laddr = lbase;
laddr += 8;
d_off = ((uintptr_t)mbuf->buf_addr - (uintptr_t)mbuf);
d_off += (mbuf_init & 0xFFFF);
sa_base = cnxk_nix_sa_base_get(mbuf_init >> 48, lookup_mem);
sa_base &= ~(ROC_NIX_INL_SA_BASE_ALIGN - 1);
}
error: patch failed: drivers/event/cnxk/cn10k_worker.h:153
Hunk #3 succeeded at 191 (offset -25 lines).
Hunk #4 succeeded at 226 (offset -23 lines).
error: while searching for:
vwqe_hdr = ((vwqe_hdr >> 64) & 0xFFF) | BIT_ULL(31) |
((vwqe_hdr & 0xFFFF) << 48) | ((uint64_t)port << 32);
*(uint64_t *)u64[1] = (uint64_t)vwqe_hdr;
cn10k_process_vwqe(u64[1], port, flags, ws->lookup_mem,
ws->tstamp[port], ws->lmt_base);
/* Mark vector mempool object as get */
RTE_MEMPOOL_CHECK_COOKIES(rte_mempool_from_obj((void *)u64[1]),
(void **)&u64[1], 1, 1);
error: patch failed: drivers/event/cnxk/cn10k_worker.h:273
Checking patch drivers/event/cnxk/cnxk_eventdev.h...
error: while searching for:
uint8_t hws_id;
/* PTP timestamp */
struct cnxk_timesync_info **tstamp;
/* Add Work Fastpath data */
uint64_t xaq_lmt __rte_cache_aligned;
uint64_t *fc_mem;
error: patch failed: drivers/event/cnxk/cnxk_eventdev.h:148
Checking patch drivers/event/cnxk/cnxk_eventdev_adptr.c...
Checking patch drivers/net/cnxk/cn10k_ethdev.c...
Checking patch drivers/net/cnxk/cn10k_ethdev.h...
Checking patch drivers/net/cnxk/cn10k_rx.h...
Hunk #7 succeeded at 1726 (offset -1 lines).
Hunk #8 succeeded at 1749 (offset -1 lines).
Hunk #9 succeeded at 1774 (offset -1 lines).
Hunk #10 succeeded at 1808 (offset -1 lines).
Hunk #11 succeeded at 1817 (offset -1 lines).
Hunk #12 succeeded at 2044 (offset -1 lines).
Checking patch drivers/net/cnxk/cnxk_ethdev.c...
Checking patch drivers/net/cnxk/cnxk_ethdev.h...
Checking patch drivers/net/cnxk/cnxk_ethdev_sec.c...
Applying patch drivers/event/cnxk/cn10k_eventdev.c with 4 rejects...
Rejected hunk #1.
Rejected hunk #2.
Rejected hunk #3.
Rejected hunk #4.
Applying patch drivers/event/cnxk/cn10k_worker.h with 3 rejects...
Rejected hunk #1.
Rejected hunk #2.
Hunk #3 applied cleanly.
Hunk #4 applied cleanly.
Rejected hunk #5.
Applying patch drivers/event/cnxk/cnxk_eventdev.h with 1 reject...
Rejected hunk #1.
Applied patch drivers/event/cnxk/cnxk_eventdev_adptr.c cleanly.
Applied patch drivers/net/cnxk/cn10k_ethdev.c cleanly.
Applied patch drivers/net/cnxk/cn10k_ethdev.h cleanly.
Applied patch drivers/net/cnxk/cn10k_rx.h cleanly.
Applied patch drivers/net/cnxk/cnxk_ethdev.c cleanly.
Applied patch drivers/net/cnxk/cnxk_ethdev.h cleanly.
Applied patch drivers/net/cnxk/cnxk_ethdev_sec.c cleanly.
diff a/drivers/event/cnxk/cn10k_eventdev.c b/drivers/event/cnxk/cn10k_eventdev.c (rejected hunks)
@@ -694,7 +694,7 @@ cn10k_sso_rx_adapter_caps_get(const struct rte_eventdev *event_dev,
}
static void
-cn10k_sso_set_priv_mem(const struct rte_eventdev *event_dev, void *lookup_mem)
+cn10k_sso_set_priv_mem(const struct rte_eventdev *event_dev, void *lookup_mem, uint64_t meta_aura)
{
struct cnxk_sso_evdev *dev = cnxk_sso_pmd_priv(event_dev);
int i;
@@ -703,6 +703,8 @@ cn10k_sso_set_priv_mem(const struct rte_eventdev *event_dev, void *lookup_mem)
struct cn10k_sso_hws *ws = event_dev->data->ports[i];
ws->lookup_mem = lookup_mem;
ws->tstamp = dev->tstamp;
+ if (meta_aura)
+ ws->meta_aura = meta_aura;
}
}
@@ -713,6 +715,7 @@ cn10k_sso_rx_adapter_queue_add(
const struct rte_event_eth_rx_adapter_queue_conf *queue_conf)
{
struct cn10k_eth_rxq *rxq;
+ uint64_t meta_aura;
void *lookup_mem;
int rc;
@@ -726,7 +729,8 @@ cn10k_sso_rx_adapter_queue_add(
return -EINVAL;
rxq = eth_dev->data->rx_queues[0];
lookup_mem = rxq->lookup_mem;
- cn10k_sso_set_priv_mem(event_dev, lookup_mem);
+ meta_aura = rxq->meta_aura;
+ cn10k_sso_set_priv_mem(event_dev, lookup_mem, meta_aura);
cn10k_sso_fp_fns_set((struct rte_eventdev *)(uintptr_t)event_dev);
return 0;
diff a/drivers/event/cnxk/cn10k_worker.h b/drivers/event/cnxk/cn10k_worker.h (rejected hunks)
@@ -127,12 +127,14 @@ cn10k_sso_process_tstamp(uint64_t u64, uint64_t mbuf,
}
static __rte_always_inline void
-cn10k_process_vwqe(uintptr_t vwqe, uint16_t port_id, const uint32_t flags,
- void *lookup_mem, void *tstamp, uintptr_t lbase)
+cn10k_process_vwqe(uintptr_t vwqe, uint16_t port_id, const uint32_t flags, struct cn10k_sso_hws *ws)
{
uint64_t mbuf_init = 0x100010000ULL | RTE_PKTMBUF_HEADROOM;
+ struct cnxk_timesync_info *tstamp = ws->tstamp[port_id];
+ void *lookup_mem = ws->lookup_mem;
+ uintptr_t lbase = ws->lmt_base;
struct rte_event_vector *vec;
- uint64_t aura_handle, laddr;
+ uint64_t meta_aura, laddr;
uint16_t nb_mbufs, non_vec;
uint16_t lmt_id, d_off;
struct rte_mbuf **wqe;
@@ -153,25 +155,31 @@ cn10k_process_vwqe(uintptr_t vwqe, uint16_t port_id, const uint32_t flags,
if (flags & NIX_RX_OFFLOAD_TSTAMP_F && tstamp)
mbuf_init |= 8;
+ meta_aura = ws->meta_aura;
nb_mbufs = RTE_ALIGN_FLOOR(vec->nb_elem, NIX_DESCS_PER_LOOP);
nb_mbufs = cn10k_nix_recv_pkts_vector(&mbuf_init, wqe, nb_mbufs,
- flags | NIX_RX_VWQE_F, lookup_mem,
- tstamp, lbase);
+ flags | NIX_RX_VWQE_F,
+ lookup_mem, tstamp,
+ lbase, meta_aura);
wqe += nb_mbufs;
non_vec = vec->nb_elem - nb_mbufs;
if (flags & NIX_RX_OFFLOAD_SECURITY_F && non_vec) {
+ uint64_t sg_w1;
+
mbuf = (struct rte_mbuf *)((uintptr_t)wqe[0] -
sizeof(struct rte_mbuf));
/* Pick first mbuf's aura handle assuming all
* mbufs are from a vec and are from same RQ.
*/
- aura_handle = mbuf->pool->pool_id;
+ meta_aura = ws->meta_aura;
+ if (!meta_aura)
+ meta_aura = mbuf->pool->pool_id;
ROC_LMT_BASE_ID_GET(lbase, lmt_id);
laddr = lbase;
laddr += 8;
- d_off = ((uintptr_t)mbuf->buf_addr - (uintptr_t)mbuf);
- d_off += (mbuf_init & 0xFFFF);
+ sg_w1 = *(uint64_t *)(((uintptr_t)wqe[0]) + 72);
+ d_off = sg_w1 - (uintptr_t)mbuf;
sa_base = cnxk_nix_sa_base_get(mbuf_init >> 48, lookup_mem);
sa_base &= ~(ROC_NIX_INL_SA_BASE_ALIGN - 1);
}
@@ -273,8 +280,7 @@ cn10k_sso_hws_post_process(struct cn10k_sso_hws *ws, uint64_t *u64,
vwqe_hdr = ((vwqe_hdr >> 64) & 0xFFF) | BIT_ULL(31) |
((vwqe_hdr & 0xFFFF) << 48) | ((uint64_t)port << 32);
*(uint64_t *)u64[1] = (uint64_t)vwqe_hdr;
- cn10k_process_vwqe(u64[1], port, flags, ws->lookup_mem,
- ws->tstamp[port], ws->lmt_base);
+ cn10k_process_vwqe(u64[1], port, flags, ws);
/* Mark vector mempool object as get */
RTE_MEMPOOL_CHECK_COOKIES(rte_mempool_from_obj((void *)u64[1]),
(void **)&u64[1], 1, 1);
diff a/drivers/event/cnxk/cnxk_eventdev.h b/drivers/event/cnxk/cnxk_eventdev.h (rejected hunks)
@@ -148,6 +148,7 @@ struct cn10k_sso_hws {
uint8_t hws_id;
/* PTP timestamp */
struct cnxk_timesync_info **tstamp;
+ uint64_t meta_aura;
/* Add Work Fastpath data */
uint64_t xaq_lmt __rte_cache_aligned;
uint64_t *fc_mem;
Checking patch drivers/common/cnxk/cnxk_security.c...
Checking patch drivers/common/cnxk/roc_cpt.c...
Checking patch drivers/common/cnxk/roc_cpt.h...
Checking patch drivers/common/cnxk/roc_ie_on.h...
Checking patch drivers/common/cnxk/roc_nix_inl.c...
error: drivers/common/cnxk/roc_nix_inl.c: does not match index
Checking patch drivers/common/cnxk/roc_nix_inl.h...
error: drivers/common/cnxk/roc_nix_inl.h: does not match index
Checking patch drivers/common/cnxk/roc_nix_inl_dev.c...
error: drivers/common/cnxk/roc_nix_inl_dev.c: does not match index
Checking patch drivers/crypto/cnxk/cn9k_ipsec.c...
Checking patch drivers/event/cnxk/cn9k_worker.h...
Hunk #1 succeeded at 605 (offset -21 lines).
Hunk #2 succeeded at 651 (offset -21 lines).
Hunk #3 succeeded at 673 (offset -21 lines).
Checking patch drivers/net/cnxk/cn9k_ethdev.h...
Checking patch drivers/net/cnxk/cn9k_ethdev_sec.c...
Checking patch drivers/net/cnxk/cn9k_rx.h...
Checking patch drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c...
Applied patch drivers/common/cnxk/cnxk_security.c cleanly.
Applied patch drivers/common/cnxk/roc_cpt.c cleanly.
Applied patch drivers/common/cnxk/roc_cpt.h cleanly.
Applied patch drivers/common/cnxk/roc_ie_on.h cleanly.
Applied patch drivers/crypto/cnxk/cn9k_ipsec.c cleanly.
Applied patch drivers/event/cnxk/cn9k_worker.h cleanly.
Applied patch drivers/net/cnxk/cn9k_ethdev.h cleanly.
Applied patch drivers/net/cnxk/cn9k_ethdev_sec.c cleanly.
Applied patch drivers/net/cnxk/cn9k_rx.h cleanly.
Applied patch drivers/net/cnxk/cnxk_ethdev_sec_telemetry.c cleanly.
Checking patch drivers/net/cnxk/cn9k_ethdev_sec.c...
error: drivers/net/cnxk/cn9k_ethdev_sec.c: does not match index
Checking patch drivers/common/cnxk/roc_nix.h...
error: drivers/common/cnxk/roc_nix.h: does not match index
Checking patch drivers/common/cnxk/roc_nix_tm_utils.c...
Applied patch drivers/common/cnxk/roc_nix_tm_utils.c cleanly.
Checking patch drivers/net/cnxk/cn9k_ethdev_sec.c...
error: drivers/net/cnxk/cn9k_ethdev_sec.c: does not match index
Checking patch drivers/common/cnxk/cnxk_security.c...
error: drivers/common/cnxk/cnxk_security.c: does not match index
Checking patch drivers/crypto/cnxk/cn9k_ipsec.c...
error: drivers/crypto/cnxk/cn9k_ipsec.c: does not match index
Checking patch drivers/net/cnxk/cn9k_ethdev_sec.c...
error: drivers/net/cnxk/cn9k_ethdev_sec.c: does not match index
Checking patch drivers/net/cnxk/cnxk_ethdev.c...
error: drivers/net/cnxk/cnxk_ethdev.c: does not match index
Checking patch drivers/net/cnxk/cnxk_ethdev_ops.c...
Applied patch drivers/net/cnxk/cnxk_ethdev_ops.c cleanly.
Checking patch drivers/common/cnxk/hw/nix.h...
Checking patch drivers/common/cnxk/roc_mbox.h...
Checking patch drivers/common/cnxk/roc_nix_inl.c...
error: drivers/common/cnxk/roc_nix_inl.c: does not match index
Applied patch drivers/common/cnxk/hw/nix.h cleanly.
Applied patch drivers/common/cnxk/roc_mbox.h cleanly.
Checking patch drivers/common/cnxk/roc_nix.h...
error: drivers/common/cnxk/roc_nix.h: does not match index
Checking patch drivers/common/cnxk/roc_nix_queue.c...
error: drivers/common/cnxk/roc_nix_queue.c: does not match index
Checking patch drivers/common/cnxk/roc_nix.c...
Checking patch drivers/common/cnxk/roc_nix.h...
error: drivers/common/cnxk/roc_nix.h: does not match index
Checking patch drivers/common/cnxk/roc_nix_queue.c...
error: drivers/common/cnxk/roc_nix_queue.c: does not match index
Checking patch drivers/net/cnxk/cnxk_ethdev.c...
error: drivers/net/cnxk/cnxk_ethdev.c: does not match index
Applied patch drivers/common/cnxk/roc_nix.c cleanly.
https://lab.dpdk.org/results/dashboard/patchsets/23176/
UNH-IOL DPDK Community Lab
reply other threads:[~2022-08-15 19:20 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=20220815192011.5C0626D509@noxus.dpdklab.iol.unh.edu \
--to=dpdklab@iol.unh.edu \
--cc=dpdk-test-reports@iol.unh.edu \
--cc=test-report@dpdk.org \
/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).