* [dpdk-dev] [PATCH v5 2/5] bnx2x: add xstats support
2016-05-12 0:06 [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Rasesh Mody
@ 2016-05-12 0:06 ` Rasesh Mody
2016-06-28 14:34 ` Thomas Monjalon
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 3/5] bnx2x: restructure Tx routine Rasesh Mody
` (3 subsequent siblings)
4 siblings, 1 reply; 14+ messages in thread
From: Rasesh Mody @ 2016-05-12 0:06 UTC (permalink / raw)
To: bruce.richardson; +Cc: dev, Dept-EngDPDKDev, Rasesh Mody, Harish Patil
Add extended stats support to provide additional statistical info.
Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
Signed-off-by: Harish Patil <harish.patil@qlogic.com>
---
doc/guides/nics/overview.rst | 2 +-
drivers/net/bnx2x/bnx2x_ethdev.c | 60 ++++++++++++++++++++++++++++++++++++++
2 files changed, 61 insertions(+), 1 deletion(-)
diff --git a/doc/guides/nics/overview.rst b/doc/guides/nics/overview.rst
index 0bd8fae..7ab84c6 100644
--- a/doc/guides/nics/overview.rst
+++ b/doc/guides/nics/overview.rst
@@ -128,7 +128,7 @@ Most of these differences are summarized below.
Packet type parsing Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Timesync Y Y Y Y Y
Basic stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
- Extended stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
+ Extended stats Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Stats per queue Y Y Y Y Y Y Y Y Y Y Y Y Y Y
EEPROM dump Y Y Y
Registers dump Y Y Y Y Y Y
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 3ff57c4..78e5ac1 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -334,6 +334,64 @@ bnx2x_dev_stats_get(struct rte_eth_dev *dev, struct rte_eth_stats *stats)
brb_truncate_discard + stats->rx_nombuf;
}
+#define BNX2X_EXTENDED_STATS 9
+
+static int
+bnx2x_dev_xstats_get(struct rte_eth_dev *dev, struct rte_eth_xstats *xstats,
+ unsigned int n)
+{
+ struct bnx2x_softc *sc = dev->data->dev_private;
+ unsigned int num = BNX2X_EXTENDED_STATS;
+
+ if (n < num)
+ return num;
+
+ num = 0;
+
+ bnx2x_stats_handle(sc, STATS_EVENT_UPDATE);
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name), "rx_buffer_drops");
+ xstats[num++].value = HILO_U64(sc->eth_stats.brb_drop_hi,
+ sc->eth_stats.brb_drop_lo);
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name),
+ "rx_buffer_truncates");
+ xstats[num++].value = HILO_U64(sc->eth_stats.brb_truncate_hi,
+ sc->eth_stats.brb_truncate_lo);
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name),
+ "rx_buffer_truncate_discard");
+ xstats[num++].value = sc->eth_stats.brb_truncate_discard;
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name),
+ "mac_filter_discard");
+ xstats[num++].value = sc->eth_stats.mac_filter_discard;
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name),
+ "no_match_vlan_tag_discard");
+ xstats[num++].value = sc->eth_stats.mf_tag_discard;
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name), "tx_pause");
+ xstats[num++].value = HILO_U64(sc->eth_stats.pause_frames_sent_hi,
+ sc->eth_stats.pause_frames_sent_lo);
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name), "rx_pause");
+ xstats[num++].value = HILO_U64(sc->eth_stats.pause_frames_received_hi,
+ sc->eth_stats.pause_frames_received_lo);
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name),
+ "tx_priority_flow_control");
+ xstats[num++].value = HILO_U64(sc->eth_stats.pfc_frames_sent_hi,
+ sc->eth_stats.pfc_frames_sent_lo);
+
+ snprintf(xstats[num].name, sizeof(xstats[num].name),
+ "rx_priority_flow_control");
+ xstats[num++].value = HILO_U64(sc->eth_stats.pfc_frames_received_hi,
+ sc->eth_stats.pfc_frames_received_lo);
+
+ return num;
+}
+
static void
bnx2x_dev_infos_get(struct rte_eth_dev *dev, __rte_unused struct rte_eth_dev_info *dev_info)
{
@@ -376,6 +434,7 @@ static const struct eth_dev_ops bnx2x_eth_dev_ops = {
.allmulticast_disable = bnx2x_dev_allmulticast_disable,
.link_update = bnx2x_dev_link_update,
.stats_get = bnx2x_dev_stats_get,
+ .xstats_get = bnx2x_dev_xstats_get,
.dev_infos_get = bnx2x_dev_infos_get,
.rx_queue_setup = bnx2x_dev_rx_queue_setup,
.rx_queue_release = bnx2x_dev_rx_queue_release,
@@ -399,6 +458,7 @@ static const struct eth_dev_ops bnx2xvf_eth_dev_ops = {
.allmulticast_disable = bnx2x_dev_allmulticast_disable,
.link_update = bnx2xvf_dev_link_update,
.stats_get = bnx2x_dev_stats_get,
+ .xstats_get = bnx2x_dev_xstats_get,
.dev_infos_get = bnx2x_dev_infos_get,
.rx_queue_setup = bnx2x_dev_rx_queue_setup,
.rx_queue_release = bnx2x_dev_rx_queue_release,
--
1.7.10.3
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v5 2/5] bnx2x: add xstats support
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 2/5] bnx2x: add xstats support Rasesh Mody
@ 2016-06-28 14:34 ` Thomas Monjalon
2016-06-29 0:09 ` Rasesh Mody
0 siblings, 1 reply; 14+ messages in thread
From: Thomas Monjalon @ 2016-06-28 14:34 UTC (permalink / raw)
To: Rasesh Mody
Cc: dev, bruce.richardson, Dept-EngDPDKDev, Harish Patil, remy.horton
2016-05-11 17:06, Rasesh Mody:
> Add extended stats support to provide additional statistical info.
>
> Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
> Signed-off-by: Harish Patil <harish.patil@qlogic.com>
This bnx2x patch and a qede one cannot be merged in master tree
because of an API change:
http://dpdk.org/commit/bd6aa172
http://dpdk.org/commit/e2aae1c1
Please could you rework this patch for RC2?
Sorry for the inconvenience, I should have caught it earlier.
We'll try to synchronize the branches more often in future.
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v5 2/5] bnx2x: add xstats support
2016-06-28 14:34 ` Thomas Monjalon
@ 2016-06-29 0:09 ` Rasesh Mody
0 siblings, 0 replies; 14+ messages in thread
From: Rasesh Mody @ 2016-06-29 0:09 UTC (permalink / raw)
To: Thomas Monjalon
Cc: dev, bruce.richardson, Dept-Eng DPDK Dev, Harish Patil, remy.horton
> From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
> Sent: Tuesday, June 28, 2016 7:34 AM
>
> 2016-05-11 17:06, Rasesh Mody:
> > Add extended stats support to provide additional statistical info.
> >
> > Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
> > Signed-off-by: Harish Patil <harish.patil@qlogic.com>
>
> This bnx2x patch and a qede one cannot be merged in master tree because
> of an API change:
> http://dpdk.org/commit/bd6aa172
> http://dpdk.org/commit/e2aae1c1
> Please could you rework this patch for RC2?
>
> Sorry for the inconvenience, I should have caught it earlier.
> We'll try to synchronize the branches more often in future.
Will work on it and submit patches to incorporate the API change.
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v5 3/5] bnx2x: restructure Tx routine
2016-05-12 0:06 [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Rasesh Mody
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 2/5] bnx2x: add xstats support Rasesh Mody
@ 2016-05-12 0:06 ` Rasesh Mody
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 4/5] bnx2x: use single doorbell for TX Rasesh Mody
` (2 subsequent siblings)
4 siblings, 0 replies; 14+ messages in thread
From: Rasesh Mody @ 2016-05-12 0:06 UTC (permalink / raw)
To: bruce.richardson; +Cc: dev, Dept-EngDPDKDev, Rasesh Mody, Harish Patil
- Process Tx completions based on configured Tx free threshold and
determine how much TX BDs are required before invoking bnx2x_tx_encap()
- Change bnx2x_tx_encap() to void function
Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
Signed-off-by: Harish Patil <harish.patil@qlogic.com>
---
drivers/net/bnx2x/bnx2x.c | 14 ++++----------
drivers/net/bnx2x/bnx2x.h | 5 ++++-
drivers/net/bnx2x/bnx2x_rxtx.c | 39 ++++++++++++++++++---------------------
3 files changed, 26 insertions(+), 32 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index 6edb2f9..5d182c3 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -2113,10 +2113,12 @@ bnx2x_nic_unload(struct bnx2x_softc *sc, uint32_t unload_mode, uint8_t keep_link
* the mbuf and return to the caller.
*
* Returns:
- * 0 = Success, !0 = Failure
+ * void.
+ *
* Note the side effect that an mbuf may be freed if it causes a problem.
*/
-int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head, int m_pkts)
+void bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head,
+ int m_pkts)
{
struct rte_mbuf *m0;
struct eth_tx_start_bd *tx_start_bd;
@@ -2136,12 +2138,6 @@ int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head, int m_p
m0 = *m_head++;
- if (unlikely(txq->nb_tx_avail < 3)) {
- PMD_TX_LOG(ERR, "no enough bds %d/%d",
- bd_prod, txq->nb_tx_avail);
- return -ENOMEM;
- }
-
txq->sw_ring[TX_BD(pkt_prod, txq)] = m0;
tx_start_bd = &txq->tx_ring[TX_BD(bd_prod, txq)].start_bd;
@@ -2252,8 +2248,6 @@ int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head, int m_p
fp->tx_db.data.prod += (m_pkts << 1) + nbds;
DOORBELL(sc, txq->queue_id, fp->tx_db.raw);
mb();
-
- return 0;
}
static uint16_t bnx2x_cid_ilt_lines(struct bnx2x_softc *sc)
diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h
index 135a6eb..42700e7 100644
--- a/drivers/net/bnx2x/bnx2x.h
+++ b/drivers/net/bnx2x/bnx2x.h
@@ -167,6 +167,8 @@ struct bnx2x_device_type {
#define TX_PAGE(x) (((x) & ~USABLE_TX_BD_PER_PAGE) >> 8)
#define TX_IDX(x) ((x) & USABLE_TX_BD_PER_PAGE)
+#define BDS_PER_TX_PKT (3)
+
/*
* Trigger pending transmits when the number of available BDs is greater
* than 1/8 of the total number of usable BDs.
@@ -1864,7 +1866,8 @@ int bnx2x_alloc_hsi_mem(struct bnx2x_softc *sc);
int bnx2x_alloc_ilt_mem(struct bnx2x_softc *sc);
void bnx2x_free_ilt_mem(struct bnx2x_softc *sc);
void bnx2x_dump_tx_chain(struct bnx2x_fastpath * fp, int bd_prod, int count);
-int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head, int m_pkts);
+void bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head,
+ int m_pkts);
uint8_t bnx2x_txeof(struct bnx2x_softc *sc, struct bnx2x_fastpath *fp);
void bnx2x_print_adapter_info(struct bnx2x_softc *sc);
int bnx2x_intr_legacy(struct bnx2x_softc *sc, int scan_fp);
diff --git a/drivers/net/bnx2x/bnx2x_rxtx.c b/drivers/net/bnx2x/bnx2x_rxtx.c
index e825bce..3e1f83b 100644
--- a/drivers/net/bnx2x/bnx2x_rxtx.c
+++ b/drivers/net/bnx2x/bnx2x_rxtx.c
@@ -222,40 +222,37 @@ bnx2x_xmit_pkts(void *p_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
struct bnx2x_tx_queue *txq;
struct bnx2x_softc *sc;
struct bnx2x_fastpath *fp;
- uint32_t burst, nb_tx;
+ uint32_t burst;
struct rte_mbuf **m = tx_pkts;
- int ret;
+ uint16_t nb_tx_pkts;
+ uint16_t nb_pkt_sent = 0;
txq = p_txq;
sc = txq->sc;
fp = &sc->fp[txq->queue_id];
- nb_tx = nb_pkts;
+ if ((unlikely((txq->nb_tx_desc - txq->nb_tx_avail) >
+ txq->tx_free_thresh)))
+ bnx2x_txeof(sc, fp);
- do {
- burst = RTE_MIN(nb_pkts, RTE_PMD_BNX2X_TX_MAX_BURST);
+ nb_tx_pkts = RTE_MIN(nb_pkts, txq->nb_tx_avail / BDS_PER_TX_PKT);
+ if (unlikely(nb_tx_pkts == 0))
+ return 0;
- ret = bnx2x_tx_encap(txq, m, burst);
- if (unlikely(ret)) {
- PMD_TX_LOG(ERR, "tx_encap failed!");
- }
+ burst = RTE_MIN(nb_tx_pkts, RTE_PMD_BNX2X_TX_MAX_BURST);
+ while (nb_tx_pkts--) {
+ assert(m != NULL);
+ bnx2x_tx_encap(txq, m, burst);
bnx2x_update_fp_sb_idx(fp);
-
- if ((txq->nb_tx_desc - txq->nb_tx_avail) > txq->tx_free_thresh) {
+ if ((txq->nb_tx_desc - txq->nb_tx_avail) >
+ txq->tx_free_thresh)
bnx2x_txeof(sc, fp);
- }
-
- if (unlikely(ret == -ENOMEM)) {
- break;
- }
-
m += burst;
- nb_pkts -= burst;
-
- } while (nb_pkts);
+ nb_pkt_sent++;
+ }
- return nb_tx - nb_pkts;
+ return nb_pkt_sent;
}
int
--
1.7.10.3
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v5 4/5] bnx2x: use single doorbell for TX
2016-05-12 0:06 [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Rasesh Mody
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 2/5] bnx2x: add xstats support Rasesh Mody
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 3/5] bnx2x: restructure Tx routine Rasesh Mody
@ 2016-05-12 0:06 ` Rasesh Mody
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 5/5] bnx2x: update driver version to 1.0.1.1 Rasesh Mody
2016-06-08 16:15 ` [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Bruce Richardson
4 siblings, 0 replies; 14+ messages in thread
From: Rasesh Mody @ 2016-05-12 0:06 UTC (permalink / raw)
To: bruce.richardson; +Cc: dev, Dept-EngDPDKDev, Rasesh Mody, Harish Patil
Change the Tx routine to ring the doorbell once per burst
and not on every Tx packet. This driver-level optimization
is necessary to achieve line rates for larger frame
sizes (1k or more).
Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
Signed-off-by: Harish Patil <harish.patil@qlogic.com>
---
drivers/net/bnx2x/bnx2x.c | 200 +++++++++++++++++++---------------------
drivers/net/bnx2x/bnx2x.h | 3 +-
drivers/net/bnx2x/bnx2x_rxtx.c | 23 +++--
3 files changed, 107 insertions(+), 119 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index 5d182c3..f7ee77e 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -1293,7 +1293,7 @@ bnx2x_free_tx_pkt(__rte_unused struct bnx2x_fastpath *fp, struct bnx2x_tx_queue
struct rte_mbuf *tx_mbuf = txq->sw_ring[TX_BD(pkt_idx, txq)];
if (likely(tx_mbuf != NULL)) {
- rte_pktmbuf_free(tx_mbuf);
+ rte_pktmbuf_free_seg(tx_mbuf);
} else {
PMD_RX_LOG(ERR, "fp[%02d] lost mbuf %lu",
fp->index, (unsigned long)TX_BD(pkt_idx, txq));
@@ -2113,141 +2113,127 @@ bnx2x_nic_unload(struct bnx2x_softc *sc, uint32_t unload_mode, uint8_t keep_link
* the mbuf and return to the caller.
*
* Returns:
- * void.
+ * int: Number of TX BDs used for the mbuf
*
* Note the side effect that an mbuf may be freed if it causes a problem.
*/
-void bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head,
- int m_pkts)
+int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf *m0)
{
- struct rte_mbuf *m0;
struct eth_tx_start_bd *tx_start_bd;
uint16_t bd_prod, pkt_prod;
- int m_tx;
struct bnx2x_softc *sc;
uint32_t nbds = 0;
- struct bnx2x_fastpath *fp;
sc = txq->sc;
- fp = &sc->fp[txq->queue_id];
-
bd_prod = txq->tx_bd_tail;
pkt_prod = txq->tx_pkt_tail;
- for (m_tx = 0; m_tx < m_pkts; m_tx++) {
-
- m0 = *m_head++;
+ txq->sw_ring[TX_BD(pkt_prod, txq)] = m0;
- txq->sw_ring[TX_BD(pkt_prod, txq)] = m0;
+ tx_start_bd = &txq->tx_ring[TX_BD(bd_prod, txq)].start_bd;
- tx_start_bd = &txq->tx_ring[TX_BD(bd_prod, txq)].start_bd;
+ tx_start_bd->addr =
+ rte_cpu_to_le_64(rte_mbuf_data_dma_addr(m0));
+ tx_start_bd->nbytes = rte_cpu_to_le_16(m0->data_len);
+ tx_start_bd->bd_flags.as_bitfield = ETH_TX_BD_FLAGS_START_BD;
+ tx_start_bd->general_data =
+ (1 << ETH_TX_START_BD_HDR_NBDS_SHIFT);
- tx_start_bd->addr =
- rte_cpu_to_le_64(rte_mbuf_data_dma_addr(m0));
- tx_start_bd->nbytes = rte_cpu_to_le_16(m0->data_len);
- tx_start_bd->bd_flags.as_bitfield = ETH_TX_BD_FLAGS_START_BD;
- tx_start_bd->general_data =
- (1 << ETH_TX_START_BD_HDR_NBDS_SHIFT);
+ tx_start_bd->nbd = rte_cpu_to_le_16(2);
- tx_start_bd->nbd = rte_cpu_to_le_16(2);
+ if (m0->ol_flags & PKT_TX_VLAN_PKT) {
+ tx_start_bd->vlan_or_ethertype =
+ rte_cpu_to_le_16(m0->vlan_tci);
+ tx_start_bd->bd_flags.as_bitfield |=
+ (X_ETH_OUTBAND_VLAN <<
+ ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT);
+ } else {
+ if (IS_PF(sc))
+ tx_start_bd->vlan_or_ethertype =
+ rte_cpu_to_le_16(pkt_prod);
+ else {
+ struct ether_hdr *eh =
+ rte_pktmbuf_mtod(m0, struct ether_hdr *);
- if (m0->ol_flags & PKT_TX_VLAN_PKT) {
tx_start_bd->vlan_or_ethertype =
- rte_cpu_to_le_16(m0->vlan_tci);
- tx_start_bd->bd_flags.as_bitfield |=
- (X_ETH_OUTBAND_VLAN <<
- ETH_TX_BD_FLAGS_VLAN_MODE_SHIFT);
- } else {
- if (IS_PF(sc))
- tx_start_bd->vlan_or_ethertype =
- rte_cpu_to_le_16(pkt_prod);
- else {
- struct ether_hdr *eh
- = rte_pktmbuf_mtod(m0, struct ether_hdr *);
-
- tx_start_bd->vlan_or_ethertype
- = rte_cpu_to_le_16(rte_be_to_cpu_16(eh->ether_type));
- }
+ rte_cpu_to_le_16(rte_be_to_cpu_16(eh->ether_type));
}
+ }
- bd_prod = NEXT_TX_BD(bd_prod);
- if (IS_VF(sc)) {
- struct eth_tx_parse_bd_e2 *tx_parse_bd;
- const struct ether_hdr *eh = rte_pktmbuf_mtod(m0, struct ether_hdr *);
- uint8_t mac_type = UNICAST_ADDRESS;
-
- tx_parse_bd =
- &txq->tx_ring[TX_BD(bd_prod, txq)].parse_bd_e2;
- if (is_multicast_ether_addr(&eh->d_addr)) {
- if (is_broadcast_ether_addr(&eh->d_addr))
- mac_type = BROADCAST_ADDRESS;
- else
- mac_type = MULTICAST_ADDRESS;
- }
- tx_parse_bd->parsing_data =
- (mac_type << ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE_SHIFT);
-
- rte_memcpy(&tx_parse_bd->data.mac_addr.dst_hi,
- &eh->d_addr.addr_bytes[0], 2);
- rte_memcpy(&tx_parse_bd->data.mac_addr.dst_mid,
- &eh->d_addr.addr_bytes[2], 2);
- rte_memcpy(&tx_parse_bd->data.mac_addr.dst_lo,
- &eh->d_addr.addr_bytes[4], 2);
- rte_memcpy(&tx_parse_bd->data.mac_addr.src_hi,
- &eh->s_addr.addr_bytes[0], 2);
- rte_memcpy(&tx_parse_bd->data.mac_addr.src_mid,
- &eh->s_addr.addr_bytes[2], 2);
- rte_memcpy(&tx_parse_bd->data.mac_addr.src_lo,
- &eh->s_addr.addr_bytes[4], 2);
-
- tx_parse_bd->data.mac_addr.dst_hi =
- rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.dst_hi);
- tx_parse_bd->data.mac_addr.dst_mid =
- rte_cpu_to_be_16(tx_parse_bd->data.
- mac_addr.dst_mid);
- tx_parse_bd->data.mac_addr.dst_lo =
- rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.dst_lo);
- tx_parse_bd->data.mac_addr.src_hi =
- rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.src_hi);
- tx_parse_bd->data.mac_addr.src_mid =
- rte_cpu_to_be_16(tx_parse_bd->data.
- mac_addr.src_mid);
- tx_parse_bd->data.mac_addr.src_lo =
- rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.src_lo);
-
- PMD_TX_LOG(DEBUG,
- "PBD dst %x %x %x src %x %x %x p_data %x",
- tx_parse_bd->data.mac_addr.dst_hi,
- tx_parse_bd->data.mac_addr.dst_mid,
- tx_parse_bd->data.mac_addr.dst_lo,
- tx_parse_bd->data.mac_addr.src_hi,
- tx_parse_bd->data.mac_addr.src_mid,
- tx_parse_bd->data.mac_addr.src_lo,
- tx_parse_bd->parsing_data);
- }
+ bd_prod = NEXT_TX_BD(bd_prod);
+ if (IS_VF(sc)) {
+ struct eth_tx_parse_bd_e2 *tx_parse_bd;
+ const struct ether_hdr *eh =
+ rte_pktmbuf_mtod(m0, struct ether_hdr *);
+ uint8_t mac_type = UNICAST_ADDRESS;
+
+ tx_parse_bd =
+ &txq->tx_ring[TX_BD(bd_prod, txq)].parse_bd_e2;
+ if (is_multicast_ether_addr(&eh->d_addr)) {
+ if (is_broadcast_ether_addr(&eh->d_addr))
+ mac_type = BROADCAST_ADDRESS;
+ else
+ mac_type = MULTICAST_ADDRESS;
+ }
+ tx_parse_bd->parsing_data =
+ (mac_type << ETH_TX_PARSE_BD_E2_ETH_ADDR_TYPE_SHIFT);
+
+ rte_memcpy(&tx_parse_bd->data.mac_addr.dst_hi,
+ &eh->d_addr.addr_bytes[0], 2);
+ rte_memcpy(&tx_parse_bd->data.mac_addr.dst_mid,
+ &eh->d_addr.addr_bytes[2], 2);
+ rte_memcpy(&tx_parse_bd->data.mac_addr.dst_lo,
+ &eh->d_addr.addr_bytes[4], 2);
+ rte_memcpy(&tx_parse_bd->data.mac_addr.src_hi,
+ &eh->s_addr.addr_bytes[0], 2);
+ rte_memcpy(&tx_parse_bd->data.mac_addr.src_mid,
+ &eh->s_addr.addr_bytes[2], 2);
+ rte_memcpy(&tx_parse_bd->data.mac_addr.src_lo,
+ &eh->s_addr.addr_bytes[4], 2);
+
+ tx_parse_bd->data.mac_addr.dst_hi =
+ rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.dst_hi);
+ tx_parse_bd->data.mac_addr.dst_mid =
+ rte_cpu_to_be_16(tx_parse_bd->data.
+ mac_addr.dst_mid);
+ tx_parse_bd->data.mac_addr.dst_lo =
+ rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.dst_lo);
+ tx_parse_bd->data.mac_addr.src_hi =
+ rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.src_hi);
+ tx_parse_bd->data.mac_addr.src_mid =
+ rte_cpu_to_be_16(tx_parse_bd->data.
+ mac_addr.src_mid);
+ tx_parse_bd->data.mac_addr.src_lo =
+ rte_cpu_to_be_16(tx_parse_bd->data.mac_addr.src_lo);
PMD_TX_LOG(DEBUG,
- "start bd: nbytes %d flags %x vlan %x\n",
- tx_start_bd->nbytes,
- tx_start_bd->bd_flags.as_bitfield,
- tx_start_bd->vlan_or_ethertype);
+ "PBD dst %x %x %x src %x %x %x p_data %x",
+ tx_parse_bd->data.mac_addr.dst_hi,
+ tx_parse_bd->data.mac_addr.dst_mid,
+ tx_parse_bd->data.mac_addr.dst_lo,
+ tx_parse_bd->data.mac_addr.src_hi,
+ tx_parse_bd->data.mac_addr.src_mid,
+ tx_parse_bd->data.mac_addr.src_lo,
+ tx_parse_bd->parsing_data);
+ }
- bd_prod = NEXT_TX_BD(bd_prod);
- pkt_prod++;
+ PMD_TX_LOG(DEBUG,
+ "start bd: nbytes %d flags %x vlan %x\n",
+ tx_start_bd->nbytes,
+ tx_start_bd->bd_flags.as_bitfield,
+ tx_start_bd->vlan_or_ethertype);
- if (TX_IDX(bd_prod) < 2) {
- nbds++;
- }
- }
+ bd_prod = NEXT_TX_BD(bd_prod);
+ pkt_prod++;
+
+ if (TX_IDX(bd_prod) < 2)
+ nbds++;
- txq->nb_tx_avail -= m_pkts << 1;
+ txq->nb_tx_avail -= 2;
txq->tx_bd_tail = bd_prod;
txq->tx_pkt_tail = pkt_prod;
- mb();
- fp->tx_db.data.prod += (m_pkts << 1) + nbds;
- DOORBELL(sc, txq->queue_id, fp->tx_db.raw);
- mb();
+ return nbds + 2;
}
static uint16_t bnx2x_cid_ilt_lines(struct bnx2x_softc *sc)
diff --git a/drivers/net/bnx2x/bnx2x.h b/drivers/net/bnx2x/bnx2x.h
index 42700e7..c24a530 100644
--- a/drivers/net/bnx2x/bnx2x.h
+++ b/drivers/net/bnx2x/bnx2x.h
@@ -1866,8 +1866,7 @@ int bnx2x_alloc_hsi_mem(struct bnx2x_softc *sc);
int bnx2x_alloc_ilt_mem(struct bnx2x_softc *sc);
void bnx2x_free_ilt_mem(struct bnx2x_softc *sc);
void bnx2x_dump_tx_chain(struct bnx2x_fastpath * fp, int bd_prod, int count);
-void bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf **m_head,
- int m_pkts);
+int bnx2x_tx_encap(struct bnx2x_tx_queue *txq, struct rte_mbuf *m0);
uint8_t bnx2x_txeof(struct bnx2x_softc *sc, struct bnx2x_fastpath *fp);
void bnx2x_print_adapter_info(struct bnx2x_softc *sc);
int bnx2x_intr_legacy(struct bnx2x_softc *sc, int scan_fp);
diff --git a/drivers/net/bnx2x/bnx2x_rxtx.c b/drivers/net/bnx2x/bnx2x_rxtx.c
index 3e1f83b..8bcb431 100644
--- a/drivers/net/bnx2x/bnx2x_rxtx.c
+++ b/drivers/net/bnx2x/bnx2x_rxtx.c
@@ -222,10 +222,9 @@ bnx2x_xmit_pkts(void *p_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
struct bnx2x_tx_queue *txq;
struct bnx2x_softc *sc;
struct bnx2x_fastpath *fp;
- uint32_t burst;
- struct rte_mbuf **m = tx_pkts;
uint16_t nb_tx_pkts;
uint16_t nb_pkt_sent = 0;
+ uint32_t ret;
txq = p_txq;
sc = txq->sc;
@@ -239,19 +238,23 @@ bnx2x_xmit_pkts(void *p_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
if (unlikely(nb_tx_pkts == 0))
return 0;
- burst = RTE_MIN(nb_tx_pkts, RTE_PMD_BNX2X_TX_MAX_BURST);
-
while (nb_tx_pkts--) {
+ struct rte_mbuf *m = *tx_pkts++;
assert(m != NULL);
- bnx2x_tx_encap(txq, m, burst);
- bnx2x_update_fp_sb_idx(fp);
- if ((txq->nb_tx_desc - txq->nb_tx_avail) >
- txq->tx_free_thresh)
- bnx2x_txeof(sc, fp);
- m += burst;
+ ret = bnx2x_tx_encap(txq, m);
+ fp->tx_db.data.prod += ret;
nb_pkt_sent++;
}
+ bnx2x_update_fp_sb_idx(fp);
+ mb();
+ DOORBELL(sc, txq->queue_id, fp->tx_db.raw);
+ mb();
+
+ if ((txq->nb_tx_desc - txq->nb_tx_avail) >
+ txq->tx_free_thresh)
+ bnx2x_txeof(sc, fp);
+
return nb_pkt_sent;
}
--
1.7.10.3
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v5 5/5] bnx2x: update driver version to 1.0.1.1
2016-05-12 0:06 [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Rasesh Mody
` (2 preceding siblings ...)
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 4/5] bnx2x: use single doorbell for TX Rasesh Mody
@ 2016-05-12 0:06 ` Rasesh Mody
2016-06-08 16:15 ` [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Bruce Richardson
4 siblings, 0 replies; 14+ messages in thread
From: Rasesh Mody @ 2016-05-12 0:06 UTC (permalink / raw)
To: bruce.richardson; +Cc: dev, Dept-EngDPDKDev, Rasesh Mody, Harish Patil
Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
Signed-off-by: Harish Patil <harish.patil@qlogic.com>
---
drivers/net/bnx2x/bnx2x.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index f7ee77e..f1bc2dd 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -32,18 +32,20 @@
#define BNX2X_PMD_VER_PREFIX "BNX2X PMD"
#define BNX2X_PMD_VERSION_MAJOR 1
#define BNX2X_PMD_VERSION_MINOR 0
-#define BNX2X_PMD_VERSION_PATCH 0
+#define BNX2X_PMD_VERSION_REVISION 1
+#define BNX2X_PMD_VERSION_PATCH 1
static inline const char *
bnx2x_pmd_version(void)
{
static char version[32];
- snprintf(version, sizeof(version), "%s %s_%d.%d.%d",
+ snprintf(version, sizeof(version), "%s %s_%d.%d.%d.%d",
BNX2X_PMD_VER_PREFIX,
BNX2X_DRIVER_VERSION,
BNX2X_PMD_VERSION_MAJOR,
BNX2X_PMD_VERSION_MINOR,
+ BNX2X_PMD_VERSION_REVISION,
BNX2X_PMD_VERSION_PATCH);
return version;
--
1.7.10.3
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get
2016-05-12 0:06 [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Rasesh Mody
` (3 preceding siblings ...)
2016-05-12 0:06 ` [dpdk-dev] [PATCH v5 5/5] bnx2x: update driver version to 1.0.1.1 Rasesh Mody
@ 2016-06-08 16:15 ` Bruce Richardson
2016-06-10 10:08 ` Ferruh Yigit
4 siblings, 1 reply; 14+ messages in thread
From: Bruce Richardson @ 2016-06-08 16:15 UTC (permalink / raw)
To: Rasesh Mody; +Cc: dev, Dept-EngDPDKDev, Harish Patil
On Wed, May 11, 2016 at 05:06:21PM -0700, Rasesh Mody wrote:
> Fix stats_get() routine to display drop counters under imissed counter.
>
> Fixes: 540a211084a7 ("bnx2x: driver core")
>
> Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
> Signed-off-by: Harish Patil <harish.patil@qlogic.com>
Patchset applied to dpdk-next-net/rel_16_07
/Bruce
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get
2016-06-08 16:15 ` [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get Bruce Richardson
@ 2016-06-10 10:08 ` Ferruh Yigit
2016-06-13 10:32 ` Ferruh Yigit
2016-06-13 10:47 ` [dpdk-dev] [PATCH] bnx2x: fix ICC compilation error Ferruh Yigit
0 siblings, 2 replies; 14+ messages in thread
From: Ferruh Yigit @ 2016-06-10 10:08 UTC (permalink / raw)
To: Bruce Richardson, Rasesh Mody; +Cc: dev, Dept-EngDPDKDev, Harish Patil
On 6/8/2016 5:15 PM, Bruce Richardson wrote:
> On Wed, May 11, 2016 at 05:06:21PM -0700, Rasesh Mody wrote:
>> Fix stats_get() routine to display drop counters under imissed counter.
>>
>> Fixes: 540a211084a7 ("bnx2x: driver core")
>>
>> Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
>> Signed-off-by: Harish Patil <harish.patil@qlogic.com>
>
> Patchset applied to dpdk-next-net/rel_16_07
>
> /Bruce
>
This patchset is cause a compile error with ICC, I will send a patch to
disable some warning with ICC.
Please find compile warning as reference:
== Build drivers/net/bnx2x
CC bnx2x.o
.../drivers/net/bnx2x/bnx2x.c(1248): error #188: enumerated type mixed
with another type
cqe_fp_type = cqe_fp_flags & ETH_FAST_PATH_RX_CQE_TYPE;
^
.../drivers/net/bnx2x/bnx2x.c(3566): error #188: enumerated type mixed
with another type
op_code = ((drv_info_ctl & DRV_INFO_CONTROL_OP_CODE_MASK) >>
^
.../drivers/net/bnx2x/bnx2x.c(7731): error #188: enumerated type mixed
with another type
mf_info->afex_vlan_mode =
^
compilation aborted for .../drivers/net/bnx2x/bnx2x.c (code 2)
.../mk/internal/rte.compile-pre.mk:126: recipe for target 'bnx2x.o' failed
make[4]: *** [bnx2x.o] Error 2
CC bnx2x_rxtx.o
CC bnx2x_stats.o
.../drivers/net/bnx2x/bnx2x_stats.c(1287): error #188: enumerated type
mixed with another type
state = sc->stats_state;
^
compilation aborted for .../drivers/net/bnx2x/bnx2x_stats.c (code 2)
.../mk/internal/rte.compile-pre.mk:126: recipe for target
'bnx2x_stats.o' failed
make[4]: *** [bnx2x_stats.o] Error 2
CC bnx2x_ethdev.o
CC ecore_sp.o
.../drivers/net/bnx2x/ecore_sp.c(2508): error #188: enumerated type
mixed with another type
o->set_one_rule(sc, o, cnt, &cfg_data, cmd_pos->type);
^
.../drivers/net/bnx2x/ecore_sp.c(2542): error #188: enumerated type
mixed with another type
o->set_one_rule(sc, o, cnt, NULL, cmd_pos->type);
^
.../drivers/net/bnx2x/ecore_sp.c(3644): error #188: enumerated type
mixed with another type
o->complete_cmd(sc, o, pending_bit);
^
.../drivers/net/bnx2x/ecore_sp.c(3656): error #188: enumerated type
mixed with another type
rc = o->wait_comp(sc, o, pending_bit);
^
compilation aborted for .../drivers/net/bnx2x/ecore_sp.c (code 2)
.../mk/internal/rte.compile-pre.mk:126: recipe for target 'ecore_sp.o'
failed
make[4]: *** [ecore_sp.o] Error 2
CC elink.o
.../drivers/net/bnx2x/elink.c(5032): error #188: enumerated type mixed
with another type
return 1;
^
.../drivers/net/bnx2x/elink.c(5042): error #188: enumerated type mixed
with another type
return 1;
^
.../drivers/net/bnx2x/elink.c(6738): error #188: enumerated type mixed
with another type
return 1;
^
.../drivers/net/bnx2x/elink.c(7560): error #188: enumerated type mixed
with another type
elink_status_t rc = 0;
^
.../drivers/net/bnx2x/elink.c(8464): error #188: enumerated type mixed
with another type
return elink_8706_8726_read_status(phy, params, vars);
^
compilation aborted for .../drivers/net/bnx2x/elink.c (code 2)
.../mk/internal/rte.compile-pre.mk:126: recipe for target 'elink.o' failed
make[4]: *** [elink.o] Error 2
CC bnx2x_vfpf.o
make[4]: Target 'all' not remade because of errors.
.../mk/rte.subdir.mk:61: recipe for target 'bnx2x' failed
make[3]: *** [bnx2x] Error 2
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v5 1/5] bnx2x: fixed stats get
2016-06-10 10:08 ` Ferruh Yigit
@ 2016-06-13 10:32 ` Ferruh Yigit
2016-06-13 10:47 ` [dpdk-dev] [PATCH] bnx2x: fix ICC compilation error Ferruh Yigit
1 sibling, 0 replies; 14+ messages in thread
From: Ferruh Yigit @ 2016-06-13 10:32 UTC (permalink / raw)
To: Bruce Richardson, Rasesh Mody; +Cc: dev, Dept-EngDPDKDev, Harish Patil
On 6/10/2016 11:08 AM, Ferruh Yigit wrote:
> On 6/8/2016 5:15 PM, Bruce Richardson wrote:
>> On Wed, May 11, 2016 at 05:06:21PM -0700, Rasesh Mody wrote:
>>> Fix stats_get() routine to display drop counters under imissed counter.
>>>
>>> Fixes: 540a211084a7 ("bnx2x: driver core")
>>>
>>> Signed-off-by: Rasesh Mody <rasesh.mody@qlogic.com>
>>> Signed-off-by: Harish Patil <harish.patil@qlogic.com>
>>
>> Patchset applied to dpdk-next-net/rel_16_07
>>
>> /Bruce
>>
>
> This patchset is cause a compile error with ICC, I will send a patch to
> disable some warning with ICC.
>
With more investigation, it is not this patchset causing the compilation
error with ICC, master branch has also this problem.
Regards,
ferruh
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH] bnx2x: fix ICC compilation error
2016-06-10 10:08 ` Ferruh Yigit
2016-06-13 10:32 ` Ferruh Yigit
@ 2016-06-13 10:47 ` Ferruh Yigit
2016-06-27 16:02 ` [dpdk-dev] [PATCH v2] bnx2x: fix icc " Ferruh Yigit
1 sibling, 1 reply; 14+ messages in thread
From: Ferruh Yigit @ 2016-06-13 10:47 UTC (permalink / raw)
To: dev; +Cc: Rasesh Mody, Harish Patil, Sony Chacko, Ferruh Yigit
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/net/bnx2x/Makefile | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile
index 6f1f385..c2ddd8d 100644
--- a/drivers/net/bnx2x/Makefile
+++ b/drivers/net/bnx2x/Makefile
@@ -14,6 +14,10 @@ EXPORT_MAP := rte_pmd_bnx2x_version.map
LIBABIVER := 1
+ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
+CFLAGS += -wd188 #188: enumerated type mixed with another type
+endif
+
#
# all source are stored in SRCS-y
#
--
2.5.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* [dpdk-dev] [PATCH v2] bnx2x: fix icc compilation error
2016-06-13 10:47 ` [dpdk-dev] [PATCH] bnx2x: fix ICC compilation error Ferruh Yigit
@ 2016-06-27 16:02 ` Ferruh Yigit
2016-06-27 23:21 ` Rasesh Mody
0 siblings, 1 reply; 14+ messages in thread
From: Ferruh Yigit @ 2016-06-27 16:02 UTC (permalink / raw)
To: dev; +Cc: Rasesh Mody, Harish Patil, Sony Chacko
Fix icc warning:
error #188: enumerated type mixed with another type
Fixed the code for simple cases caused the warning.
Still need to disable compiler warning because of more complex case.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/net/bnx2x/Makefile | 4 ++++
drivers/net/bnx2x/elink.c | 8 ++++----
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bnx2x/Makefile b/drivers/net/bnx2x/Makefile
index 6f1f385..c2ddd8d 100644
--- a/drivers/net/bnx2x/Makefile
+++ b/drivers/net/bnx2x/Makefile
@@ -14,6 +14,10 @@ EXPORT_MAP := rte_pmd_bnx2x_version.map
LIBABIVER := 1
+ifeq ($(CONFIG_RTE_TOOLCHAIN_ICC),y)
+CFLAGS += -wd188 #188: enumerated type mixed with another type
+endif
+
#
# all source are stored in SRCS-y
#
diff --git a/drivers/net/bnx2x/elink.c b/drivers/net/bnx2x/elink.c
index b9149b8..149cc97 100644
--- a/drivers/net/bnx2x/elink.c
+++ b/drivers/net/bnx2x/elink.c
@@ -5029,7 +5029,7 @@ static elink_status_t elink_direct_parallel_detect_used(struct elink_phy *phy,
if (status2_1000x & MDIO_SERDES_DIGITAL_A_1000X_STATUS2_AN_DISABLED) {
PMD_DRV_LOG(DEBUG, "1G parallel detect link on port %d",
params->port);
- return 1;
+ return ELINK_STATUS_ERROR;
}
CL22_RD_OVER_CL45(sc, phy,
@@ -5039,7 +5039,7 @@ static elink_status_t elink_direct_parallel_detect_used(struct elink_phy *phy,
if (pd_10g & MDIO_10G_PARALLEL_DETECT_PAR_DET_10G_STATUS_PD_LINK) {
PMD_DRV_LOG(DEBUG, "10G parallel detect link on port %d",
params->port);
- return 1;
+ return ELINK_STATUS_ERROR;
}
return ELINK_STATUS_OK;
}
@@ -6735,7 +6735,7 @@ static elink_status_t elink_8073_is_snr_needed(struct bnx2x_softc *sc,
if (val != 0x102)
return ELINK_STATUS_OK;
- return 1;
+ return ELINK_STATUS_ERROR;
}
static elink_status_t elink_8073_xaui_wa(struct bnx2x_softc *sc,
@@ -7557,7 +7557,7 @@ static elink_status_t elink_read_sfp_module_eeprom(struct elink_phy *phy,
uint16_t byte_cnt,
uint8_t * o_buf)
{
- elink_status_t rc = 0;
+ elink_status_t rc = ELINK_STATUS_OK;
uint8_t xfer_size;
uint8_t *user_data = o_buf;
read_sfp_module_eeprom_func_p read_func;
--
2.5.5
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] bnx2x: fix icc compilation error
2016-06-27 16:02 ` [dpdk-dev] [PATCH v2] bnx2x: fix icc " Ferruh Yigit
@ 2016-06-27 23:21 ` Rasesh Mody
2016-06-29 9:53 ` Bruce Richardson
0 siblings, 1 reply; 14+ messages in thread
From: Rasesh Mody @ 2016-06-27 23:21 UTC (permalink / raw)
To: Ferruh Yigit, dev; +Cc: Harish Patil, Sony Chacko
> From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
> Sent: Monday, June 27, 2016 9:03 AM
>
> Fix icc warning:
> error #188: enumerated type mixed with another type
>
> Fixed the code for simple cases caused the warning.
> Still need to disable compiler warning because of more complex case.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Rasesh Mody <rasesh.mody@qlogic.com>
Thanks Ferruh!
^ permalink raw reply [flat|nested] 14+ messages in thread
* Re: [dpdk-dev] [PATCH v2] bnx2x: fix icc compilation error
2016-06-27 23:21 ` Rasesh Mody
@ 2016-06-29 9:53 ` Bruce Richardson
0 siblings, 0 replies; 14+ messages in thread
From: Bruce Richardson @ 2016-06-29 9:53 UTC (permalink / raw)
To: Rasesh Mody; +Cc: Ferruh Yigit, dev, Harish Patil, Sony Chacko
On Mon, Jun 27, 2016 at 11:21:45PM +0000, Rasesh Mody wrote:
> > From: Ferruh Yigit [mailto:ferruh.yigit@intel.com]
> > Sent: Monday, June 27, 2016 9:03 AM
> >
> > Fix icc warning:
> > error #188: enumerated type mixed with another type
> >
> > Fixed the code for simple cases caused the warning.
> > Still need to disable compiler warning because of more complex case.
> >
> > Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>
> Acked-by: Rasesh Mody <rasesh.mody@qlogic.com>
>
> Thanks Ferruh!
Applied to dpdk-next-net/rel_16_07
/Bruce
^ permalink raw reply [flat|nested] 14+ messages in thread