Fix DPDK patch files so git am works smoothly
Change-Id: Ic2a6e6f1ceea81f2e34f3db370682569327b44ad Signed-off-by: Todd Foggoa <tfoggoa@cisco.com>
This commit is contained in:
34
dpdk/README
Normal file
34
dpdk/README
Normal file
@ -0,0 +1,34 @@
|
||||
|
||||
Changes needed to DPDK are stored here as git patch files. Maintaining these
|
||||
files using “git format-patch” and “git am” will make it simpler to manage
|
||||
these changes. Patches made to DPDK should only be temporary until they are
|
||||
accepted upstream and made available in the next DPDK release.
|
||||
|
||||
The following is the method used to generate these patches:
|
||||
|
||||
1. Git clone the DPDK to a new directory:
|
||||
# git clone http://dpdk.org/git/dpdk dpdk
|
||||
|
||||
2. Create a branch based on the DPDK release you wish to patch.
|
||||
Note, “git tag” will show you all the release tags. The following example is
|
||||
for DPDK release tag “v2.2.0” and will create a branch named “two_dot_two”.
|
||||
# cd dpdk
|
||||
# git checkout -b two_dot_two v2.2.0
|
||||
|
||||
3. Apply all the existing VPP DPDK patches to this new branch.
|
||||
# git am <VPP directory>/dpdk/dpdk-2.2.0_patches/*
|
||||
|
||||
4. Make your changes and commit your change to your DPDK repository.
|
||||
# <edit files>
|
||||
# git commit -s
|
||||
|
||||
5. Create the patch files with format-patch. This creates all the patch files
|
||||
for your branch (two_dot_two), with your latest commits as the last ones.
|
||||
# git format-patch master..two_dot_two
|
||||
|
||||
6. Copy, add and commit the new patches into the VPP patches directory.
|
||||
# cp <new patch files> <VPP directory>/dpdk/dpdk-2.2.0_patches
|
||||
# cd <VPP directory>
|
||||
# git add dpdk/dpdk-2.2.0_patches/<new patch files>
|
||||
# git commit -s
|
||||
|
@ -1,4 +1,4 @@
|
||||
From 9a2515d7157271bac2bd5cd49758dbf3eb2b43b6 Mon Sep 17 00:00:00 2001
|
||||
From 666ceb1d0c11e2ca69baacc272b7d5690d3f11a3 Mon Sep 17 00:00:00 2001
|
||||
From: Bud Grise <griseb@cisco.com>
|
||||
Date: Mon, 1 Feb 2016 14:28:01 -0500
|
||||
Subject: [PATCH 8/8] Add missing init of packet_type field.
|
||||
@ -34,10 +34,10 @@ index d8fb252..8796c8a 100644
|
||||
/* Only valid if PKT_RX_VLAN_PKT set in pkt_flags */
|
||||
rxm->vlan_tci = rte_le_to_cpu_16(rxd.special);
|
||||
diff --git a/drivers/net/virtio/virtio_rxtx.c b/drivers/net/virtio/virtio_rxtx.c
|
||||
index e4bf9b7..e605c85 100644
|
||||
index 2512bce..a74c816 100644
|
||||
--- a/drivers/net/virtio/virtio_rxtx.c
|
||||
+++ b/drivers/net/virtio/virtio_rxtx.c
|
||||
@@ -605,6 +605,7 @@ virtio_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
|
||||
@@ -619,6 +619,7 @@ virtio_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
|
||||
rxm->pkt_len = (uint32_t)(len[i] - hdr_size);
|
||||
rxm->data_len = (uint16_t)(len[i] - hdr_size);
|
||||
rxm->ol_flags = 0;
|
||||
@ -45,7 +45,7 @@ index e4bf9b7..e605c85 100644
|
||||
|
||||
if (hw->vlan_strip)
|
||||
rte_vlan_strip(rxm);
|
||||
@@ -726,6 +727,7 @@ virtio_recv_mergeable_pkts(void *rx_queue,
|
||||
@@ -739,6 +740,7 @@ virtio_recv_mergeable_pkts(void *rx_queue,
|
||||
rxm->pkt_len = (uint32_t)(len[0] - hdr_size);
|
||||
rxm->data_len = (uint16_t)(len[0] - hdr_size);
|
||||
rxm->ol_flags = 0;
|
||||
@ -66,5 +66,5 @@ index 4de5d89..c76b230 100644
|
||||
vmxnet3_rx_offload(rcd, rxm);
|
||||
|
||||
--
|
||||
2.2.1
|
||||
1.9.1
|
||||
|
||||
|
@ -1,9 +1,8 @@
|
||||
commit 947d860c821f4248dcf2fc01e98671524973eeea
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Fri Mar 4 13:09:00 2016 -0800
|
||||
From 057358356e7d05f07ab2df37c12b1cce37a3cca9 Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Fri, 4 Mar 2016 13:09:00 -0800
|
||||
Subject: [PATCH 11/22] enic: improve Rx performance
|
||||
|
||||
enic: improve Rx performance
|
||||
|
||||
This is a wholesale replacement of the Enic PMD receive path in order
|
||||
to improve performance and code clarity. The changes are:
|
||||
- Simplify and reduce code path length of receive function.
|
||||
@ -13,8 +12,19 @@ Date: Fri Mar 4 13:09:00 2016 -0800
|
||||
- Remove the unneeded container structure around the RQ mbuf ring
|
||||
- Prefetch next Mbuf and descriptors while processing the current one
|
||||
- Use a lookup table for converting CQ flags to mbuf flags.
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/Makefile | 1 +
|
||||
drivers/net/enic/base/vnic_rq.c | 99 ++---------
|
||||
drivers/net/enic/base/vnic_rq.h | 147 +---------------
|
||||
drivers/net/enic/enic.h | 16 +-
|
||||
drivers/net/enic/enic_ethdev.c | 27 ++-
|
||||
drivers/net/enic/enic_main.c | 321 ++++++++++------------------------
|
||||
drivers/net/enic/enic_res.h | 16 +-
|
||||
drivers/net/enic/enic_rx.c | 370 ++++++++++++++++++++++++++++++++++++++++
|
||||
8 files changed, 511 insertions(+), 486 deletions(-)
|
||||
create mode 100644 drivers/net/enic/enic_rx.c
|
||||
|
||||
diff --git a/drivers/net/enic/Makefile b/drivers/net/enic/Makefile
|
||||
index f0ee093..f316274 100644
|
||||
@ -1334,3 +1344,6 @@ index 0000000..945a60f
|
||||
+
|
||||
+ return nb_rx;
|
||||
+}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,17 +1,19 @@
|
||||
commit aba31298526865f5db99eaa54b63eb39dc95b74f
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Tue Mar 8 10:49:07 2016 -0800
|
||||
From a31a1dbdf5e1ff46d04f50fea02e83453b84652c Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Tue, 8 Mar 2016 10:49:07 -0800
|
||||
Subject: [PATCH 12/22] enic: fix last packet not being sent
|
||||
|
||||
enic: fix last packet not being sent
|
||||
|
||||
The last packet of the tx burst function array was not being
|
||||
emitted until the subsequent call. The nic descriptor index
|
||||
was being set to the current tx descriptor instead of one past
|
||||
the descriptor as required by the nic.
|
||||
|
||||
|
||||
Fixes: d739ba4c6abf ("enic: improve Tx packet rate")
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/base/enic_vnic_wq.h | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/base/enic_vnic_wq.h b/drivers/net/enic/base/enic_vnic_wq.h
|
||||
index e3ea574..b019109 100644
|
||||
@ -32,3 +34,6 @@ index e3ea574..b019109 100644
|
||||
}
|
||||
|
||||
#endif /* _ENIC_VNIC_WQ_H_ */
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,15 +1,17 @@
|
||||
commit bba57df3861c644e98c5e8f79e62f6ca5074cb40
|
||||
Author: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Thu Mar 17 15:48:13 2016 -0700
|
||||
From a1ed99bc24f88f061d75eed0db84dc6355855dd2 Mon Sep 17 00:00:00 2001
|
||||
From: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Thu, 17 Mar 2016 15:48:13 -0700
|
||||
Subject: [PATCH 13/22] enic: add missing newline to print statements
|
||||
|
||||
enic: add missing newline to print statements
|
||||
|
||||
Add the missing '\n' character to the end of a few print statements.
|
||||
|
||||
|
||||
Fixes: fefed3d1e62c ("enic: new driver")
|
||||
|
||||
|
||||
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
||||
Acked-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_main.c | 6 +++---
|
||||
1 file changed, 3 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
|
||||
index 9fff020..e30672c 100644
|
||||
@ -40,3 +42,6 @@ index 9fff020..e30672c 100644
|
||||
__func__, name);
|
||||
return NULL;
|
||||
}
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
From f582f39372766a24d9bdbdc3a2a3334de88a70f1 Mon Sep 17 00:00:00 2001
|
||||
From fef2b892245d5a2f3c68d2e03a6c5f2a40205cf7 Mon Sep 17 00:00:00 2001
|
||||
From: Steve Shin <jonshin@cisco.com>
|
||||
Date: Wed, 23 Mar 2016 09:54:54 -0700
|
||||
Subject: [PATCH] vmxnet3: support jumbo frames
|
||||
Subject: [PATCH 14/22] vmxnet3: support jumbo frames
|
||||
|
||||
---
|
||||
drivers/net/vmxnet3/vmxnet3_ethdev.c | 3 +-
|
||||
@ -44,7 +44,7 @@ index 612487e..b1582f8 100644
|
||||
bool stopped;
|
||||
uint16_t queue_id; /**< Device RX queue index. */
|
||||
diff --git a/drivers/net/vmxnet3/vmxnet3_rxtx.c b/drivers/net/vmxnet3/vmxnet3_rxtx.c
|
||||
index 4de5d89..9f68ec6 100644
|
||||
index c76b230..59b6db8 100644
|
||||
--- a/drivers/net/vmxnet3/vmxnet3_rxtx.c
|
||||
+++ b/drivers/net/vmxnet3/vmxnet3_rxtx.c
|
||||
@@ -547,7 +547,6 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
|
||||
@ -106,9 +106,9 @@ index 4de5d89..9f68ec6 100644
|
||||
rxq->stats.drop_total++;
|
||||
rxq->stats.drop_err++;
|
||||
|
||||
@@ -641,9 +619,49 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
|
||||
rxm->ol_flags = 0;
|
||||
@@ -642,9 +620,49 @@ vmxnet3_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
|
||||
rxm->vlan_tci = 0;
|
||||
rxm->packet_type = RTE_PTYPE_UNKNOWN;
|
||||
|
||||
- vmxnet3_rx_offload(rcd, rxm);
|
||||
+ /*
|
||||
@ -158,7 +158,7 @@ index 4de5d89..9f68ec6 100644
|
||||
rcd_done:
|
||||
rxq->cmd_ring[ring_idx].next2comp = idx;
|
||||
VMXNET3_INC_RING_IDX_ONLY(rxq->cmd_ring[ring_idx].next2comp, rxq->cmd_ring[ring_idx].size);
|
||||
@@ -944,6 +962,7 @@ vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev)
|
||||
@@ -945,6 +963,7 @@ vmxnet3_dev_rxtx_init(struct rte_eth_dev *dev)
|
||||
}
|
||||
}
|
||||
rxq->stopped = FALSE;
|
||||
|
@ -1,19 +1,21 @@
|
||||
commit ddf2da3ecec97a316838f40fe13e217afafc6252
|
||||
Author: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Thu Mar 17 15:49:58 2016 -0700
|
||||
From 7a7fa2891df4ec4af0c34f3bbd203e1376e83951 Mon Sep 17 00:00:00 2001
|
||||
From: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Thu, 17 Mar 2016 15:49:58 -0700
|
||||
Subject: [PATCH 15/22] enic: fix crash when allocating too many queues
|
||||
|
||||
enic: fix crash when allocating too many queues
|
||||
|
||||
Add checks to make sure we don't try to allocate more tx or rx queues
|
||||
than we support.
|
||||
|
||||
|
||||
Fixes: fefed3d1e62c ("enic: new driver")
|
||||
|
||||
|
||||
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
||||
Reviewed-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_ethdev.c | 14 ++++++++++++++
|
||||
1 file changed, 14 insertions(+)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
|
||||
index bab0f7d..4969476 100644
|
||||
index 6f2ada5..6c3c734 100644
|
||||
--- a/drivers/net/enic/enic_ethdev.c
|
||||
+++ b/drivers/net/enic/enic_ethdev.c
|
||||
@@ -174,6 +174,13 @@ static int enicpmd_dev_tx_queue_setup(struct rte_eth_dev *eth_dev,
|
||||
@ -44,3 +46,6 @@ index bab0f7d..4969476 100644
|
||||
eth_dev->data->rx_queues[queue_idx] = (void *)&enic->rq[queue_idx];
|
||||
|
||||
ret = enic_alloc_rq(enic, queue_idx, socket_id, mp, nb_desc);
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,15 +1,17 @@
|
||||
commit 3253bbc79c8a1eddf791d9ec11bcea4a004d258e
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Thu Mar 17 15:57:05 2016 -0700
|
||||
From 3ffb9431d6ba34dbcffab5cff4c060d5dca167e1 Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Thu, 17 Mar 2016 15:57:05 -0700
|
||||
Subject: [PATCH 16/22] enic: fix mbuf flags on Rx
|
||||
|
||||
enic: fix mbuf flags on Rx
|
||||
|
||||
In the receive path, the function to set mbuf ol_flags used the
|
||||
mbuf packet_type before it was set.
|
||||
|
||||
|
||||
Fixes: 947d860c821f ("enic: improve Rx performance")
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_rx.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_rx.c b/drivers/net/enic/enic_rx.c
|
||||
index 945a60f..59ebaa4 100644
|
||||
@ -36,3 +38,6 @@ index 945a60f..59ebaa4 100644
|
||||
|
||||
/* prefetch mbuf data for caller */
|
||||
rte_packet_prefetch(RTE_PTR_ADD(rxmb->buf_addr,
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,24 +1,26 @@
|
||||
commit 5776c30293bbbdb3e332c868fbccf99b2026fba0
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Thu Mar 17 15:57:06 2016 -0700
|
||||
From 678e5952cf49bb66c2d697581a70dc8c7d703e8f Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Thu, 17 Mar 2016 15:57:06 -0700
|
||||
Subject: [PATCH 17/22] enic: fix error packets handling
|
||||
|
||||
enic: fix error packets handling
|
||||
|
||||
If the packet_error bit in the completion descriptor is set, the
|
||||
remainder of the descriptor and data are invalid. PKT_RX_MAC_ERR
|
||||
was set in the mbuf->ol_flags if packet_error was set and used
|
||||
later to indicate an error packet. But since PKT_RX_MAC_ERR is
|
||||
defined as 0, mbuf flags and packet types and length were being
|
||||
misinterpreted.
|
||||
|
||||
|
||||
Make the function enic_cq_rx_to_pkt_err_flags() return true for error
|
||||
packets and use the return value instead of mbuf->ol_flags to indicate
|
||||
error packets. Also remove warning for error packets and rely on
|
||||
rx_error stats.
|
||||
|
||||
|
||||
Fixes: 947d860c821f ("enic: improve Rx performance")
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_rx.c | 43 ++++++++++++++++++-------------------------
|
||||
1 file changed, 18 insertions(+), 25 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_rx.c b/drivers/net/enic/enic_rx.c
|
||||
index 59ebaa4..817a891 100644
|
||||
@ -110,3 +112,6 @@ index 59ebaa4..817a891 100644
|
||||
|
||||
/* prefetch mbuf data for caller */
|
||||
rte_packet_prefetch(RTE_PTR_ADD(rxmb->buf_addr,
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,12 +1,14 @@
|
||||
commit 50765c820e98a4434efbc0a58df4b9d78afb7a5f
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Thu Mar 17 15:57:07 2016 -0700
|
||||
From 2fa6a45ff9f9fb3108b09403e32393416bd0a732 Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Thu, 17 Mar 2016 15:57:07 -0700
|
||||
Subject: [PATCH 18/22] enic: remove packet error conditional
|
||||
|
||||
enic: remove packet error conditional
|
||||
|
||||
small cleanup to remove conditional.
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_rx.c | 10 +++-------
|
||||
1 file changed, 3 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_rx.c b/drivers/net/enic/enic_rx.c
|
||||
index 817a891..232987a 100644
|
||||
@ -51,3 +53,6 @@ index 817a891..232987a 100644
|
||||
|
||||
/* prefetch mbuf data for caller */
|
||||
rte_packet_prefetch(RTE_PTR_ADD(rxmb->buf_addr,
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,19 +1,22 @@
|
||||
commit 57524648749fb7dc1daf3af3213dab472ee432de
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Fri Mar 18 11:27:07 2016 -0700
|
||||
From 8ad252ab40b8f95db8413220146d54bf8a7d7be8 Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Fri, 18 Mar 2016 11:27:07 -0700
|
||||
Subject: [PATCH 19/22] enic: update maintainers
|
||||
|
||||
enic: update maintainers
|
||||
|
||||
Change maintainers for ENIC PMD and fix pointer to enic
|
||||
documentation in MAINTAINERS.
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
MAINTAINERS | 3 ++-
|
||||
doc/guides/nics/enic.rst | 2 +-
|
||||
2 files changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/MAINTAINERS b/MAINTAINERS
|
||||
index 6ed54dd..e848ffa 100644
|
||||
index b90aeea..f5b8bb4 100644
|
||||
--- a/MAINTAINERS
|
||||
+++ b/MAINTAINERS
|
||||
@@ -276,8 +276,9 @@ F: doc/guides/nics/cxgbe.rst
|
||||
@@ -264,8 +264,9 @@ F: doc/guides/nics/cxgbe.rst
|
||||
|
||||
Cisco enic
|
||||
M: John Daley <johndale@cisco.com>
|
||||
@ -34,3 +37,6 @@ index 2a228fd..e67c3db 100644
|
||||
- John Daley <johndale@cisco.com>
|
||||
-- Sujith Sankar <ssujith@cisco.com>
|
||||
+- Nelson Escobar <neescoba@cisco.com>
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,20 +1,22 @@
|
||||
commit 65ca78fdf9a684743bfca278cf1fcfea4603931d
|
||||
Author: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Fri Mar 18 11:33:34 2016 -0700
|
||||
From ce6badc60736f5e78a295f30fe84c3e40ad0c330 Mon Sep 17 00:00:00 2001
|
||||
From: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Fri, 18 Mar 2016 11:33:34 -0700
|
||||
Subject: [PATCH 20/22] enic: fix Rx descriptor limit
|
||||
|
||||
enic: fix Rx descriptor limit
|
||||
|
||||
On initialization, the rq descriptor count was set to the limit
|
||||
of the vic. When the requested number of rx descriptors was
|
||||
less than this count, enic_alloc_rq() was incorrectly setting
|
||||
the count to the lower value. This results in later calls to
|
||||
enic_alloc_rq() incorrectly using the lower value as the adapter
|
||||
limit.
|
||||
|
||||
|
||||
Fixes: fefed3d1e62c ("enic: new driver")
|
||||
|
||||
|
||||
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
||||
Reviewed-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_main.c | 14 ++++++--------
|
||||
1 file changed, 6 insertions(+), 8 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_main.c b/drivers/net/enic/enic_main.c
|
||||
index e30672c..2f79cf0 100644
|
||||
@ -59,3 +61,6 @@ index e30672c..2f79cf0 100644
|
||||
RTE_CACHE_LINE_SIZE, rq->socket_id);
|
||||
|
||||
if (rq->mbuf_ring != NULL)
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
@ -1,26 +1,30 @@
|
||||
commit 67c4432ec364ce21f5059ba0696a9d0f3393356c
|
||||
Author: John Daley <johndale@cisco.com>
|
||||
Date: Thu Mar 24 14:00:39 2016 -0700
|
||||
From e89ea2a038987102d9eb0a7ea217d7a301b484cb Mon Sep 17 00:00:00 2001
|
||||
From: John Daley <johndale@cisco.com>
|
||||
Date: Thu, 24 Mar 2016 14:00:39 -0700
|
||||
Subject: [PATCH 21/22] enic: fix TX hang when number of packets > queue
|
||||
size
|
||||
|
||||
enic: fix TX hang when number of packets > queue size
|
||||
|
||||
If the nb_pkts parameter to rte_eth_tx_burst() was greater than
|
||||
the TX descriptor count, a completion was not being requested
|
||||
from the NIC, so descriptors would not be released back to the
|
||||
host causing a lock-up.
|
||||
|
||||
|
||||
Introduce a limit of how many TX descriptors can be used in a single
|
||||
call to the enic PMD burst TX function before requesting a completion.
|
||||
|
||||
|
||||
Fixes: d739ba4c6abf ("enic: improve Tx packet rate")
|
||||
|
||||
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/enic/enic_ethdev.c | 20 ++++++++++++++++----
|
||||
drivers/net/enic/enic_res.h | 1 +
|
||||
2 files changed, 17 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
|
||||
index 4969476..6bea940 100644
|
||||
index 6c3c734..61bb83c 100644
|
||||
--- a/drivers/net/enic/enic_ethdev.c
|
||||
+++ b/drivers/net/enic/enic_ethdev.c
|
||||
@@ -523,7 +523,7 @@ static void enicpmd_remove_mac_addr(struct rte_eth_dev *eth_dev, __rte_unused ui
|
||||
@@ -510,7 +510,7 @@ static void enicpmd_remove_mac_addr(struct rte_eth_dev *eth_dev, __rte_unused ui
|
||||
static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
uint16_t nb_pkts)
|
||||
{
|
||||
@ -29,7 +33,7 @@ index 4969476..6bea940 100644
|
||||
unsigned int frags;
|
||||
unsigned int pkt_len;
|
||||
unsigned int seg_len;
|
||||
@@ -535,6 +535,7 @@ static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
@@ -522,6 +522,7 @@ static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
unsigned short vlan_id;
|
||||
unsigned short ol_flags;
|
||||
uint8_t last_seg, eop;
|
||||
@ -37,7 +41,7 @@ index 4969476..6bea940 100644
|
||||
|
||||
for (index = 0; index < nb_pkts; index++) {
|
||||
tx_pkt = *tx_pkts++;
|
||||
@@ -550,6 +551,7 @@ static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
@@ -537,6 +538,7 @@ static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
return index;
|
||||
}
|
||||
}
|
||||
@ -45,7 +49,7 @@ index 4969476..6bea940 100644
|
||||
pkt_len = tx_pkt->pkt_len;
|
||||
vlan_id = tx_pkt->vlan_tci;
|
||||
ol_flags = tx_pkt->ol_flags;
|
||||
@@ -559,9 +561,19 @@ static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
@@ -546,9 +548,19 @@ static uint16_t enicpmd_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts,
|
||||
next_tx_pkt = tx_pkt->next;
|
||||
seg_len = tx_pkt->data_len;
|
||||
inc_len += seg_len;
|
||||
@ -80,3 +84,6 @@ index 33f2e84..00fa71d 100644
|
||||
|
||||
#define ENIC_SETTING(enic, f) ((enic->config.flags & VENETF_##f) ? 1 : 0)
|
||||
|
||||
--
|
||||
1.9.1
|
||||
|
@ -1,25 +1,27 @@
|
||||
commit 65bcf215aae2e0b9935557e237af054ad0860bad
|
||||
Author: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Tue Mar 22 13:42:08 2016 -0700
|
||||
From a2f08a919c72af29c56b937e6c92eb104037fed5 Mon Sep 17 00:00:00 2001
|
||||
From: Nelson Escobar <neescoba@cisco.com>
|
||||
Date: Tue, 22 Mar 2016 13:42:08 -0700
|
||||
Subject: [PATCH 22/22] bonding: fix bond link detect in non-interrupt mode
|
||||
|
||||
bonding: fix bond link detect in non-interrupt mode
|
||||
|
||||
Stopping then re-starting a bond interface containing slaves that
|
||||
used polling for link detection caused the bond to think all slave
|
||||
links were down and inactive.
|
||||
|
||||
|
||||
Move the start of the polling for link from slave_add() to
|
||||
bond_ethdev_start() and in bond_ethdev_stop() make sure we clear
|
||||
the last_link_status of the slaves.
|
||||
|
||||
|
||||
Signed-off-by: Nelson Escobar <neescoba@cisco.com>
|
||||
Signed-off-by: John Daley <johndale@cisco.com>
|
||||
---
|
||||
drivers/net/bonding/rte_eth_bond_pmd.c | 27 +++++++++++++++++----------
|
||||
1 file changed, 17 insertions(+), 10 deletions(-)
|
||||
|
||||
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
|
||||
index fb26d35..f0960c6 100644
|
||||
index b1373c6..d32c6f5 100644
|
||||
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
|
||||
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
|
||||
@@ -1454,18 +1454,11 @@ slave_add(struct bond_dev_private *internals,
|
||||
@@ -1447,18 +1447,11 @@ slave_add(struct bond_dev_private *internals,
|
||||
slave_details->port_id = slave_eth_dev->data->port_id;
|
||||
slave_details->last_link_status = 0;
|
||||
|
||||
@ -41,7 +43,7 @@ index fb26d35..f0960c6 100644
|
||||
}
|
||||
|
||||
slave_details->link_status_wait_to_complete = 0;
|
||||
@@ -1550,6 +1543,18 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
|
||||
@@ -1543,6 +1536,18 @@ bond_ethdev_start(struct rte_eth_dev *eth_dev)
|
||||
eth_dev->data->port_id, internals->slaves[i].port_id);
|
||||
return -1;
|
||||
}
|
||||
@ -60,7 +62,7 @@ index fb26d35..f0960c6 100644
|
||||
}
|
||||
|
||||
if (internals->user_defined_primary_port)
|
||||
@@ -1622,6 +1627,8 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
|
||||
@@ -1615,6 +1620,8 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
|
||||
|
||||
internals->active_slave_count = 0;
|
||||
internals->link_status_polling_enabled = 0;
|
||||
@ -69,3 +71,6 @@ index fb26d35..f0960c6 100644
|
||||
|
||||
eth_dev->data->dev_link.link_status = 0;
|
||||
eth_dev->data->dev_started = 0;
|
||||
--
|
||||
1.9.1
|
||||
|
||||
|
Reference in New Issue
Block a user