From: Stephen Hemminger <stephen@networkplumber.org>
To: alejandro.lucero@netronome.com
Cc: dev@dpdk.org, Stephen Hemminger <stephen@networkplumber.org>
Subject: [dpdk-dev] [PATCH 5/5] net/nfp: use dynamic logging everywhere
Date: Wed, 25 Apr 2018 08:45:51 -0700 [thread overview]
Message-ID: <20180425154551.6795-6-stephen@networkplumber.org> (raw)
In-Reply-To: <20180425154551.6795-1-stephen@networkplumber.org>
Drivers should only log with their assigned logtype, not with the
generic PMD log type.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
drivers/net/nfp/nfp_net.c | 132 +++++++++++++++++++-------------------
1 file changed, 66 insertions(+), 66 deletions(-)
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index c8b0fff9df14..e092ab20296f 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -1423,15 +1423,15 @@ nfp_net_dev_link_status_print(struct rte_eth_dev *dev)
rte_eth_linkstatus_get(dev, &link);
if (link.link_status)
- RTE_LOG(INFO, PMD, "Port %d: Link Up - speed %u Mbps - %s\n",
- dev->data->port_id, link.link_speed,
- link.link_duplex == ETH_LINK_FULL_DUPLEX
- ? "full-duplex" : "half-duplex");
+ PMD_DRV_LOG(INFO, "Port %d: Link Up - speed %u Mbps - %s",
+ dev->data->port_id, link.link_speed,
+ link.link_duplex == ETH_LINK_FULL_DUPLEX
+ ? "full-duplex" : "half-duplex");
else
- RTE_LOG(INFO, PMD, " Port %d: Link Down\n",
- dev->data->port_id);
+ PMD_DRV_LOG(INFO, " Port %d: Link Down",
+ dev->data->port_id);
- RTE_LOG(INFO, PMD, "PCI Address: %04d:%02d:%02d:%d\n",
+ PMD_DRV_LOG(INFO, "PCI Address: %04d:%02d:%02d:%d",
pci_dev->addr.domain, pci_dev->addr.bus,
pci_dev->addr.devid, pci_dev->addr.function);
}
@@ -1491,7 +1491,7 @@ nfp_net_dev_interrupt_handler(void *param)
if (rte_eal_alarm_set(timeout * 1000,
nfp_net_dev_interrupt_delayed_handler,
(void *)dev) < 0) {
- RTE_LOG(ERR, PMD, "Error setting alarm");
+ PMD_INIT_LOG(ERR, "Error setting alarm");
/* Unmasking */
nfp_net_irq_unmask(dev);
}
@@ -1578,7 +1578,7 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev,
if (((nb_desc * sizeof(struct nfp_net_rx_desc)) % 128) != 0 ||
(nb_desc > NFP_NET_MAX_RX_DESC) ||
(nb_desc < NFP_NET_MIN_RX_DESC)) {
- RTE_LOG(ERR, PMD, "Wrong nb_desc value\n");
+ PMD_DRV_LOG(ERR, "Wrong nb_desc value");
return -EINVAL;
}
@@ -1586,10 +1586,10 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev,
rxmode = &dev_conf->rxmode;
if (rx_conf->offloads != rxmode->offloads) {
- RTE_LOG(ERR, PMD, "queue %u rx offloads not as port offloads\n",
+ PMD_DRV_LOG(ERR, "queue %u rx offloads not as port offloads",
queue_idx);
- RTE_LOG(ERR, PMD, "\tport: %" PRIx64 "\n", rxmode->offloads);
- RTE_LOG(ERR, PMD, "\tqueue: %" PRIx64 "\n", rx_conf->offloads);
+ PMD_DRV_LOG(ERR, "\tport: %" PRIx64 "", rxmode->offloads);
+ PMD_DRV_LOG(ERR, "\tqueue: %" PRIx64 "", rx_conf->offloads);
return -EINVAL;
}
@@ -1642,7 +1642,7 @@ nfp_net_rx_queue_setup(struct rte_eth_dev *dev,
socket_id);
if (tz == NULL) {
- RTE_LOG(ERR, PMD, "Error allocatig rx dma\n");
+ PMD_DRV_LOG(ERR, "Error allocatig rx dma");
nfp_net_rx_queue_release(rxq);
return -ENOMEM;
}
@@ -1693,7 +1693,7 @@ nfp_net_rx_fill_freelist(struct nfp_net_rxq *rxq)
struct rte_mbuf *mbuf = rte_pktmbuf_alloc(rxq->mem_pool);
if (mbuf == NULL) {
- RTE_LOG(ERR, PMD, "RX mbuf alloc failed queue_id=%u\n",
+ PMD_DRV_LOG(ERR, "RX mbuf alloc failed queue_id=%u",
(unsigned)rxq->qidx);
return -ENOMEM;
}
@@ -1740,7 +1740,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
if (((nb_desc * sizeof(struct nfp_net_tx_desc)) % 128) != 0 ||
(nb_desc > NFP_NET_MAX_TX_DESC) ||
(nb_desc < NFP_NET_MIN_TX_DESC)) {
- RTE_LOG(ERR, PMD, "Wrong nb_desc value\n");
+ PMD_DRV_LOG(ERR, "Wrong nb_desc value");
return -EINVAL;
}
@@ -1748,7 +1748,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
txmode = &dev_conf->txmode;
if (tx_conf->offloads != txmode->offloads) {
- RTE_LOG(ERR, PMD, "queue %u tx offloads not as port offloads",
+ PMD_DRV_LOG(ERR, "queue %u tx offloads not as port offloads",
queue_idx);
return -EINVAL;
}
@@ -1758,10 +1758,10 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
DEFAULT_TX_FREE_THRESH);
if (tx_free_thresh > (nb_desc)) {
- RTE_LOG(ERR, PMD,
+ PMD_DRV_LOG(ERR,
"tx_free_thresh must be less than the number of TX "
"descriptors. (tx_free_thresh=%u port=%d "
- "queue=%d)\n", (unsigned int)tx_free_thresh,
+ "queue=%d)", (unsigned int)tx_free_thresh,
dev->data->port_id, (int)queue_idx);
return -(EINVAL);
}
@@ -1781,7 +1781,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
txq = rte_zmalloc_socket("ethdev TX queue", sizeof(struct nfp_net_txq),
RTE_CACHE_LINE_SIZE, socket_id);
if (txq == NULL) {
- RTE_LOG(ERR, PMD, "Error allocating tx dma\n");
+ PMD_DRV_LOG(ERR, "Error allocating tx dma");
return -ENOMEM;
}
@@ -1795,7 +1795,7 @@ nfp_net_tx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
NFP_NET_MAX_TX_DESC, NFP_MEMZONE_ALIGN,
socket_id);
if (tz == NULL) {
- RTE_LOG(ERR, PMD, "Error allocating tx dma\n");
+ PMD_DRV_LOG(ERR, "Error allocating tx dma");
nfp_net_tx_queue_release(txq);
return -ENOMEM;
}
@@ -2420,7 +2420,7 @@ nfp_net_vlan_offload_set(struct rte_eth_dev *dev, int mask)
if ((mask & ETH_VLAN_FILTER_OFFLOAD) ||
(mask & ETH_VLAN_EXTEND_OFFLOAD))
- RTE_LOG(INFO, PMD, "No support for ETH_VLAN_FILTER_OFFLOAD or"
+ PMD_DRV_LOG(INFO, "No support for ETH_VLAN_FILTER_OFFLOAD or"
" ETH_VLAN_EXTEND_OFFLOAD");
/* Enable vlan strip if it is not configured yet */
@@ -2457,9 +2457,9 @@ nfp_net_rss_reta_write(struct rte_eth_dev *dev,
NFP_NET_DEV_PRIVATE_TO_HW(dev->data->dev_private);
if (reta_size != NFP_NET_CFG_RSS_ITBL_SZ) {
- RTE_LOG(ERR, PMD, "The size of hash lookup table configured "
+ PMD_DRV_LOG(ERR, "The size of hash lookup table configured "
"(%d) doesn't match the number hardware can supported "
- "(%d)\n", reta_size, NFP_NET_CFG_RSS_ITBL_SZ);
+ "(%d)", reta_size, NFP_NET_CFG_RSS_ITBL_SZ);
return -EINVAL;
}
@@ -2538,9 +2538,9 @@ nfp_net_reta_query(struct rte_eth_dev *dev,
return -EINVAL;
if (reta_size != NFP_NET_CFG_RSS_ITBL_SZ) {
- RTE_LOG(ERR, PMD, "The size of hash lookup table configured "
+ PMD_DRV_LOG(ERR, "The size of hash lookup table configured "
"(%d) doesn't match the number hardware can supported "
- "(%d)\n", reta_size, NFP_NET_CFG_RSS_ITBL_SZ);
+ "(%d)", reta_size, NFP_NET_CFG_RSS_ITBL_SZ);
return -EINVAL;
}
@@ -2626,14 +2626,14 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,
/* Checking if RSS is enabled */
if (!(hw->ctrl & NFP_NET_CFG_CTRL_RSS)) {
if (rss_hf != 0) { /* Enable RSS? */
- RTE_LOG(ERR, PMD, "RSS unsupported\n");
+ PMD_DRV_LOG(ERR, "RSS unsupported");
return -EINVAL;
}
return 0; /* Nothing to do */
}
if (rss_conf->rss_key_len > NFP_NET_CFG_RSS_KEY_SZ) {
- RTE_LOG(ERR, PMD, "hash key too long\n");
+ PMD_DRV_LOG(ERR, "hash key too long");
return -EINVAL;
}
@@ -2705,7 +2705,7 @@ nfp_net_rss_config_default(struct rte_eth_dev *dev)
uint16_t queue;
int i, j, ret;
- RTE_LOG(INFO, PMD, "setting default RSS conf for %u queues\n",
+ PMD_DRV_LOG(INFO, "setting default RSS conf for %u queues",
rx_queues);
nfp_reta_conf[0].mask = ~0x0;
@@ -2725,7 +2725,7 @@ nfp_net_rss_config_default(struct rte_eth_dev *dev)
dev_conf = &dev->data->dev_conf;
if (!dev_conf) {
- RTE_LOG(INFO, PMD, "wrong rss conf");
+ PMD_DRV_LOG(INFO, "wrong rss conf");
return -EINVAL;
}
rss_conf = dev_conf->rx_adv_conf.rss_conf;
@@ -2816,11 +2816,11 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
(pci_dev->id.device_id == PCI_DEVICE_ID_NFP6000_PF_NIC)) {
port = get_pf_port_number(eth_dev->data->name);
if (port < 0 || port > 7) {
- RTE_LOG(ERR, PMD, "Port value is wrong\n");
+ PMD_DRV_LOG(ERR, "Port value is wrong");
return -ENODEV;
}
- PMD_INIT_LOG(DEBUG, "Working with PF port value %d\n", port);
+ PMD_INIT_LOG(DEBUG, "Working with PF port value %d", port);
/* This points to port 0 private data */
hwport0 = NFP_NET_DEV_PRIVATE_TO_HW(eth_dev->data->dev_private);
@@ -2854,8 +2854,8 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
hw->ctrl_bar = (uint8_t *)pci_dev->mem_resource[0].addr;
if (hw->ctrl_bar == NULL) {
- RTE_LOG(ERR, PMD,
- "hw->ctrl_bar is NULL. BAR0 not configured\n");
+ PMD_DRV_LOG(ERR,
+ "hw->ctrl_bar is NULL. BAR0 not configured");
return -ENODEV;
}
@@ -2864,11 +2864,11 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
hw->total_ports * 32768,
&hw->ctrl_area);
if (!hw->ctrl_bar) {
- printf("nfp_rtsym_map fails for _pf0_net_ctrl_bar\n");
+ printf("nfp_rtsym_map fails for _pf0_net_ctrl_bar");
return -EIO;
}
- PMD_INIT_LOG(DEBUG, "ctrl bar: %p\n", hw->ctrl_bar);
+ PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar);
}
if (port > 0) {
@@ -2880,7 +2880,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
(port * NFP_PF_CSR_SLICE_SIZE);
}
- PMD_INIT_LOG(DEBUG, "ctrl bar: %p\n", hw->ctrl_bar);
+ PMD_INIT_LOG(DEBUG, "ctrl bar: %p", hw->ctrl_bar);
hw->max_rx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_RXRINGS);
hw->max_tx_queues = nn_cfg_readl(hw, NFP_NET_CFG_MAX_TXRINGS);
@@ -2896,13 +2896,13 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
rx_bar_off = start_q * NFP_QCP_QUEUE_ADDR_SZ;
break;
default:
- RTE_LOG(ERR, PMD, "nfp_net: no device ID matching\n");
+ PMD_DRV_LOG(ERR, "nfp_net: no device ID matching");
err = -ENODEV;
goto dev_err_ctrl_map;
}
- PMD_INIT_LOG(DEBUG, "tx_bar_off: 0x%" PRIx64 "\n", tx_bar_off);
- PMD_INIT_LOG(DEBUG, "rx_bar_off: 0x%" PRIx64 "\n", rx_bar_off);
+ PMD_INIT_LOG(DEBUG, "tx_bar_off: 0x%" PRIx64 "", tx_bar_off);
+ PMD_INIT_LOG(DEBUG, "rx_bar_off: 0x%" PRIx64 "", rx_bar_off);
if (hw->is_pf && port == 0) {
/* configure access to tx/rx vNIC BARs */
@@ -2912,12 +2912,12 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
&hw->hwqueues_area);
if (!hwport0->hw_queues) {
- printf("nfp_rtsym_map fails for net.qc\n");
+ printf("nfp_rtsym_map fails for net.qc");
err = -EIO;
goto dev_err_ctrl_map;
}
- PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p\n",
+ PMD_INIT_LOG(DEBUG, "tx/rx bar address: 0x%p",
hwport0->hw_queues);
}
@@ -2998,7 +2998,7 @@ nfp_net_init(struct rte_eth_dev *eth_dev)
}
if (!is_valid_assigned_ether_addr((struct ether_addr *)&hw->mac_addr)) {
- PMD_INIT_LOG(INFO, "Using random mac address for port %d\n",
+ PMD_INIT_LOG(INFO, "Using random mac address for port %d",
port);
/* Using random mac addresses for VFs */
eth_random_addr(&hw->mac_addr[0]);
@@ -3124,7 +3124,7 @@ nfp_fw_upload(struct rte_pci_device *dev, struct nfp_nsp *nsp, char *card)
sprintf(fw_name, "%s/%s.nffw", DEFAULT_FW_PATH, serial);
- RTE_LOG(DEBUG, PMD, "Trying with fw file: %s\n", fw_name);
+ PMD_DRV_LOG(DEBUG, "Trying with fw file: %s", fw_name);
fw_f = open(fw_name, O_RDONLY);
if (fw_f > 0)
goto read_fw;
@@ -3132,34 +3132,34 @@ nfp_fw_upload(struct rte_pci_device *dev, struct nfp_nsp *nsp, char *card)
/* Then try the PCI name */
sprintf(fw_name, "%s/pci-%s.nffw", DEFAULT_FW_PATH, dev->device.name);
- RTE_LOG(DEBUG, PMD, "Trying with fw file: %s\n", fw_name);
+ PMD_DRV_LOG(DEBUG, "Trying with fw file: %s", fw_name);
fw_f = open(fw_name, O_RDONLY);
if (fw_f > 0)
goto read_fw;
/* Finally try the card type and media */
sprintf(fw_name, "%s/%s", DEFAULT_FW_PATH, card);
- RTE_LOG(DEBUG, PMD, "Trying with fw file: %s\n", fw_name);
+ PMD_DRV_LOG(DEBUG, "Trying with fw file: %s", fw_name);
fw_f = open(fw_name, O_RDONLY);
if (fw_f < 0) {
- RTE_LOG(INFO, PMD, "Firmware file %s not found.", fw_name);
+ PMD_DRV_LOG(INFO, "Firmware file %s not found.", fw_name);
return -ENOENT;
}
read_fw:
if (fstat(fw_f, &file_stat) < 0) {
- RTE_LOG(INFO, PMD, "Firmware file %s size is unknown", fw_name);
+ PMD_DRV_LOG(INFO, "Firmware file %s size is unknown", fw_name);
close(fw_f);
return -ENOENT;
}
fsize = file_stat.st_size;
- RTE_LOG(INFO, PMD, "Firmware file found at %s with size: %" PRIu64 "\n",
+ PMD_DRV_LOG(INFO, "Firmware file found at %s with size: %" PRIu64 "",
fw_name, (uint64_t)fsize);
fw_buf = malloc((size_t)fsize);
if (!fw_buf) {
- RTE_LOG(INFO, PMD, "malloc failed for fw buffer");
+ PMD_DRV_LOG(INFO, "malloc failed for fw buffer");
close(fw_f);
return -ENOMEM;
}
@@ -3167,7 +3167,7 @@ nfp_fw_upload(struct rte_pci_device *dev, struct nfp_nsp *nsp, char *card)
bytes = read(fw_f, fw_buf, fsize);
if (bytes != fsize) {
- RTE_LOG(INFO, PMD, "Reading fw to buffer failed.\n"
+ PMD_DRV_LOG(INFO, "Reading fw to buffer failed."
"Just %" PRIu64 " of %" PRIu64 " bytes read",
(uint64_t)bytes, (uint64_t)fsize);
free(fw_buf);
@@ -3175,9 +3175,9 @@ nfp_fw_upload(struct rte_pci_device *dev, struct nfp_nsp *nsp, char *card)
return -EIO;
}
- RTE_LOG(INFO, PMD, "Uploading the firmware ...");
+ PMD_DRV_LOG(INFO, "Uploading the firmware ...");
nfp_nsp_load_fw(nsp, fw_buf, bytes);
- RTE_LOG(INFO, PMD, "Done");
+ PMD_DRV_LOG(INFO, "Done");
free(fw_buf);
close(fw_f);
@@ -3197,29 +3197,29 @@ nfp_fw_setup(struct rte_pci_device *dev, struct nfp_cpp *cpp,
nfp_fw_model = nfp_hwinfo_lookup(hwinfo, "assembly.partno");
if (nfp_fw_model) {
- RTE_LOG(INFO, PMD, "firmware model found: %s\n", nfp_fw_model);
+ PMD_DRV_LOG(INFO, "firmware model found: %s", nfp_fw_model);
} else {
- RTE_LOG(ERR, PMD, "firmware model NOT found\n");
+ PMD_DRV_LOG(ERR, "firmware model NOT found");
return -EIO;
}
if (nfp_eth_table->count == 0 || nfp_eth_table->count > 8) {
- RTE_LOG(ERR, PMD, "NFP ethernet table reports wrong ports: %u\n",
+ PMD_DRV_LOG(ERR, "NFP ethernet table reports wrong ports: %u",
nfp_eth_table->count);
return -EIO;
}
- RTE_LOG(INFO, PMD, "NFP ethernet port table reports %u ports\n",
+ PMD_DRV_LOG(INFO, "NFP ethernet port table reports %u ports",
nfp_eth_table->count);
- RTE_LOG(INFO, PMD, "Port speed: %u\n", nfp_eth_table->ports[0].speed);
+ PMD_DRV_LOG(INFO, "Port speed: %u", nfp_eth_table->ports[0].speed);
sprintf(card_desc, "nic_%s_%dx%d.nffw", nfp_fw_model,
nfp_eth_table->count, nfp_eth_table->ports[0].speed / 1000);
nsp = nfp_nsp_open(cpp);
if (!nsp) {
- RTE_LOG(ERR, PMD, "NFP error when obtaining NSP handle\n");
+ PMD_DRV_LOG(ERR, "NFP error when obtaining NSP handle");
return -EIO;
}
@@ -3248,25 +3248,25 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
cpp = nfp_cpp_from_device_name(dev->device.name);
if (!cpp) {
- RTE_LOG(ERR, PMD, "A CPP handle can not be obtained");
+ PMD_DRV_LOG(ERR, "A CPP handle can not be obtained");
ret = -EIO;
goto error;
}
hwinfo = nfp_hwinfo_read(cpp);
if (!hwinfo) {
- RTE_LOG(ERR, PMD, "Error reading hwinfo table");
+ PMD_DRV_LOG(ERR, "Error reading hwinfo table");
return -EIO;
}
nfp_eth_table = nfp_eth_read_ports(cpp);
if (!nfp_eth_table) {
- RTE_LOG(ERR, PMD, "Error reading NFP ethernet table\n");
+ PMD_DRV_LOG(ERR, "Error reading NFP ethernet table");
return -EIO;
}
if (nfp_fw_setup(dev, cpp, nfp_eth_table, hwinfo)) {
- RTE_LOG(INFO, PMD, "Error when uploading firmware\n");
+ PMD_DRV_LOG(INFO, "Error when uploading firmware");
ret = -EIO;
goto error;
}
@@ -3274,7 +3274,7 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
/* Now the symbol table should be there */
sym_tbl = nfp_rtsym_table_read(cpp);
if (!sym_tbl) {
- RTE_LOG(ERR, PMD, "Something is wrong with the firmware"
+ PMD_DRV_LOG(ERR, "Something is wrong with the firmware"
" symbol table");
ret = -EIO;
goto error;
@@ -3282,14 +3282,14 @@ static int nfp_pf_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
total_ports = nfp_rtsym_read_le(sym_tbl, "nfd_cfg_pf0_num_ports", &err);
if (total_ports != (int)nfp_eth_table->count) {
- RTE_LOG(ERR, PMD, "Inconsistent number of ports\n");
+ PMD_DRV_LOG(ERR, "Inconsistent number of ports");
ret = -EIO;
goto error;
}
- PMD_INIT_LOG(INFO, "Total pf ports: %d\n", total_ports);
+ PMD_INIT_LOG(INFO, "Total pf ports: %d", total_ports);
if (total_ports <= 0 || total_ports > 8) {
- RTE_LOG(ERR, PMD, "nfd_cfg_pf0_num_ports symbol with wrong value");
+ PMD_DRV_LOG(ERR, "nfd_cfg_pf0_num_ports symbol with wrong value");
ret = -ENODEV;
goto error;
}
--
2.17.0
next prev parent reply other threads:[~2018-04-25 15:46 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-25 15:45 [dpdk-dev] [PATCH 0/5] net/nfp logging fixes Stephen Hemminger
2018-04-25 15:45 ` [dpdk-dev] [PATCH 1/5] net/nfp: use correct logtype for init messages Stephen Hemminger
2018-04-25 15:45 ` [dpdk-dev] [PATCH 2/5] net/nfp: add implied new line to PMD_DRV_LOG Stephen Hemminger
2018-04-25 15:45 ` [dpdk-dev] [PATCH 3/5] net/nfp: fix double space in init log Stephen Hemminger
2018-04-25 15:45 ` [dpdk-dev] [PATCH 4/5] net/nfl: add newline in PMD_RX/TX_LOG macros Stephen Hemminger
2018-04-25 15:45 ` Stephen Hemminger [this message]
2018-04-26 12:52 ` [dpdk-dev] [PATCH 0/5] net/nfp logging fixes Alejandro Lucero
2018-04-26 15:42 ` Stephen Hemminger
2018-04-26 18:14 ` Alejandro Lucero
2018-04-26 21:52 ` Ferruh Yigit
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=20180425154551.6795-6-stephen@networkplumber.org \
--to=stephen@networkplumber.org \
--cc=alejandro.lucero@netronome.com \
--cc=dev@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).