Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/4551d9c814af6efde293ec280a5ffdbd8442be7d Thanks. Kevin Traynor --- From 4551d9c814af6efde293ec280a5ffdbd8442be7d Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko <arybchenko@solarflare.com> Date: Tue, 23 Jul 2019 13:11:21 +0100 Subject: [PATCH] ethdev: avoid getting uninitialized info for bad port [ upstream commit b6719879855da581c4b6dc29680b54c10e109439 ] rte_eth_dev_info_get() returns void and caller does know if the function does its job or not. Changing of the return value to int would be API/ABI breakage which requires deprecation process and cannot be backported to stable branches. For now, make sure that device info is initialized even in the case of invalid port ID. Fixes: a30268e9a2d0 ("ethdev: reset whole dev info structure before filling") Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> Acked-by: Thomas Monjalon <thomas@monjalon.net> --- lib/librte_ethdev/rte_ethdev.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/librte_ethdev/rte_ethdev.c b/lib/librte_ethdev/rte_ethdev.c index 191658da1..3c75d3c78 100644 --- a/lib/librte_ethdev/rte_ethdev.c +++ b/lib/librte_ethdev/rte_ethdev.c @@ -2518,8 +2518,13 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info) }; - RTE_ETH_VALID_PORTID_OR_RET(port_id); - dev = &rte_eth_devices[port_id]; - + /* + * Init dev_info before port_id check since caller does not have + * return status and does not know if get is successful or not. + */ memset(dev_info, 0, sizeof(struct rte_eth_dev_info)); + + RTE_ETH_VALID_PORTID_OR_RET(port_id); + dev = &rte_eth_devices[port_id]; + dev_info->rx_desc_lim = lim; dev_info->tx_desc_lim = lim; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.609775697 +0100 +++ 0001-ethdev-avoid-getting-uninitialized-info-for-bad-port.patch 2019-09-05 10:36:47.436702294 +0100 @@ -1 +1 @@ -From b6719879855da581c4b6dc29680b54c10e109439 Mon Sep 17 00:00:00 2001 +From 4551d9c814af6efde293ec280a5ffdbd8442be7d Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit b6719879855da581c4b6dc29680b54c10e109439 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index 64191737c..17d183e1f 100644 +index 191658da1..3c75d3c78 100644 @@ -25 +26 @@ -@@ -2553,8 +2553,13 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info) +@@ -2518,8 +2518,13 @@ rte_eth_dev_info_get(uint16_t port_id, struct rte_eth_dev_info *dev_info)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/f61b77c388c4f0cdbc7447b6260278344f61a39c Thanks. Kevin Traynor --- From f61b77c388c4f0cdbc7447b6260278344f61a39c Mon Sep 17 00:00:00 2001 From: Anatoly Burakov <anatoly.burakov@intel.com> Date: Tue, 23 Jul 2019 11:01:20 +0100 Subject: [PATCH] vfio: use contiguous mapping for IOVA as VA mode [ upstream commit 78a6d7ed19353310fc83e75742e9e73ae17c1719 ] When using IOVA as VA mode, there is no need to map segments page by page. This normally isn't a problem, but it becomes one when attempting to use DPDK in no-huge mode, where VFIO subsystem simply runs out of space to store mappings. Fix this for x86 by triggering different callbacks based on whether IOVA as VA mode is enabled. Fixes: 73a639085938 ("vfio: allow to map other memory regions") Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Tested-by: Andrius Sirvys <andrius.sirvys@intel.com> --- lib/librte_eal/linuxapp/eal/eal_vfio.c | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c index 28b4ea66f..830b320d7 100644 --- a/lib/librte_eal/linuxapp/eal/eal_vfio.c +++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c @@ -1233,4 +1233,17 @@ rte_vfio_get_group_num(const char *sysfs_base, } +static int +type1_map_contig(const struct rte_memseg_list *msl, const struct rte_memseg *ms, + size_t len, void *arg) +{ + int *vfio_container_fd = arg; + + if (msl->external) + return 0; + + return vfio_type1_dma_mem_map(*vfio_container_fd, ms->addr_64, ms->iova, + len, 1); +} + static int type1_map(const struct rte_memseg_list *msl, const struct rte_memseg *ms, @@ -1290,4 +1303,11 @@ static int vfio_type1_dma_map(int vfio_container_fd) { + if (rte_eal_iova_mode() == RTE_IOVA_VA) { + /* with IOVA as VA mode, we can get away with mapping contiguous + * chunks rather than going page-by-page. + */ + return rte_memseg_contig_walk(type1_map_contig, + &vfio_container_fd); + } return rte_memseg_walk(type1_map, &vfio_container_fd); } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.663097948 +0100 +++ 0002-vfio-use-contiguous-mapping-for-IOVA-as-VA-mode.patch 2019-09-05 10:36:47.438702246 +0100 @@ -1 +1 @@ -From 78a6d7ed19353310fc83e75742e9e73ae17c1719 Mon Sep 17 00:00:00 2001 +From f61b77c388c4f0cdbc7447b6260278344f61a39c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 78a6d7ed19353310fc83e75742e9e73ae17c1719 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ - lib/librte_eal/linux/eal/eal_vfio.c | 20 ++++++++++++++++++++ + lib/librte_eal/linuxapp/eal/eal_vfio.c | 20 ++++++++++++++++++++ @@ -23,5 +24,5 @@ -diff --git a/lib/librte_eal/linux/eal/eal_vfio.c b/lib/librte_eal/linux/eal/eal_vfio.c -index ed04231b1..501c74f23 100644 ---- a/lib/librte_eal/linux/eal/eal_vfio.c -+++ b/lib/librte_eal/linux/eal/eal_vfio.c -@@ -1232,4 +1232,17 @@ rte_vfio_get_group_num(const char *sysfs_base, +diff --git a/lib/librte_eal/linuxapp/eal/eal_vfio.c b/lib/librte_eal/linuxapp/eal/eal_vfio.c +index 28b4ea66f..830b320d7 100644 +--- a/lib/librte_eal/linuxapp/eal/eal_vfio.c ++++ b/lib/librte_eal/linuxapp/eal/eal_vfio.c +@@ -1233,4 +1233,17 @@ rte_vfio_get_group_num(const char *sysfs_base, @@ -45 +46 @@ -@@ -1301,4 +1314,11 @@ static int +@@ -1290,4 +1303,11 @@ static int
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/7dedc1b9ed87e912f66b1cbba3c3108bfa489342 Thanks. Kevin Traynor --- From 7dedc1b9ed87e912f66b1cbba3c3108bfa489342 Mon Sep 17 00:00:00 2001 From: Adam Dybkowski <adamx.dybkowski@intel.com> Date: Wed, 24 Jul 2019 10:42:46 +0200 Subject: [PATCH] compress/zlib: fix error handling [ upstream commit ff53baa9cc676249d1c5c514755d77e453a99b51 ] Add missing return after setting the error status in case of invalid flush_flag in the operation. The issue was found by the coverity scan as the fin_flush variable, not initialized in such case, was used later in the flow. Coverity issue: 340859 Fixes: c7b436ec95fd ("compress/zlib: support burst enqueue/dequeue") Signed-off-by: Adam Dybkowski <adamx.dybkowski@intel.com> --- drivers/compress/zlib/zlib_pmd.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/compress/zlib/zlib_pmd.c b/drivers/compress/zlib/zlib_pmd.c index 5a4d47d4d..19f9200c2 100644 --- a/drivers/compress/zlib/zlib_pmd.c +++ b/drivers/compress/zlib/zlib_pmd.c @@ -31,4 +31,5 @@ process_zlib_deflate(struct rte_comp_op *op, z_stream *strm) op->status = RTE_COMP_OP_STATUS_INVALID_ARGS; ZLIB_PMD_ERR("Invalid flush value\n"); + return; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.713698241 +0100 +++ 0003-compress-zlib-fix-error-handling.patch 2019-09-05 10:36:47.439702222 +0100 @@ -1 +1 @@ -From ff53baa9cc676249d1c5c514755d77e453a99b51 Mon Sep 17 00:00:00 2001 +From 7dedc1b9ed87e912f66b1cbba3c3108bfa489342 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ff53baa9cc676249d1c5c514755d77e453a99b51 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/4f1b64a2192df83b7e4b0d27688808d94b719654 Thanks. Kevin Traynor --- From 4f1b64a2192df83b7e4b0d27688808d94b719654 Mon Sep 17 00:00:00 2001 From: Ferruh Yigit <ferruh.yigit@intel.com> Date: Fri, 26 Jul 2019 14:42:23 +0100 Subject: [PATCH] cryptodev: fix typo in comment [ upstream commit c417f59a6ed3d9de4b65dee41dabb875e1495287 ] Remove extra ';' which is probably added unintentionally, reported by ./devtools/check-includes.sh script. Fixes: 26008aaed14c ("cryptodev: add asymmetric xform and op definitions") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com> --- lib/librte_cryptodev/rte_crypto_asym.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/librte_cryptodev/rte_crypto_asym.h b/lib/librte_cryptodev/rte_crypto_asym.h index b1c1a6c17..5351bb046 100644 --- a/lib/librte_cryptodev/rte_crypto_asym.h +++ b/lib/librte_cryptodev/rte_crypto_asym.h @@ -367,5 +367,5 @@ struct rte_cryptodev_asym_session; struct rte_crypto_rsa_op_param { enum rte_crypto_asym_op_type op_type; - /**< Type of RSA operation for transform */; + /**< Type of RSA operation for transform */ rte_crypto_param message; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.767688922 +0100 +++ 0004-cryptodev-fix-typo-in-comment.patch 2019-09-05 10:36:47.439702222 +0100 @@ -1 +1 @@ -From c417f59a6ed3d9de4b65dee41dabb875e1495287 Mon Sep 17 00:00:00 2001 +From 4f1b64a2192df83b7e4b0d27688808d94b719654 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit c417f59a6ed3d9de4b65dee41dabb875e1495287 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -19 +20 @@ -index 044224214..4fbef2f89 100644 +index b1c1a6c17..5351bb046 100644 @@ -22 +23 @@ -@@ -384,5 +384,5 @@ struct rte_cryptodev_asym_session; +@@ -367,5 +367,5 @@ struct rte_cryptodev_asym_session;
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/ec15fae24a8ab48f68f6cd04390fdf7dc32602a2 Thanks. Kevin Traynor --- From ec15fae24a8ab48f68f6cd04390fdf7dc32602a2 Mon Sep 17 00:00:00 2001 From: Ferruh Yigit <ferruh.yigit@intel.com> Date: Fri, 26 Jul 2019 15:10:19 +0100 Subject: [PATCH] security: remove duplicated symbols from map file [ upstream commit 08644f1ad29a76c018b45673dfab59873bfc16b6 ] Fixes: f63ffee26f9c ("security: restore experimental tag for unimplemented APIs") Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> Acked-by: Akhil Goyal <akhil.goyal@nxp.com> --- lib/librte_security/rte_security_version.map | 3 --- 1 file changed, 3 deletions(-) diff --git a/lib/librte_security/rte_security_version.map b/lib/librte_security/rte_security_version.map index 36e2ac488..53267bf3c 100644 --- a/lib/librte_security/rte_security_version.map +++ b/lib/librte_security/rte_security_version.map @@ -5,10 +5,7 @@ DPDK_18.11 { rte_security_capabilities_get; rte_security_capability_get; - rte_security_get_userdata; rte_security_session_create; rte_security_session_destroy; rte_security_session_get_size; - rte_security_session_stats_get; - rte_security_session_update; rte_security_set_pkt_metadata; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.817336490 +0100 +++ 0005-security-remove-duplicated-symbols-from-map-file.patch 2019-09-05 10:36:47.440702198 +0100 @@ -1 +1 @@ -From 08644f1ad29a76c018b45673dfab59873bfc16b6 Mon Sep 17 00:00:00 2001 +From ec15fae24a8ab48f68f6cd04390fdf7dc32602a2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 08644f1ad29a76c018b45673dfab59873bfc16b6 ] + @@ -7 +8,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/4396016a09a122d6e382e7bf052b85102c01d8e8 Thanks. Kevin Traynor --- From 4396016a09a122d6e382e7bf052b85102c01d8e8 Mon Sep 17 00:00:00 2001 From: Peng Huang <peng.huang@intel.com> Date: Mon, 22 Jul 2019 13:50:28 +0000 Subject: [PATCH] net/i40e: fix RSS hash update for X722 VF [ upstream commit ba277e3720639ed46c0b51fab600b6e35c47eb88 ] This patch fixes X722 VF problem when received packet don't have HASH value. 1) Packet classifier types update should support X722 VF, not only for X722 PF; 2) MAC type is invalid for X722 VF when set packet classifier type, so move it after MAC type is set correctly; Fixes: a286ebeb0714 ("net/i40e: add dynamic mapping of SW flow types to HW pctypes") Signed-off-by: Peng Huang <peng.huang@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> --- drivers/net/i40e/i40e_ethdev_vf.c | 2 +- drivers/net/i40e/i40e_rxtx.c | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c index de29f04cb..49bdeb329 100644 --- a/drivers/net/i40e/i40e_ethdev_vf.c +++ b/drivers/net/i40e/i40e_ethdev_vf.c @@ -1435,5 +1435,4 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) } i40e_set_default_ptype_table(eth_dev); - i40e_set_default_pctype_table(eth_dev); rte_eth_copy_pci_info(eth_dev, pci_dev); @@ -1453,4 +1452,5 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) } + i40e_set_default_pctype_table(eth_dev); rte_eal_alarm_set(I40EVF_ALARM_INTERVAL, i40evf_dev_alarm_handler, eth_dev); diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c index 679357bf8..4285f8420 100644 --- a/drivers/net/i40e/i40e_rxtx.c +++ b/drivers/net/i40e/i40e_rxtx.c @@ -3175,5 +3175,6 @@ i40e_set_default_pctype_table(struct rte_eth_dev *dev) (1ULL << I40E_FILTER_PCTYPE_L2_PAYLOAD); - if (hw->mac.type == I40E_MAC_X722) { + if (hw->mac.type == I40E_MAC_X722 || + hw->mac.type == I40E_MAC_X722_VF) { ad->pctypes_tbl[RTE_ETH_FLOW_NONFRAG_IPV4_UDP] |= (1ULL << I40E_FILTER_PCTYPE_NONF_UNICAST_IPV4_UDP); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.870015653 +0100 +++ 0006-net-i40e-fix-RSS-hash-update-for-X722-VF.patch 2019-09-05 10:36:47.446702054 +0100 @@ -1 +1 @@ -From ba277e3720639ed46c0b51fab600b6e35c47eb88 Mon Sep 17 00:00:00 2001 +From 4396016a09a122d6e382e7bf052b85102c01d8e8 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ba277e3720639ed46c0b51fab600b6e35c47eb88 ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index 5fd34f8e6..308fb9835 100644 +index de29f04cb..49bdeb329 100644 @@ -27 +28 @@ -@@ -1487,5 +1487,4 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) +@@ -1435,5 +1435,4 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) @@ -33 +34 @@ -@@ -1505,4 +1504,5 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) +@@ -1453,4 +1452,5 @@ i40evf_dev_init(struct rte_eth_dev *eth_dev) @@ -40 +41 @@ -index 34aa6c814..692c3bab4 100644 +index 679357bf8..4285f8420 100644 @@ -43 +44 @@ -@@ -3169,5 +3169,6 @@ i40e_set_default_pctype_table(struct rte_eth_dev *dev) +@@ -3175,5 +3175,6 @@ i40e_set_default_pctype_table(struct rte_eth_dev *dev)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/a2d6aaf431f822816c8c5c3e75190e508b442e33 Thanks. Kevin Traynor --- From a2d6aaf431f822816c8c5c3e75190e508b442e33 Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko <arybchenko@solarflare.com> Date: Wed, 24 Jul 2019 14:16:32 +0100 Subject: [PATCH] net/sfc: fix power of 2 round up when align has smaller type [ upstream commit 441717b92c2a22021b7a38c43788897a09f23b6d ] Substitute driver-defined P2ROUNDUP() h with EFX_P2ROUNDUP() defined in libefx. Cast value and alignment to one specified type to guarantee result correctness. Fixes: e1b944598579 ("net/sfc: build libefx") Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> --- drivers/net/sfc/base/ef10_impl.h | 9 +++++---- drivers/net/sfc/base/ef10_nvram.c | 3 ++- drivers/net/sfc/base/ef10_rx.c | 5 +++-- drivers/net/sfc/base/efx.h | 13 +++++++++---- drivers/net/sfc/base/efx_mcdi.h | 9 ++++++--- drivers/net/sfc/base/efx_tx.c | 4 ++-- drivers/net/sfc/efsys.h | 4 ---- drivers/net/sfc/sfc_ethdev.c | 2 +- 8 files changed, 28 insertions(+), 21 deletions(-) diff --git a/drivers/net/sfc/base/ef10_impl.h b/drivers/net/sfc/base/ef10_impl.h index f971063a1..6f5d0f9aa 100644 --- a/drivers/net/sfc/base/ef10_impl.h +++ b/drivers/net/sfc/base/ef10_impl.h @@ -1244,8 +1244,9 @@ efx_mcdi_set_nic_global( /* Minimum space for packet in packed stream mode */ -#define EFX_RX_PACKED_STREAM_MIN_PACKET_SPACE \ - P2ROUNDUP(EFX_RX_PACKED_STREAM_RX_PREFIX_SIZE + \ - EFX_MAC_PDU_MIN + \ - EFX_RX_PACKED_STREAM_ALIGNMENT, \ +#define EFX_RX_PACKED_STREAM_MIN_PACKET_SPACE \ + EFX_P2ROUNDUP(size_t, \ + EFX_RX_PACKED_STREAM_RX_PREFIX_SIZE + \ + EFX_MAC_PDU_MIN + \ + EFX_RX_PACKED_STREAM_ALIGNMENT, \ EFX_RX_PACKED_STREAM_ALIGNMENT) diff --git a/drivers/net/sfc/base/ef10_nvram.c b/drivers/net/sfc/base/ef10_nvram.c index 8d1b64f25..2f334fe0f 100644 --- a/drivers/net/sfc/base/ef10_nvram.c +++ b/drivers/net/sfc/base/ef10_nvram.c @@ -368,5 +368,6 @@ tlv_write( ptr[(len - 1) / sizeof (uint32_t)] = 0; memcpy(ptr, data, len); - ptr += P2ROUNDUP(len, sizeof (uint32_t)) / sizeof (*ptr); + ptr += EFX_P2ROUNDUP(uint32_t, len, + sizeof (uint32_t)) / sizeof (*ptr); } diff --git a/drivers/net/sfc/base/ef10_rx.c b/drivers/net/sfc/base/ef10_rx.c index 3c8f4f3b9..09e8bb816 100644 --- a/drivers/net/sfc/base/ef10_rx.c +++ b/drivers/net/sfc/base/ef10_rx.c @@ -931,6 +931,7 @@ ef10_rx_qps_packet_info( buf_len = EFX_QWORD_FIELD(*qwordp, ES_DZ_PS_RX_PREFIX_CAP_LEN); - buf_len = P2ROUNDUP(buf_len + EFX_RX_PACKED_STREAM_RX_PREFIX_SIZE, - EFX_RX_PACKED_STREAM_ALIGNMENT); + buf_len = EFX_P2ROUNDUP(uint16_t, + buf_len + EFX_RX_PACKED_STREAM_RX_PREFIX_SIZE, + EFX_RX_PACKED_STREAM_ALIGNMENT); *next_offsetp = current_offset + buf_len + EFX_RX_PACKED_STREAM_ALIGNMENT; diff --git a/drivers/net/sfc/base/efx.h b/drivers/net/sfc/base/efx.h index 2e847b6ce..4f25e69e1 100644 --- a/drivers/net/sfc/base/efx.h +++ b/drivers/net/sfc/base/efx.h @@ -29,4 +29,8 @@ extern "C" { #define EFX_DIV_ROUND_UP(_n, _d) (((_n) + (_d) - 1) / (_d)) +/* Round value up to the nearest power of two. */ +#define EFX_P2ROUNDUP(_type, _value, _align) \ + (-(-(_type)(_value) & -(_type)(_align))) + /* Return codes */ @@ -495,8 +499,8 @@ typedef enum efx_link_mode_e { #define EFX_MAC_PDU(_sdu) \ - P2ROUNDUP((_sdu) + EFX_MAC_PDU_ADJUSTMENT, 8) + EFX_P2ROUNDUP(size_t, (_sdu) + EFX_MAC_PDU_ADJUSTMENT, 8) /* - * Due to the P2ROUNDUP in EFX_MAC_PDU(), EFX_MAC_SDU_FROM_PDU() may give + * Due to the EFX_P2ROUNDUP in EFX_MAC_PDU(), EFX_MAC_SDU_FROM_PDU() may give * the SDU rounded up slightly. */ @@ -584,6 +588,7 @@ efx_mac_stat_name( #define EFX_MAC_STATS_MASK_BITS_PER_PAGE (8 * sizeof (uint32_t)) -#define EFX_MAC_STATS_MASK_NPAGES \ - (P2ROUNDUP(EFX_MAC_NSTATS, EFX_MAC_STATS_MASK_BITS_PER_PAGE) / \ +#define EFX_MAC_STATS_MASK_NPAGES \ + (EFX_P2ROUNDUP(uint32_t, EFX_MAC_NSTATS, \ + EFX_MAC_STATS_MASK_BITS_PER_PAGE) / \ EFX_MAC_STATS_MASK_BITS_PER_PAGE) diff --git a/drivers/net/sfc/base/efx_mcdi.h b/drivers/net/sfc/base/efx_mcdi.h index ddf91c111..a48394851 100644 --- a/drivers/net/sfc/base/efx_mcdi.h +++ b/drivers/net/sfc/base/efx_mcdi.h @@ -385,4 +385,9 @@ efx_mcdi_phy_module_get_info( (MC_CMD_PRIVILEGE_MASK_IN_GRP_ ## priv)) +#define EFX_MCDI_BUF_SIZE(_in_len, _out_len) \ + EFX_P2ROUNDUP(size_t, \ + MAX(MAX(_in_len, _out_len), (2 * sizeof (efx_dword_t))),\ + sizeof (efx_dword_t)) + /* * The buffer size must be a multiple of dword to ensure that MCDI works @@ -392,7 +397,5 @@ efx_mcdi_phy_module_get_info( */ #define EFX_MCDI_DECLARE_BUF(_name, _in_len, _out_len) \ - uint8_t _name[P2ROUNDUP(MAX(MAX(_in_len, _out_len), \ - (2 * sizeof (efx_dword_t))), \ - sizeof (efx_dword_t))] = {0} + uint8_t _name[EFX_MCDI_BUF_SIZE(_in_len, _out_len)] = {0} typedef enum efx_mcdi_feature_id_e { diff --git a/drivers/net/sfc/base/efx_tx.c b/drivers/net/sfc/base/efx_tx.c index 9fa9e2ed1..2a3f1ce12 100644 --- a/drivers/net/sfc/base/efx_tx.c +++ b/drivers/net/sfc/base/efx_tx.c @@ -769,5 +769,5 @@ siena_tx_qpost( * Here it is a stricter requirement than the maximum length. */ - EFSYS_ASSERT(P2ROUNDUP(start + 1, + EFSYS_ASSERT(EFX_P2ROUNDUP(efsys_dma_addr_t, start + 1, etp->et_enp->en_nic_cfg.enc_tx_dma_desc_boundary) >= end); @@ -1039,5 +1039,5 @@ siena_tx_qdesc_dma_create( * Here it is a stricter requirement than the maximum length. */ - EFSYS_ASSERT(P2ROUNDUP(addr + 1, + EFSYS_ASSERT(EFX_P2ROUNDUP(efsys_dma_addr_t, addr + 1, etp->et_enp->en_nic_cfg.enc_tx_dma_desc_boundary) >= addr + size); diff --git a/drivers/net/sfc/efsys.h b/drivers/net/sfc/efsys.h index f7bcc74d9..c8d652436 100644 --- a/drivers/net/sfc/efsys.h +++ b/drivers/net/sfc/efsys.h @@ -77,8 +77,4 @@ typedef bool boolean_t; #endif -#ifndef P2ROUNDUP -#define P2ROUNDUP(x, align) (-(-(x) & -(align))) -#endif - #ifndef P2ALIGN #define P2ALIGN(_x, _a) ((_x) & -(_a)) diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c index fa0dd82aa..8c7d22430 100644 --- a/drivers/net/sfc/sfc_ethdev.c +++ b/drivers/net/sfc/sfc_ethdev.c @@ -907,5 +907,5 @@ sfc_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) sfc_err(sa, "too big MTU %u (PDU size %u greater than max %u)", (unsigned int)mtu, (unsigned int)pdu, - EFX_MAC_PDU_MAX); + (unsigned int)EFX_MAC_PDU_MAX); goto fail_inval; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.927238550 +0100 +++ 0007-net-sfc-fix-power-of-2-round-up-when-align-has-small.patch 2019-09-05 10:36:47.459701743 +0100 @@ -1 +1 @@ -From 441717b92c2a22021b7a38c43788897a09f23b6d Mon Sep 17 00:00:00 2001 +From a2d6aaf431f822816c8c5c3e75190e508b442e33 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 441717b92c2a22021b7a38c43788897a09f23b6d ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -28 +29 @@ -index 396180111..7a0004782 100644 +index f971063a1..6f5d0f9aa 100644 @@ -31 +32 @@ -@@ -1440,8 +1440,9 @@ ef10_proxy_auth_get_privilege_mask( +@@ -1244,8 +1244,9 @@ efx_mcdi_set_nic_global( @@ -46 +47 @@ -index 8fc8fd909..0d5378ddf 100644 +index 8d1b64f25..2f334fe0f 100644 @@ -58 +59 @@ -index 10eace46c..b087a5d42 100644 +index 3c8f4f3b9..09e8bb816 100644 @@ -61 +62 @@ -@@ -948,6 +948,7 @@ ef10_rx_qps_packet_info( +@@ -931,6 +931,7 @@ ef10_rx_qps_packet_info( @@ -72 +73 @@ -index 53c7b4212..835d057b1 100644 +index 2e847b6ce..4f25e69e1 100644 @@ -75 +76 @@ -@@ -30,4 +30,8 @@ extern "C" { +@@ -29,4 +29,8 @@ extern "C" { @@ -84 +85 @@ -@@ -499,8 +503,8 @@ typedef enum efx_link_mode_e { +@@ -495,8 +499,8 @@ typedef enum efx_link_mode_e { @@ -95 +96 @@ -@@ -588,6 +592,7 @@ efx_mac_stat_name( +@@ -584,6 +588,7 @@ efx_mac_stat_name( @@ -106 +107 @@ -index 74cde5075..0941cbdb8 100644 +index ddf91c111..a48394851 100644 @@ -109 +110 @@ -@@ -392,4 +392,9 @@ efx_mcdi_phy_module_get_info( +@@ -385,4 +385,9 @@ efx_mcdi_phy_module_get_info( @@ -119 +120 @@ -@@ -399,7 +404,5 @@ efx_mcdi_phy_module_get_info( +@@ -392,7 +397,5 @@ efx_mcdi_phy_module_get_info( @@ -129 +130 @@ -index 5cf3dcd3a..e7c5e8089 100644 +index 9fa9e2ed1..2a3f1ce12 100644 @@ -132 +133 @@ -@@ -800,5 +800,5 @@ siena_tx_qpost( +@@ -769,5 +769,5 @@ siena_tx_qpost( @@ -139 +140 @@ -@@ -1059,5 +1059,5 @@ siena_tx_qdesc_dma_create( +@@ -1039,5 +1039,5 @@ siena_tx_qdesc_dma_create( @@ -147 +148 @@ -index 762c6eea4..4c122d040 100644 +index f7bcc74d9..c8d652436 100644 @@ -160 +161 @@ -index 279b58641..1f78a3d8a 100644 +index fa0dd82aa..8c7d22430 100644 @@ -163 +164 @@ -@@ -938,5 +938,5 @@ sfc_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu) +@@ -907,5 +907,5 @@ sfc_dev_set_mtu(struct rte_eth_dev *dev, uint16_t mtu)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/af2ccf01123b177953470bdac3362df248561be1 Thanks. Kevin Traynor --- From af2ccf01123b177953470bdac3362df248561be1 Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko <arybchenko@solarflare.com> Date: Wed, 24 Jul 2019 14:16:33 +0100 Subject: [PATCH] net/sfc: fix align to power of 2 when align has smaller type [ upstream commit 827ad8232cb87a0f79e65c3f5bb154a2fd771153 ] Substitute driver-defined P2ALIGN() with EFX_P2ALIGN() defined in libefx. Cast value and alignment to one specified type to guarantee result correctness. Fixes: e1b944598579 ("net/sfc: build libefx") Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> --- drivers/net/sfc/base/ef10_rx.c | 2 +- drivers/net/sfc/base/efx.h | 4 ++++ drivers/net/sfc/efsys.h | 4 ---- drivers/net/sfc/sfc_rx.c | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/net/sfc/base/ef10_rx.c b/drivers/net/sfc/base/ef10_rx.c index 09e8bb816..6e3277daf 100644 --- a/drivers/net/sfc/base/ef10_rx.c +++ b/drivers/net/sfc/base/ef10_rx.c @@ -843,5 +843,5 @@ ef10_rx_qpush( /* Hardware has alignment restriction for WPTR */ - wptr = P2ALIGN(added, EF10_RX_WPTR_ALIGN); + wptr = EFX_P2ALIGN(unsigned int, added, EF10_RX_WPTR_ALIGN); if (pushed == wptr) return; diff --git a/drivers/net/sfc/base/efx.h b/drivers/net/sfc/base/efx.h index 4f25e69e1..eacd431df 100644 --- a/drivers/net/sfc/base/efx.h +++ b/drivers/net/sfc/base/efx.h @@ -33,4 +33,8 @@ extern "C" { (-(-(_type)(_value) & -(_type)(_align))) +/* Align value down to the nearest power of two. */ +#define EFX_P2ALIGN(_type, _value, _align) \ + ((_type)(_value) & -(_type)(_align)) + /* Return codes */ diff --git a/drivers/net/sfc/efsys.h b/drivers/net/sfc/efsys.h index c8d652436..8fd6e1bb5 100644 --- a/drivers/net/sfc/efsys.h +++ b/drivers/net/sfc/efsys.h @@ -77,8 +77,4 @@ typedef bool boolean_t; #endif -#ifndef P2ALIGN -#define P2ALIGN(_x, _a) ((_x) & -(_a)) -#endif - #ifndef ISP2 #define ISP2(x) rte_is_power_of_2(x) diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c index a78d35a22..630f6b455 100644 --- a/drivers/net/sfc/sfc_rx.c +++ b/drivers/net/sfc/sfc_rx.c @@ -953,5 +953,5 @@ sfc_rx_mb_pool_buf_size(struct sfc_adapter *sa, struct rte_mempool *mb_pool) * just align length. */ - buf_size = P2ALIGN(buf_size, nic_align_end); + buf_size = EFX_P2ALIGN(uint32_t, buf_size, nic_align_end); } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:47.993146766 +0100 +++ 0008-net-sfc-fix-align-to-power-of-2-when-align-has-small.patch 2019-09-05 10:36:47.467701552 +0100 @@ -1 +1 @@ -From 827ad8232cb87a0f79e65c3f5bb154a2fd771153 Mon Sep 17 00:00:00 2001 +From af2ccf01123b177953470bdac3362df248561be1 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 827ad8232cb87a0f79e65c3f5bb154a2fd771153 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index b087a5d42..bb4489bbf 100644 +index 09e8bb816..6e3277daf 100644 @@ -27 +28 @@ -@@ -860,5 +860,5 @@ ef10_rx_qpush( +@@ -843,5 +843,5 @@ ef10_rx_qpush( @@ -35 +36 @@ -index 835d057b1..6aff68b54 100644 +index 4f25e69e1..eacd431df 100644 @@ -38 +39 @@ -@@ -34,4 +34,8 @@ extern "C" { +@@ -33,4 +33,8 @@ extern "C" { @@ -48 +49 @@ -index 4c122d040..79fd3c144 100644 +index c8d652436..8fd6e1bb5 100644 @@ -61 +62 @@ -index 23dff0967..e6809bb64 100644 +index a78d35a22..630f6b455 100644 @@ -64 +65 @@ -@@ -1020,5 +1020,5 @@ sfc_rx_mb_pool_buf_size(struct sfc_adapter *sa, struct rte_mempool *mb_pool) +@@ -953,5 +953,5 @@ sfc_rx_mb_pool_buf_size(struct sfc_adapter *sa, struct rte_mempool *mb_pool)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/fc3912e3ff0a47ae476fa41067724f804283aa0c Thanks. Kevin Traynor --- From fc3912e3ff0a47ae476fa41067724f804283aa0c Mon Sep 17 00:00:00 2001 From: Andrew Rybchenko <arybchenko@solarflare.com> Date: Wed, 24 Jul 2019 14:16:34 +0100 Subject: [PATCH] net/sfc: unify power of 2 alignment check macro [ upstream commit 0270853d94e298820f3361b43dfdbf95e6a05c88 ] Substitute driver-defined IS_P2ALIGNED() with EFX_IS_P2ALIGNED() defined in libefx. Add type argument and cast value and alignment to one specified type. Fixes: e1b944598579 ("net/sfc: build libefx") Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com> --- drivers/net/sfc/base/ef10_rx.c | 4 ++-- drivers/net/sfc/base/efx.h | 4 ++++ drivers/net/sfc/efsys.h | 43 +++++++++++++++++++--------------- 3 files changed, 30 insertions(+), 21 deletions(-) diff --git a/drivers/net/sfc/base/ef10_rx.c b/drivers/net/sfc/base/ef10_rx.c index 6e3277daf..d182ec801 100644 --- a/drivers/net/sfc/base/ef10_rx.c +++ b/drivers/net/sfc/base/ef10_rx.c @@ -1097,10 +1097,10 @@ ef10_rx_qcreate( goto fail7; } - if (!IS_P2ALIGNED(es_max_dma_len, + if (!EFX_IS_P2ALIGNED(uint32_t, es_max_dma_len, EFX_RX_ES_SUPER_BUFFER_BUF_ALIGNMENT)) { rc = EINVAL; goto fail8; } - if (!IS_P2ALIGNED(es_buf_stride, + if (!EFX_IS_P2ALIGNED(uint32_t, es_buf_stride, EFX_RX_ES_SUPER_BUFFER_BUF_ALIGNMENT)) { rc = EINVAL; diff --git a/drivers/net/sfc/base/efx.h b/drivers/net/sfc/base/efx.h index eacd431df..444f6d1db 100644 --- a/drivers/net/sfc/base/efx.h +++ b/drivers/net/sfc/base/efx.h @@ -37,4 +37,8 @@ extern "C" { ((_type)(_value) & -(_type)(_align)) +/* Test if value is power of 2 aligned. */ +#define EFX_IS_P2ALIGNED(_type, _value, _align) \ + ((((_type)(_value)) & ((_type)(_align) - 1)) == 0) + /* Return codes */ diff --git a/drivers/net/sfc/efsys.h b/drivers/net/sfc/efsys.h index 8fd6e1bb5..2bfa29e79 100644 --- a/drivers/net/sfc/efsys.h +++ b/drivers/net/sfc/efsys.h @@ -70,11 +70,4 @@ typedef bool boolean_t; #endif -/* There are macros for alignment in DPDK, but we need to make a proper - * correspondence here, if we want to re-use them at all - */ -#ifndef IS_P2ALIGNED -#define IS_P2ALIGNED(v, a) ((((uintptr_t)(v)) & ((uintptr_t)(a) - 1)) == 0) -#endif - #ifndef ISP2 #define ISP2(x) rte_is_power_of_2(x) @@ -228,5 +221,6 @@ typedef struct efsys_mem_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_dword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_dword_t))); \ \ _addr = (volatile uint32_t *)(_base + (_offset)); \ @@ -245,5 +239,6 @@ typedef struct efsys_mem_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_qword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_qword_t))); \ \ _addr = (volatile uint64_t *)(_base + (_offset)); \ @@ -263,5 +258,6 @@ typedef struct efsys_mem_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_oword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_oword_t))); \ \ _addr = (volatile __m128i *)(_base + (_offset)); \ @@ -284,5 +280,6 @@ typedef struct efsys_mem_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_dword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_dword_t))); \ \ EFSYS_PROBE2(mem_writed, unsigned int, (_offset), \ @@ -301,5 +298,6 @@ typedef struct efsys_mem_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_qword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_qword_t))); \ \ EFSYS_PROBE3(mem_writeq, unsigned int, (_offset), \ @@ -319,5 +317,6 @@ typedef struct efsys_mem_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_oword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_oword_t))); \ \ \ @@ -384,5 +383,6 @@ typedef struct efsys_bar_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_dword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_dword_t))); \ _NOTE(CONSTANTCONDITION); \ if (_lock) \ @@ -408,5 +408,6 @@ typedef struct efsys_bar_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_qword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_qword_t))); \ \ SFC_BAR_LOCK(_esbp); \ @@ -430,5 +431,6 @@ typedef struct efsys_bar_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_oword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_oword_t))); \ \ _NOTE(CONSTANTCONDITION); \ @@ -460,5 +462,6 @@ typedef struct efsys_bar_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_dword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_dword_t))); \ \ _NOTE(CONSTANTCONDITION); \ @@ -485,5 +488,6 @@ typedef struct efsys_bar_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_qword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_qword_t))); \ \ SFC_BAR_LOCK(_esbp); \ @@ -519,5 +523,6 @@ typedef struct efsys_bar_s { \ _NOTE(CONSTANTCONDITION); \ - SFC_ASSERT(IS_P2ALIGNED(_offset, sizeof(efx_oword_t))); \ + SFC_ASSERT(EFX_IS_P2ALIGNED(size_t, _offset, \ + sizeof(efx_oword_t))); \ \ _NOTE(CONSTANTCONDITION); \ -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.058773883 +0100 +++ 0009-net-sfc-unify-power-of-2-alignment-check-macro.patch 2019-09-05 10:36:47.473701408 +0100 @@ -1 +1 @@ -From 0270853d94e298820f3361b43dfdbf95e6a05c88 Mon Sep 17 00:00:00 2001 +From fc3912e3ff0a47ae476fa41067724f804283aa0c Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 0270853d94e298820f3361b43dfdbf95e6a05c88 ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index bb4489bbf..5f5dd3c62 100644 +index 6e3277daf..d182ec801 100644 @@ -25,2 +26,2 @@ -@@ -1120,10 +1120,10 @@ ef10_rx_qcreate( - goto fail9; +@@ -1097,10 +1097,10 @@ ef10_rx_qcreate( + goto fail7; @@ -32 +33 @@ - goto fail10; + goto fail8; @@ -39 +40 @@ -index 6aff68b54..53ddaa987 100644 +index eacd431df..444f6d1db 100644 @@ -42 +43 @@ -@@ -38,4 +38,8 @@ extern "C" { +@@ -37,4 +37,8 @@ extern "C" { @@ -52 +53 @@ -index 79fd3c144..eab5479a4 100644 +index 8fd6e1bb5..2bfa29e79 100644 @@ -67 +68 @@ -@@ -232,5 +225,6 @@ typedef struct efsys_mem_s { +@@ -228,5 +221,6 @@ typedef struct efsys_mem_s { @@ -75 +76 @@ -@@ -249,5 +243,6 @@ typedef struct efsys_mem_s { +@@ -245,5 +239,6 @@ typedef struct efsys_mem_s { @@ -83 +84 @@ -@@ -267,5 +262,6 @@ typedef struct efsys_mem_s { +@@ -263,5 +258,6 @@ typedef struct efsys_mem_s { @@ -91 +92 @@ -@@ -288,5 +284,6 @@ typedef struct efsys_mem_s { +@@ -284,5 +280,6 @@ typedef struct efsys_mem_s { @@ -99 +100 @@ -@@ -305,5 +302,6 @@ typedef struct efsys_mem_s { +@@ -301,5 +298,6 @@ typedef struct efsys_mem_s { @@ -107 +108 @@ -@@ -323,5 +321,6 @@ typedef struct efsys_mem_s { +@@ -319,5 +317,6 @@ typedef struct efsys_mem_s { @@ -115 +116 @@ -@@ -388,5 +387,6 @@ typedef struct efsys_bar_s { +@@ -384,5 +383,6 @@ typedef struct efsys_bar_s { @@ -123 +124 @@ -@@ -412,5 +412,6 @@ typedef struct efsys_bar_s { +@@ -408,5 +408,6 @@ typedef struct efsys_bar_s { @@ -131 +132 @@ -@@ -434,5 +435,6 @@ typedef struct efsys_bar_s { +@@ -430,5 +431,6 @@ typedef struct efsys_bar_s { @@ -139 +140 @@ -@@ -464,5 +466,6 @@ typedef struct efsys_bar_s { +@@ -460,5 +462,6 @@ typedef struct efsys_bar_s { @@ -147 +148 @@ -@@ -489,5 +492,6 @@ typedef struct efsys_bar_s { +@@ -485,5 +488,6 @@ typedef struct efsys_bar_s { @@ -155 +156 @@ -@@ -523,5 +527,6 @@ typedef struct efsys_bar_s { +@@ -519,5 +523,6 @@ typedef struct efsys_bar_s {
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/1c90b45f091380e985231d80b1d5a1de8bb364c3 Thanks. Kevin Traynor --- From 1c90b45f091380e985231d80b1d5a1de8bb364c3 Mon Sep 17 00:00:00 2001 From: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com> Date: Thu, 25 Jul 2019 10:29:46 +0530 Subject: [PATCH] net/bnxt: fix extended port counter statistics [ upstream commit b02a39ba3ba043827fb91c175900aed0eddf0d2d ] We were trying to fill in more rx extended stats than the size allocated for stats causing segfault. Fixed this by adding an explicit check. Rearranged the code to return statistic values in xstats_get as per the names returned in xstats_get_names. Fixes: f55e12f33416 ("net/bnxt: support extended port counters") Signed-off-by: Rahul Gupta <rahul.gupta@broadcom.com> Signed-off-by: Santoshkumar Karanappa Rastapur <santosh.rastapur@broadcom.com> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> --- drivers/net/bnxt/bnxt_stats.c | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/drivers/net/bnxt/bnxt_stats.c b/drivers/net/bnxt/bnxt_stats.c index aa1ab805d..e0f70781a 100644 --- a/drivers/net/bnxt/bnxt_stats.c +++ b/drivers/net/bnxt/bnxt_stats.c @@ -427,6 +427,10 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, bnxt_hwrm_func_qstats_tx_drop(bp, 0xffff, &tx_drop_pkts); bnxt_hwrm_ext_port_qstats(bp); - rx_port_stats_ext_cnt = bp->fw_rx_port_stats_ext_size / stat_size; - tx_port_stats_ext_cnt = bp->fw_tx_port_stats_ext_size / stat_size; + rx_port_stats_ext_cnt = RTE_MIN(RTE_DIM(bnxt_rx_ext_stats_strings), + (bp->fw_rx_port_stats_ext_size / + stat_size)); + tx_port_stats_ext_cnt = RTE_MIN(RTE_DIM(bnxt_tx_ext_stats_strings), + (bp->fw_tx_port_stats_ext_size / + stat_size)); count = RTE_DIM(bnxt_rx_stats_strings) + @@ -463,14 +467,4 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, count++; - for (i = 0; i < tx_port_stats_ext_cnt; i++) { - uint64_t *tx_stats_ext = (uint64_t *)bp->hw_tx_port_stats_ext; - - xstats[count].value = rte_le_to_cpu_64 - (*(uint64_t *)((char *)tx_stats_ext + - bnxt_tx_ext_stats_strings[i].offset)); - - count++; - } - for (i = 0; i < rx_port_stats_ext_cnt; i++) { uint64_t *rx_stats_ext = (uint64_t *)bp->hw_rx_port_stats_ext; @@ -483,4 +477,14 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, } + for (i = 0; i < tx_port_stats_ext_cnt; i++) { + uint64_t *tx_stats_ext = (uint64_t *)bp->hw_tx_port_stats_ext; + + xstats[count].value = rte_le_to_cpu_64 + (*(uint64_t *)((char *)tx_stats_ext + + bnxt_tx_ext_stats_strings[i].offset)); + + count++; + } + return stat_count; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.121254501 +0100 +++ 0010-net-bnxt-fix-extended-port-counter-statistics.patch 2019-09-05 10:36:47.474701384 +0100 @@ -1 +1 @@ -From b02a39ba3ba043827fb91c175900aed0eddf0d2d Mon Sep 17 00:00:00 2001 +From 1c90b45f091380e985231d80b1d5a1de8bb364c3 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit b02a39ba3ba043827fb91c175900aed0eddf0d2d ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index 4e74f8a27..69ac2dd91 100644 +index aa1ab805d..e0f70781a 100644 @@ -25 +26 @@ -@@ -428,6 +428,10 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, +@@ -427,6 +427,10 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, @@ -38 +39 @@ -@@ -464,14 +468,4 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, +@@ -463,14 +467,4 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, @@ -53 +54 @@ -@@ -484,4 +478,14 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev, +@@ -483,4 +477,14 @@ int bnxt_dev_xstats_get_op(struct rte_eth_dev *eth_dev,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/01e982236e16554f88d4636887e3c3c9c26d6c32 Thanks. Kevin Traynor --- From 01e982236e16554f88d4636887e3c3c9c26d6c32 Mon Sep 17 00:00:00 2001 From: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Date: Thu, 25 Jul 2019 10:29:49 +0530 Subject: [PATCH] net/bnxt: reduce verbosity of a message [ upstream commit 6a0276241d895f1da9428f368b3dde0acdf89629 ] Change verbosity of a message to DEBUG from ERROR. This is just debug message. Fixes: 3e92fd4e4ec0 ("net/bnxt: use dynamic log type") Signed-off-by: Kalesh AP <kalesh-anakkur.purayil@broadcom.com> Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com> --- drivers/net/bnxt/bnxt_hwrm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 5c899971b..69b45283d 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -2058,5 +2058,5 @@ bnxt_clear_hwrm_vnic_flows(struct bnxt *bp, struct bnxt_vnic_info *vnic) STAILQ_FOREACH(flow, &vnic->flow_list, next) { filter = flow->filter; - PMD_DRV_LOG(ERR, "filter type %d\n", filter->filter_type); + PMD_DRV_LOG(DEBUG, "filter type %d\n", filter->filter_type); if (filter->filter_type == HWRM_CFA_EM_FILTER) rc = bnxt_hwrm_clear_em_filter(bp, filter); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.179990656 +0100 +++ 0011-net-bnxt-reduce-verbosity-of-a-message.patch 2019-09-05 10:36:47.478701288 +0100 @@ -1 +1 @@ -From 6a0276241d895f1da9428f368b3dde0acdf89629 Mon Sep 17 00:00:00 2001 +From 01e982236e16554f88d4636887e3c3c9c26d6c32 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 6a0276241d895f1da9428f368b3dde0acdf89629 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -19 +20 @@ -index 6128f0f79..9883fb506 100644 +index 5c899971b..69b45283d 100644 @@ -22 +23 @@ -@@ -2266,5 +2266,5 @@ bnxt_clear_hwrm_vnic_flows(struct bnxt *bp, struct bnxt_vnic_info *vnic) +@@ -2058,5 +2058,5 @@ bnxt_clear_hwrm_vnic_flows(struct bnxt *bp, struct bnxt_vnic_info *vnic)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/11ab8ddd3f846ae5d87f3ad40b7934388a071829 Thanks. Kevin Traynor --- From 11ab8ddd3f846ae5d87f3ad40b7934388a071829 Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Thu, 25 Jul 2019 21:24:17 +0200 Subject: [PATCH] net/pcap: fix Rx with small buffers [ upstream commit 6653d812c6d47f02ec6562a6118254299b0ffd5c ] If the pkt pool contains only buffers smaller than the default headroom, then the driver will compute an invalid buffer size (negative value cast to an uint16_t). Rely on the mbuf api to check how much space is available in the mbuf. Fixes: 6eb0ae218a98 ("pcap: fix mbuf allocation") Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> --- drivers/net/pcap/rte_eth_pcap.c | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index 070124c86..334075ca8 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -189,5 +189,4 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) struct pcap_rx_queue *pcap_q = queue; uint16_t num_rx = 0; - uint16_t buf_size; uint32_t rx_bytes = 0; pcap_t *pcap; @@ -212,9 +211,5 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) break; - /* Now get the space available for data in the mbuf */ - buf_size = rte_pktmbuf_data_room_size(pcap_q->mb_pool) - - RTE_PKTMBUF_HEADROOM; - - if (header.caplen <= buf_size) { + if (header.caplen <= rte_pktmbuf_tailroom(mbuf)) { /* pcap packet will fit in the mbuf, can copy it */ rte_memcpy(rte_pktmbuf_mtod(mbuf, void *), packet, -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.245734501 +0100 +++ 0012-net-pcap-fix-Rx-with-small-buffers.patch 2019-09-05 10:36:47.480701240 +0100 @@ -1 +1 @@ -From 6653d812c6d47f02ec6562a6118254299b0ffd5c Mon Sep 17 00:00:00 2001 +From 11ab8ddd3f846ae5d87f3ad40b7934388a071829 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 6653d812c6d47f02ec6562a6118254299b0ffd5c ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index 322c18f75..470867de6 100644 +index 070124c86..334075ca8 100644 @@ -24 +25 @@ -@@ -243,5 +243,4 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) +@@ -189,5 +189,4 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) @@ -30 +31 @@ -@@ -266,9 +265,5 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) +@@ -212,9 +211,5 @@ eth_pcap_rx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/c93d353429bfcdef049248ea02d31da26bd7bc7b Thanks. Kevin Traynor --- From c93d353429bfcdef049248ea02d31da26bd7bc7b Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Thu, 25 Jul 2019 21:24:18 +0200 Subject: [PATCH] net/pcap: fix Tx return count in error conditions [ upstream commit 9be0b6bde39289cfe583a25070eba44383de7de7 ] When a packet cannot be transmitted, the driver is supposed to free this packet and report it as handled. This is to prevent the application from retrying to send the same packet and ending up in a liveloop since the driver will never manage to send it. Fixes: 49a0a2ffd5db ("net/pcap: fix possible mbuf double freeing") Fixes: 6db141c91e1f ("pcap: support jumbo frames") Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com> --- drivers/net/pcap/rte_eth_pcap.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c index 334075ca8..8feee999a 100644 --- a/drivers/net/pcap/rte_eth_pcap.c +++ b/drivers/net/pcap/rte_eth_pcap.c @@ -293,5 +293,6 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) ETHER_MAX_JUMBO_FRAME_LEN); - break; + rte_pktmbuf_free(mbuf); + continue; } } @@ -312,5 +313,5 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) dumper_q->tx_stat.err_pkts += nb_pkts - num_tx; - return num_tx; + return nb_pkts; } @@ -354,5 +355,6 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) ETHER_MAX_JUMBO_FRAME_LEN); - break; + rte_pktmbuf_free(mbuf); + continue; } } @@ -367,7 +369,7 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) tx_queue->tx_stat.pkts += num_tx; tx_queue->tx_stat.bytes += tx_bytes; - tx_queue->tx_stat.err_pkts += nb_pkts - num_tx; + tx_queue->tx_stat.err_pkts += i - num_tx; - return num_tx; + return i; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.306164151 +0100 +++ 0013-net-pcap-fix-Tx-return-count-in-error-conditions.patch 2019-09-05 10:36:47.481701216 +0100 @@ -1 +1 @@ -From 9be0b6bde39289cfe583a25070eba44383de7de7 Mon Sep 17 00:00:00 2001 +From c93d353429bfcdef049248ea02d31da26bd7bc7b Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 9be0b6bde39289cfe583a25070eba44383de7de7 ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -23 +24 @@ -index 470867de6..bfc0756ef 100644 +index 334075ca8..8feee999a 100644 @@ -26,2 +27,2 @@ -@@ -355,5 +355,6 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) - RTE_ETHER_MAX_JUMBO_FRAME_LEN); +@@ -293,5 +293,6 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) + ETHER_MAX_JUMBO_FRAME_LEN); @@ -34 +35 @@ -@@ -374,5 +375,5 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) +@@ -312,5 +313,5 @@ eth_pcap_tx_dumper(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) @@ -41,2 +42,2 @@ -@@ -440,5 +441,6 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) - RTE_ETHER_MAX_JUMBO_FRAME_LEN); +@@ -354,5 +355,6 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) + ETHER_MAX_JUMBO_FRAME_LEN); @@ -49 +50 @@ -@@ -453,7 +455,7 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts) +@@ -367,7 +369,7 @@ eth_pcap_tx(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/c452a379d36f0c8b99c38deca831606f848f7a10 Thanks. Kevin Traynor --- From c452a379d36f0c8b99c38deca831606f848f7a10 Mon Sep 17 00:00:00 2001 From: Qi Zhang <qi.z.zhang@intel.com> Date: Thu, 25 Jul 2019 12:38:29 +0800 Subject: [PATCH] net/avf: fix endless loop [ upstream commit 43b29221c1f13189f41d5200027a22f11149dfee ] Change loop index from uint16_t to uint32_t since max index 65535 could be exceeded when ring size is 2k+. Fixes: 69dd4c3d0898 ("net/avf: enable queue and device") Reported-by: Lei Yao <lei.a.yao@intel.com> Signed-off-by: Qi Zhang <qi.z.zhang@intel.com> Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com> --- drivers/net/avf/avf_rxtx.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/avf/avf_rxtx.c b/drivers/net/avf/avf_rxtx.c index 1073876e4..8c8771e66 100644 --- a/drivers/net/avf/avf_rxtx.c +++ b/drivers/net/avf/avf_rxtx.c @@ -145,5 +145,6 @@ static inline void reset_rx_queue(struct avf_rx_queue *rxq) { - uint16_t len, i; + uint16_t len; + uint32_t i; if (!rxq) @@ -175,5 +176,6 @@ reset_tx_queue(struct avf_tx_queue *txq) { struct avf_tx_entry *txe; - uint16_t i, prev, size; + uint32_t i, size; + uint16_t prev; if (!txq) { -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.364367038 +0100 +++ 0014-net-avf-fix-endless-loop.patch 2019-09-05 10:36:47.483701169 +0100 @@ -1 +1 @@ -From 43b29221c1f13189f41d5200027a22f11149dfee Mon Sep 17 00:00:00 2001 +From c452a379d36f0c8b99c38deca831606f848f7a10 Mon Sep 17 00:00:00 2001 @@ -4 +4,3 @@ -Subject: [PATCH] net/iavf: fix endless loop +Subject: [PATCH] net/avf: fix endless loop + +[ upstream commit 43b29221c1f13189f41d5200027a22f11149dfee ] @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -16 +17 @@ - drivers/net/iavf/iavf_rxtx.c | 6 ++++-- + drivers/net/avf/avf_rxtx.c | 6 ++++-- @@ -19,4 +20,4 @@ -diff --git a/drivers/net/iavf/iavf_rxtx.c b/drivers/net/iavf/iavf_rxtx.c -index d8eb6d296..22d7bb612 100644 ---- a/drivers/net/iavf/iavf_rxtx.c -+++ b/drivers/net/iavf/iavf_rxtx.c +diff --git a/drivers/net/avf/avf_rxtx.c b/drivers/net/avf/avf_rxtx.c +index 1073876e4..8c8771e66 100644 +--- a/drivers/net/avf/avf_rxtx.c ++++ b/drivers/net/avf/avf_rxtx.c @@ -24 +25 @@ - reset_rx_queue(struct iavf_rx_queue *rxq) + reset_rx_queue(struct avf_rx_queue *rxq) @@ -31 +32 @@ -@@ -175,5 +176,6 @@ reset_tx_queue(struct iavf_tx_queue *txq) +@@ -175,5 +176,6 @@ reset_tx_queue(struct avf_tx_queue *txq) @@ -33 +34 @@ - struct iavf_tx_entry *txe; + struct avf_tx_entry *txe;
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/945d90a659c680aaea86b7d19eb29a06b795a58e Thanks. Kevin Traynor --- From 945d90a659c680aaea86b7d19eb29a06b795a58e Mon Sep 17 00:00:00 2001 From: Wei Zhao <wei.zhao1@intel.com> Date: Fri, 26 Jul 2019 09:38:28 +0800 Subject: [PATCH] net/ixgbe: fix RETA size for VF [ upstream commit fb3a93f9feeb771d56b89df19d1038be573da9f5 ] Filling correct RETA table size at ixgbevf_dev_info_get, so RETA table update will be supported for VF port. For X540_vf and 82599_vf, since they don't support RETA table update, set RETA size to 0. Fixes: 2144f6630fca ("ixgbe: add redirection table size in device info") Signed-off-by: Wei Zhao <wei.zhao1@intel.com> Acked-by: Qi Zhang <qi.z.zhang@intel.com> --- drivers/net/ixgbe/ixgbe_ethdev.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c index e432a767e..00a06ef67 100644 --- a/drivers/net/ixgbe/ixgbe_ethdev.c +++ b/drivers/net/ixgbe/ixgbe_ethdev.c @@ -3908,4 +3908,6 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev, dev_info->tx_queue_offload_capa = ixgbe_get_tx_queue_offloads(dev); dev_info->tx_offload_capa = ixgbe_get_tx_port_offloads(dev); + dev_info->hash_key_size = IXGBE_HKEY_MAX_INDEX * sizeof(uint32_t); + dev_info->reta_size = ixgbe_reta_size_get(hw->mac.type); dev_info->default_rxconf = (struct rte_eth_rxconf) { @@ -7406,4 +7408,7 @@ ixgbe_reta_size_get(enum ixgbe_mac_type mac_type) { case ixgbe_mac_X550EM_a_vf: return ETH_RSS_RETA_SIZE_64; + case ixgbe_mac_X540_vf: + case ixgbe_mac_82599_vf: + return 0; default: return ETH_RSS_RETA_SIZE_128; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.424613145 +0100 +++ 0015-net-ixgbe-fix-RETA-size-for-VF.patch 2019-09-05 10:36:47.492700953 +0100 @@ -1 +1 @@ -From fb3a93f9feeb771d56b89df19d1038be573da9f5 Mon Sep 17 00:00:00 2001 +From 945d90a659c680aaea86b7d19eb29a06b795a58e Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit fb3a93f9feeb771d56b89df19d1038be573da9f5 ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index 68b1e4f73..03fc1f717 100644 +index e432a767e..00a06ef67 100644 @@ -24 +25 @@ -@@ -3927,4 +3927,6 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev, +@@ -3908,4 +3908,6 @@ ixgbevf_dev_info_get(struct rte_eth_dev *dev, @@ -31 +32 @@ -@@ -7438,4 +7440,7 @@ ixgbe_reta_size_get(enum ixgbe_mac_type mac_type) { +@@ -7406,4 +7408,7 @@ ixgbe_reta_size_get(enum ixgbe_mac_type mac_type) {
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/b081b185c07da807661d62c1b20653012b8d7e3c Thanks. Kevin Traynor --- From b081b185c07da807661d62c1b20653012b8d7e3c Mon Sep 17 00:00:00 2001 From: Ferruh Yigit <ferruh.yigit@intel.com> Date: Mon, 29 Jul 2019 13:32:16 +0100 Subject: [PATCH] igb_uio: fix build on Linux 5.3 for fall through MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ upstream commit c96bbbd010f7abb88c2ca2ed9dfc5ecd37e9027d ] build error: kernel/linux/igb_uio/igb_uio.c: In function ‘igbuio_pci_enable_interrupts’: kernel/linux/igb_uio/igb_uio.c:230:6: error: this statement may fall through [-Werror=implicit-fallthrough=] 230 | if (pci_alloc_irq_vectors(udev->pdev, 1, 1, .... kernel/linux/igb_uio/igb_uio.c:240:2: note: here 240 | case RTE_INTR_MODE_MSI: | ^~~~ The build error is caused by Linux kernel commit in 5.3 that enables the "-Wimplicit-fallthrough=3" gcc flag. Commit a035d552a93b ("Makefile: Globally enable fall-through warning") To fix the error, either a gcc attribute can be provided [1] or a code comment with some defined syntax need to be provided [2], since there is already comments, updated them slightly to match the required syntax to fix the build error. [1] "__attribute__ ((fallthrough));" [2] [ \t.!]*([Ee]lse,? |[Ii]ntentional(ly)? )? fall(s | |-)?thr(ough|u)[ \t.!]*(-[^\n\r]*)? Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com> --- kernel/linux/igb_uio/igb_uio.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c index 3cf394bdf..039f5a5f6 100644 --- a/kernel/linux/igb_uio/igb_uio.c +++ b/kernel/linux/igb_uio/igb_uio.c @@ -237,5 +237,5 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev) #endif - /* fall back to MSI */ + /* falls through - to MSI */ case RTE_INTR_MODE_MSI: #ifndef HAVE_ALLOC_IRQ_VECTORS @@ -256,5 +256,5 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev) } #endif - /* fall back to INTX */ + /* falls through - to INTX */ case RTE_INTR_MODE_LEGACY: if (pci_intx_mask_supported(udev->pdev)) { @@ -266,5 +266,5 @@ igbuio_pci_enable_interrupts(struct rte_uio_pci_dev *udev) } dev_notice(&udev->pdev->dev, "PCI INTX mask not supported\n"); - /* fall back to no IRQ */ + /* falls through - to no IRQ */ case RTE_INTR_MODE_NONE: udev->mode = RTE_INTR_MODE_NONE; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.489815891 +0100 +++ 0016-igb_uio-fix-build-on-Linux-5.3-for-fall-through.patch 2019-09-05 10:36:47.493700929 +0100 @@ -1 +1 @@ -From c96bbbd010f7abb88c2ca2ed9dfc5ecd37e9027d Mon Sep 17 00:00:00 2001 +From b081b185c07da807661d62c1b20653012b8d7e3c Mon Sep 17 00:00:00 2001 @@ -8,0 +9,2 @@ +[ upstream commit c96bbbd010f7abb88c2ca2ed9dfc5ecd37e9027d ] + @@ -35,2 +36,0 @@ - -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/cba708424348b49e50b284da3c6b9a8cce1b6d21 Thanks. Kevin Traynor --- From cba708424348b49e50b284da3c6b9a8cce1b6d21 Mon Sep 17 00:00:00 2001 From: Liang Ma <liang.j.ma@intel.com> Date: Thu, 25 Jul 2019 10:03:01 +0100 Subject: [PATCH] distributor: fix livelock on flush [ upstream commit 96c343868dd15ebdc74371a9dea2288b30ce13ea ] The Distributor autotest can lock if ran enough times. Worker and distributor threads get into a livelock situation waiting on each other. To repeat: `while sudo sh -c "echo 'distributor_autotest' | ./build/app/test/dpdk-test"; do :; done` The root cause is where we are flushing on exit, and do not wait for all worker packets to be returned before exiting. Add a delay on flush so that all worker packets are returned before completing the flush. Bugzilla ID: 316 Fixes: 775003ad2f96 ("distributor: add new burst-capable library") Reported-by: Michael Santana <msantana@redhat.com> Signed-off-by: David Hunt <david.hunt@intel.com> Signed-off-by: Liang Ma <liang.j.ma@intel.com> Tested-by: Michael Santana <msantana@redhat.com> --- lib/librte_distributor/rte_distributor.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/lib/librte_distributor/rte_distributor.c b/lib/librte_distributor/rte_distributor.c index 043b8f3ae..b60acdeed 100644 --- a/lib/librte_distributor/rte_distributor.c +++ b/lib/librte_distributor/rte_distributor.c @@ -542,4 +542,7 @@ rte_distributor_flush_v1705(struct rte_distributor *d) rte_distributor_process(d, NULL, 0); + /* wait 10ms to allow all worker drain the pkts */ + rte_delay_us(10000); + /* * Send empty burst to all workers to allow them to exit -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.549605211 +0100 +++ 0017-distributor-fix-livelock-on-flush.patch 2019-09-05 10:36:47.494700905 +0100 @@ -1 +1 @@ -From 96c343868dd15ebdc74371a9dea2288b30ce13ea Mon Sep 17 00:00:00 2001 +From cba708424348b49e50b284da3c6b9a8cce1b6d21 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 96c343868dd15ebdc74371a9dea2288b30ce13ea ] + @@ -21 +22,0 @@ -Cc: stable@dpdk.org @@ -32 +33 @@ -index 9fa05f69a..21eb1fb0a 100644 +index 043b8f3ae..b60acdeed 100644 @@ -35 +36 @@ -@@ -543,4 +543,7 @@ rte_distributor_flush_v1705(struct rte_distributor *d) +@@ -542,4 +542,7 @@ rte_distributor_flush_v1705(struct rte_distributor *d)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/87a3fc75855fc2b5e296bd8c75d78b5b22828f85 Thanks. Kevin Traynor --- From 87a3fc75855fc2b5e296bd8c75d78b5b22828f85 Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Wed, 24 Jul 2019 12:58:56 +0200 Subject: [PATCH] app/testpmd: fix eth packet dump for small buffers [ upstream commit 3e6b0d5f69da2130e60b535e57fd065746b932a8 ] In the rather unlikely case where the first segment is too small to contain an ethernet header, we can't go and directly dereference the mbuf data buffer. Using rte_pktmbuf_read is a little more expensive but this is still acceptable for a debugging feature. Fixes: af75078fece3 ("first public release") Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com> --- app/test-pmd/util.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/test-pmd/util.c b/app/test-pmd/util.c index 687bfa496..042dc6fb9 100644 --- a/app/test-pmd/util.c +++ b/app/test-pmd/util.c @@ -15,5 +15,5 @@ static inline void -print_ether_addr(const char *what, struct ether_addr *eth_addr) +print_ether_addr(const char *what, const struct ether_addr *eth_addr) { char buf[ETHER_ADDR_FMT_SIZE]; @@ -27,5 +27,6 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[], { struct rte_mbuf *mb; - struct ether_hdr *eth_hdr; + const struct ether_hdr *eth_hdr; + struct ether_hdr _eth_hdr; uint16_t eth_type; uint64_t ol_flags; @@ -46,5 +47,5 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[], for (i = 0; i < nb_pkts; i++) { mb = pkts[i]; - eth_hdr = rte_pktmbuf_mtod(mb, struct ether_hdr *); + eth_hdr = rte_pktmbuf_read(mb, 0, sizeof(_eth_hdr), &_eth_hdr); eth_type = RTE_BE_TO_CPU_16(eth_hdr->ether_type); ol_flags = mb->ol_flags; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.606036384 +0100 +++ 0018-app-testpmd-fix-eth-packet-dump-for-small-buffers.patch 2019-09-05 10:36:47.495700881 +0100 @@ -1 +1 @@ -From 3e6b0d5f69da2130e60b535e57fd065746b932a8 Mon Sep 17 00:00:00 2001 +From 87a3fc75855fc2b5e296bd8c75d78b5b22828f85 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 3e6b0d5f69da2130e60b535e57fd065746b932a8 ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -23 +24 @@ -index a1164b705..18dfdca08 100644 +index 687bfa496..042dc6fb9 100644 @@ -29,2 +30,2 @@ --print_ether_addr(const char *what, struct rte_ether_addr *eth_addr) -+print_ether_addr(const char *what, const struct rte_ether_addr *eth_addr) +-print_ether_addr(const char *what, struct ether_addr *eth_addr) ++print_ether_addr(const char *what, const struct ether_addr *eth_addr) @@ -32 +33 @@ - char buf[RTE_ETHER_ADDR_FMT_SIZE]; + char buf[ETHER_ADDR_FMT_SIZE]; @@ -36,3 +37,3 @@ -- struct rte_ether_hdr *eth_hdr; -+ const struct rte_ether_hdr *eth_hdr; -+ struct rte_ether_hdr _eth_hdr; +- struct ether_hdr *eth_hdr; ++ const struct ether_hdr *eth_hdr; ++ struct ether_hdr _eth_hdr; @@ -41 +42 @@ -@@ -47,5 +48,5 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[], +@@ -46,5 +47,5 @@ dump_pkt_burst(uint16_t port_id, uint16_t queue, struct rte_mbuf *pkts[], @@ -44 +45 @@ -- eth_hdr = rte_pktmbuf_mtod(mb, struct rte_ether_hdr *); +- eth_hdr = rte_pktmbuf_mtod(mb, struct ether_hdr *);
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/2b0c72026751c24b726bc7be0fb89ca42b2a858e Thanks. Kevin Traynor --- From 2b0c72026751c24b726bc7be0fb89ca42b2a858e Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Fri, 26 Jul 2019 09:59:49 +0200 Subject: [PATCH] app/testpmd: rename ambiguous VF config variable [ upstream commit 5e16d9447a1e3404abd38fe4da6ea4f6c8addd05 ] Caught while looking at the rx offloads code. rx_mode is a global variable for the default rx configuration. Rename the local rx_mode variable in cmd_set_vf_rxmode_parsed. Fixes: 7741e4cf16c0 ("app/testpmd: VMDq and DCB updates") Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Bernard Iremonger <bernard.iremonger@intel.com> --- app/test-pmd/cmdline.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c index 2eb2fd6ae..8a6f246b4 100644 --- a/app/test-pmd/cmdline.c +++ b/app/test-pmd/cmdline.c @@ -8368,5 +8368,5 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, { int ret = -ENOTSUP; - uint16_t rx_mode = 0; + uint16_t vf_rxmode = 0; struct cmd_set_vf_rxmode *res = parsed_result; @@ -8374,11 +8374,11 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, if (!strcmp(res->what,"rxmode")) { if (!strcmp(res->mode, "AUPE")) - rx_mode |= ETH_VMDQ_ACCEPT_UNTAG; + vf_rxmode |= ETH_VMDQ_ACCEPT_UNTAG; else if (!strcmp(res->mode, "ROPE")) - rx_mode |= ETH_VMDQ_ACCEPT_HASH_UC; + vf_rxmode |= ETH_VMDQ_ACCEPT_HASH_UC; else if (!strcmp(res->mode, "BAM")) - rx_mode |= ETH_VMDQ_ACCEPT_BROADCAST; + vf_rxmode |= ETH_VMDQ_ACCEPT_BROADCAST; else if (!strncmp(res->mode, "MPE",3)) - rx_mode |= ETH_VMDQ_ACCEPT_MULTICAST; + vf_rxmode |= ETH_VMDQ_ACCEPT_MULTICAST; } @@ -8388,10 +8388,10 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, if (ret == -ENOTSUP) ret = rte_pmd_ixgbe_set_vf_rxmode(res->port_id, res->vf_id, - rx_mode, (uint8_t)is_on); + vf_rxmode, (uint8_t)is_on); #endif #ifdef RTE_LIBRTE_BNXT_PMD if (ret == -ENOTSUP) ret = rte_pmd_bnxt_set_vf_rxmode(res->port_id, res->vf_id, - rx_mode, (uint8_t)is_on); + vf_rxmode, (uint8_t)is_on); #endif if (ret < 0) -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.666007258 +0100 +++ 0019-app-testpmd-rename-ambiguous-VF-config-variable.patch 2019-09-05 10:36:47.513700450 +0100 @@ -1 +1 @@ -From 5e16d9447a1e3404abd38fe4da6ea4f6c8addd05 Mon Sep 17 00:00:00 2001 +From 2b0c72026751c24b726bc7be0fb89ca42b2a858e Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 5e16d9447a1e3404abd38fe4da6ea4f6c8addd05 ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -21 +22 @@ -index a28362d88..56783aa13 100644 +index 2eb2fd6ae..8a6f246b4 100644 @@ -24 +25 @@ -@@ -8524,5 +8524,5 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, +@@ -8368,5 +8368,5 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, @@ -31 +32 @@ -@@ -8530,11 +8530,11 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, +@@ -8374,11 +8374,11 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, @@ -47 +48 @@ -@@ -8544,10 +8544,10 @@ cmd_set_vf_rxmode_parsed(void *parsed_result, +@@ -8388,10 +8388,10 @@ cmd_set_vf_rxmode_parsed(void *parsed_result,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/9fcd5f3deee26954f0c4b1dd6c3bbfad6f33d783 Thanks. Kevin Traynor --- From 9fcd5f3deee26954f0c4b1dd6c3bbfad6f33d783 Mon Sep 17 00:00:00 2001 From: Sunil Kumar Kori <skori@marvell.com> Date: Thu, 25 Jul 2019 13:54:10 +0530 Subject: [PATCH] examples/ip_frag: remove Tx fast free offload flag [ upstream commit ed553e3db4a84af0ddac0d898476333d61adb93a ] Application uses different pool to allocate direct and indirect mbufs which are further spliced together to consturct a fragmented packet and same is transmitted over the port which is configured with DEV_TX_OFFLOAD_MBUF_FAST_FREE enabled i.e. all segments must belong to the same pool. But constructed packet violates the conditions. So fixing DEV_TX_OFFLOAD_MBUF_FAST_FREE flag during device configuration. Fixes: fdb9eff67f0c ("examples/ip_fragmentation: convert to new offloads API") Signed-off-by: Sunil Kumar Kori <skori@marvell.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> --- examples/ip_fragmentation/main.c | 3 --- 1 file changed, 3 deletions(-) diff --git a/examples/ip_fragmentation/main.c b/examples/ip_fragmentation/main.c index ed78f0dd8..68d40c19a 100644 --- a/examples/ip_fragmentation/main.c +++ b/examples/ip_fragmentation/main.c @@ -922,7 +922,4 @@ main(int argc, char **argv) if (n_tx_queue > MAX_TX_QUEUE_PER_PORT) n_tx_queue = MAX_TX_QUEUE_PER_PORT; - if (dev_info.tx_offload_capa & DEV_TX_OFFLOAD_MBUF_FAST_FREE) - local_port_conf.txmode.offloads |= - DEV_TX_OFFLOAD_MBUF_FAST_FREE; ret = rte_eth_dev_configure(portid, 1, (uint16_t)n_tx_queue, &local_port_conf); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.749916533 +0100 +++ 0020-examples-ip_frag-remove-Tx-fast-free-offload-flag.patch 2019-09-05 10:36:47.515700403 +0100 @@ -1 +1 @@ -From ed553e3db4a84af0ddac0d898476333d61adb93a Mon Sep 17 00:00:00 2001 +From 9fcd5f3deee26954f0c4b1dd6c3bbfad6f33d783 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ed553e3db4a84af0ddac0d898476333d61adb93a ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index 03be0c12e..324d60773 100644 +index ed78f0dd8..68d40c19a 100644 @@ -30 +31 @@ -@@ -940,7 +940,4 @@ main(int argc, char **argv) +@@ -922,7 +922,4 @@ main(int argc, char **argv)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/797ad03ba206449099ead390cb9a0bbb6f7361e9 Thanks. Kevin Traynor --- From 797ad03ba206449099ead390cb9a0bbb6f7361e9 Mon Sep 17 00:00:00 2001 From: Harman Kalra <hkalra@marvell.com> Date: Thu, 25 Jul 2019 14:24:43 +0000 Subject: [PATCH] examples/ptpclient: fix delay request message [ upstream commit 376aa383e70ac3b66f4d7b6cc33d9971331a3915 ] Observed an issue with the length and domain number of the delay request message sent out by the client. Due to which delay response from master was not received. Fixes: ab129e9065a5 ("examples/ptpclient: add minimal PTP client") Signed-off-by: Harman Kalra <hkalra@marvell.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com> --- examples/ptpclient/ptpclient.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/examples/ptpclient/ptpclient.c b/examples/ptpclient/ptpclient.c index 82ae71c19..89f19cadb 100644 --- a/examples/ptpclient/ptpclient.c +++ b/examples/ptpclient/ptpclient.c @@ -234,5 +234,9 @@ port_init(uint16_t port, struct rte_mempool *mbuf_pool) /* Enable timesync timestamping for the Ethernet device */ - rte_eth_timesync_enable(port); + retval = rte_eth_timesync_enable(port); + if (retval < 0) { + printf("Timesync enable failed: %d\n", retval); + return retval; + } /* Enable RX in promiscuous mode for the Ethernet device. */ @@ -414,4 +418,7 @@ parse_fup(struct ptpv2_data_slave_ordinary *ptp_data) ptp_msg->delay_req.hdr.control = 1; ptp_msg->delay_req.hdr.log_message_interval = 127; + ptp_msg->delay_req.hdr.message_length = + htons(sizeof(struct delay_req_msg)); + ptp_msg->delay_req.hdr.domain_number = ptp_hdr->domain_number; /* Set up clock id. */ -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.809262245 +0100 +++ 0021-examples-ptpclient-fix-delay-request-message.patch 2019-09-05 10:36:47.516700379 +0100 @@ -1 +1 @@ -From 376aa383e70ac3b66f4d7b6cc33d9971331a3915 Mon Sep 17 00:00:00 2001 +From 797ad03ba206449099ead390cb9a0bbb6f7361e9 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 376aa383e70ac3b66f4d7b6cc33d9971331a3915 ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ -index 95b0c176e..31778fd95 100644 +index 82ae71c19..89f19cadb 100644
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/1683558c6ede805873f48c78fb34fe689f678619 Thanks. Kevin Traynor --- From 1683558c6ede805873f48c78fb34fe689f678619 Mon Sep 17 00:00:00 2001 From: Anatoly Burakov <anatoly.burakov@intel.com> Date: Wed, 24 Jul 2019 16:47:31 +0100 Subject: [PATCH] test: enable installing app with meson [ upstream commit cef26406ba22124a6ad6441a7ffee62bb44e9581 ] Currently, the test app is not being installed by default when built and installed with meson build system. Fix that to enable installation of the test app alongside other DPDK apps. Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> --- test/test/meson.build | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test/meson.build b/test/test/meson.build index cd4035a68..b7babbad1 100644 --- a/test/test/meson.build +++ b/test/test/meson.build @@ -295,5 +295,5 @@ if get_option('tests') c_args: [cflags, '-DALLOW_EXPERIMENTAL_API'], install_rpath: driver_install_path, - install: false) + install: true) # some perf tests (eg: memcpy perf autotest)take very long -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.868832504 +0100 +++ 0022-test-enable-installing-app-with-meson.patch 2019-09-05 10:36:47.517700355 +0100 @@ -1 +1 @@ -From cef26406ba22124a6ad6441a7ffee62bb44e9581 Mon Sep 17 00:00:00 2001 +From 1683558c6ede805873f48c78fb34fe689f678619 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit cef26406ba22124a6ad6441a7ffee62bb44e9581 ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -16 +17 @@ - app/test/meson.build | 2 +- + test/test/meson.build | 2 +- @@ -19,9 +20,9 @@ -diff --git a/app/test/meson.build b/app/test/meson.build -index 1834897bf..c50b20275 100644 ---- a/app/test/meson.build -+++ b/app/test/meson.build -@@ -360,5 +360,5 @@ dpdk_test = executable('dpdk-test', - c_args: [cflags, '-DALLOW_EXPERIMENTAL_API'], - install_rpath: driver_install_path, -- install: false) -+ install: true) +diff --git a/test/test/meson.build b/test/test/meson.build +index cd4035a68..b7babbad1 100644 +--- a/test/test/meson.build ++++ b/test/test/meson.build +@@ -295,5 +295,5 @@ if get_option('tests') + c_args: [cflags, '-DALLOW_EXPERIMENTAL_API'], + install_rpath: driver_install_path, +- install: false) ++ install: true) @@ -29 +30 @@ - # some perf tests (eg: memcpy perf autotest)take very long + # some perf tests (eg: memcpy perf autotest)take very long
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/a661dbf0ca7e9ee7b012fe24a0cd4114529e7e28 Thanks. Kevin Traynor --- From a661dbf0ca7e9ee7b012fe24a0cd4114529e7e28 Mon Sep 17 00:00:00 2001 From: Vamsi Attunuru <vattunuru@marvell.com> Date: Mon, 29 Jul 2019 10:08:50 +0200 Subject: [PATCH] test/eal: fix --socket-mem option [ upstream commit ae0976c37bbc2748faa1c2d0cac273c7733f34b8 ] eal flag autotest fails when multiple mem size flags are passed to --socket-mem option irrespective of RTE_MAX_NUMA_NODES and the number of available sockets on the test system. Fixes: 45f1b6e8680a ("app: add new tests on eal flags") Signed-off-by: Vamsi Attunuru <vattunuru@marvell.com> Signed-off-by: David Marchand <david.marchand@redhat.com> Reviewed-by: Vamsi Attunuru <vattunuru@marvell.com> Tested-by: Vamsi Attunuru <vattunuru@marvell.com> --- test/test/test_eal_flags.c | 144 ++++++++++++++++++++++--------------- 1 file changed, 86 insertions(+), 58 deletions(-) diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c index 775ccd3dd..f70fb07e1 100644 --- a/test/test/test_eal_flags.c +++ b/test/test/test_eal_flags.c @@ -1134,4 +1134,38 @@ test_file_prefix(void) } +/* This function writes in passed buf pointer a valid --socket-mem= option + * for num_sockets then concatenates the provided suffix string. + * + * Example for num_sockets 4, mem "2", suffix "plop" + * --socket-mem=2,2,2,2plop + */ +static void +populate_socket_mem_param(int num_sockets, const char *mem, + const char *suffix, char *buf, size_t buf_size) +{ + unsigned int offset = 0; + int written; + int i; + + written = snprintf(&buf[offset], buf_size - offset, "--socket-mem="); + if (written < 0 || written + offset >= buf_size) + return; + offset += written; + + for (i = 0; i < num_sockets - 1; i++) { + written = snprintf(&buf[offset], buf_size - offset, + "%s,", mem); + if (written < 0 || written + offset >= buf_size) + return; + offset += written; + } + + written = snprintf(&buf[offset], buf_size - offset, "%s%s", mem, + suffix); + if (written < 0 || written + offset >= buf_size) + return; + offset += written; +} + /* * Tests for correct handling of -m and --socket-mem flags @@ -1161,22 +1195,27 @@ test_memory_flags(void) /* valid (zero) --socket-mem flag */ + char arg2_socket_mem[SOCKET_MEM_STRLEN]; const char *argv2[] = {prgname, "-c", "10", "-n", "2", - "--file-prefix=" memtest, "--socket-mem=0,0,0,0"}; + "--file-prefix=" memtest, arg2_socket_mem}; /* invalid (incomplete) --socket-mem flag */ + char arg3_socket_mem[SOCKET_MEM_STRLEN]; const char *argv3[] = {prgname, "-c", "10", "-n", "2", - "--file-prefix=" memtest, "--socket-mem=2,2,"}; + "--file-prefix=" memtest, arg3_socket_mem}; /* invalid (mixed with invalid data) --socket-mem flag */ + char arg4_socket_mem[SOCKET_MEM_STRLEN]; const char *argv4[] = {prgname, "-c", "10", "-n", "2", - "--file-prefix=" memtest, "--socket-mem=2,2,Fred"}; + "--file-prefix=" memtest, arg4_socket_mem}; /* invalid (with numeric value as last character) --socket-mem flag */ + char arg5_socket_mem[SOCKET_MEM_STRLEN]; const char *argv5[] = {prgname, "-c", "10", "-n", "2", - "--file-prefix=" memtest, "--socket-mem=2,2,Fred0"}; + "--file-prefix=" memtest, arg5_socket_mem}; /* invalid (with empty socket) --socket-mem flag */ + char arg6_socket_mem[SOCKET_MEM_STRLEN]; const char *argv6[] = {prgname, "-c", "10", "-n", "2", - "--file-prefix=" memtest, "--socket-mem=2,,2"}; + "--file-prefix=" memtest, arg6_socket_mem}; /* invalid (null) --socket-mem flag */ @@ -1185,16 +1224,13 @@ test_memory_flags(void) /* valid --socket-mem specified together with -m flag */ + char arg8_socket_mem[SOCKET_MEM_STRLEN]; const char *argv8[] = {prgname, "-c", "10", "-n", "2", - "--file-prefix=" memtest, "-m", DEFAULT_MEM_SIZE, "--socket-mem=2,2"}; - - /* construct an invalid socket mask with 2 megs on each socket plus - * extra 2 megs on socket that doesn't exist on current system */ - char invalid_socket_mem[SOCKET_MEM_STRLEN]; - char buf[SOCKET_MEM_STRLEN]; /* to avoid copying string onto itself */ + "--file-prefix=" memtest, "-m", DEFAULT_MEM_SIZE, + arg8_socket_mem}; #ifdef RTE_EXEC_ENV_BSDAPP - int i, num_sockets = 1; + int num_sockets = 1; #else - int i, num_sockets = RTE_MIN(get_number_of_sockets(), + int num_sockets = RTE_MIN(get_number_of_sockets(), RTE_MAX_NUMA_NODES); #endif @@ -1205,40 +1241,11 @@ test_memory_flags(void) } - snprintf(invalid_socket_mem, sizeof(invalid_socket_mem), "--socket-mem="); - - /* add one extra socket */ - for (i = 0; i < num_sockets + 1; i++) { - snprintf(buf, sizeof(buf), "%s%s", invalid_socket_mem, DEFAULT_MEM_SIZE); - strlcpy(invalid_socket_mem, buf, sizeof(invalid_socket_mem)); - - if (num_sockets + 1 - i > 1) { - snprintf(buf, sizeof(buf), "%s,", invalid_socket_mem); - strlcpy(invalid_socket_mem, buf, - sizeof(invalid_socket_mem)); - } - } - - /* construct a valid socket mask with 2 megs on each existing socket */ - char valid_socket_mem[SOCKET_MEM_STRLEN]; - - snprintf(valid_socket_mem, sizeof(valid_socket_mem), "--socket-mem="); - - /* add one extra socket */ - for (i = 0; i < num_sockets; i++) { - snprintf(buf, sizeof(buf), "%s%s", valid_socket_mem, DEFAULT_MEM_SIZE); - strlcpy(valid_socket_mem, buf, sizeof(valid_socket_mem)); - - if (num_sockets - i > 1) { - snprintf(buf, sizeof(buf), "%s,", valid_socket_mem); - strlcpy(valid_socket_mem, buf, - sizeof(valid_socket_mem)); - } - } - /* invalid --socket-mem flag (with extra socket) */ + char invalid_socket_mem[SOCKET_MEM_STRLEN]; const char *argv9[] = {prgname, "-c", "10", "-n", "2", "--file-prefix=" memtest, invalid_socket_mem}; /* valid --socket-mem flag */ + char valid_socket_mem[SOCKET_MEM_STRLEN]; const char *argv10[] = {prgname, "-c", "10", "-n", "2", "--file-prefix=" memtest, valid_socket_mem}; @@ -1258,4 +1265,7 @@ test_memory_flags(void) return -1; } + + populate_socket_mem_param(num_sockets, "0", "", + arg2_socket_mem, sizeof(arg2_socket_mem)); if (launch_proc(argv2) != 0) { printf("Error - process failed with valid (zero) --socket-mem!\n"); @@ -1263,27 +1273,39 @@ test_memory_flags(void) } - if (launch_proc(argv3) == 0) { - printf("Error - process run ok with invalid " + if (num_sockets > 1) { + populate_socket_mem_param(num_sockets - 1, "2", ",", + arg3_socket_mem, sizeof(arg3_socket_mem)); + if (launch_proc(argv3) == 0) { + printf("Error - process run ok with invalid " "(incomplete) --socket-mem!\n"); - return -1; - } + return -1; + } - if (launch_proc(argv4) == 0) { - printf("Error - process run ok with invalid " + populate_socket_mem_param(num_sockets - 1, "2", ",Fred", + arg4_socket_mem, sizeof(arg4_socket_mem)); + if (launch_proc(argv4) == 0) { + printf("Error - process run ok with invalid " "(mixed with invalid input) --socket-mem!\n"); - return -1; - } + return -1; + } - if (launch_proc(argv5) == 0) { - printf("Error - process run ok with invalid " + populate_socket_mem_param(num_sockets - 1, "2", ",Fred0", + arg5_socket_mem, sizeof(arg5_socket_mem)); + if (launch_proc(argv5) == 0) { + printf("Error - process run ok with invalid " "(mixed with invalid input with a numeric value as " "last character) --socket-mem!\n"); - return -1; + return -1; + } } - if (launch_proc(argv6) == 0) { - printf("Error - process run ok with invalid " + if (num_sockets > 2) { + populate_socket_mem_param(num_sockets - 2, "2", ",,2", + arg6_socket_mem, sizeof(arg6_socket_mem)); + if (launch_proc(argv6) == 0) { + printf("Error - process run ok with invalid " "(with empty socket) --socket-mem!\n"); - return -1; + return -1; + } } @@ -1293,4 +1315,6 @@ test_memory_flags(void) } + populate_socket_mem_param(num_sockets, "2", "", + arg8_socket_mem, sizeof(arg8_socket_mem)); if (launch_proc(argv8) == 0) { printf("Error - process run ok with --socket-mem and -m specified!\n"); @@ -1298,4 +1322,6 @@ test_memory_flags(void) } + populate_socket_mem_param(num_sockets + 1, "2", "", + invalid_socket_mem, sizeof(invalid_socket_mem)); if (launch_proc(argv9) == 0) { printf("Error - process run ok with extra socket in --socket-mem!\n"); @@ -1303,4 +1329,6 @@ test_memory_flags(void) } + populate_socket_mem_param(num_sockets, "2", "", + valid_socket_mem, sizeof(valid_socket_mem)); if (launch_proc(argv10) != 0) { printf("Error - process failed with valid --socket-mem!\n"); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.926939879 +0100 +++ 0023-test-eal-fix-socket-mem-option.patch 2019-09-05 10:36:47.518700331 +0100 @@ -1 +1 @@ -From ae0976c37bbc2748faa1c2d0cac273c7733f34b8 Mon Sep 17 00:00:00 2001 +From a661dbf0ca7e9ee7b012fe24a0cd4114529e7e28 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ae0976c37bbc2748faa1c2d0cac273c7733f34b8 ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -18 +19 @@ - app/test/test_eal_flags.c | 144 +++++++++++++++++++++++--------------- + test/test/test_eal_flags.c | 144 ++++++++++++++++++++++--------------- @@ -21,5 +22,5 @@ -diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c -index 672ca0a7c..827ea8831 100644 ---- a/app/test/test_eal_flags.c -+++ b/app/test/test_eal_flags.c -@@ -1251,4 +1251,38 @@ test_file_prefix(void) +diff --git a/test/test/test_eal_flags.c b/test/test/test_eal_flags.c +index 775ccd3dd..f70fb07e1 100644 +--- a/test/test/test_eal_flags.c ++++ b/test/test/test_eal_flags.c +@@ -1134,4 +1134,38 @@ test_file_prefix(void) @@ -64 +65 @@ -@@ -1278,22 +1312,27 @@ test_memory_flags(void) +@@ -1161,22 +1195,27 @@ test_memory_flags(void) @@ -68 +69 @@ - const char *argv2[] = {prgname, + const char *argv2[] = {prgname, "-c", "10", "-n", "2", @@ -74 +75 @@ - const char *argv3[] = {prgname, + const char *argv3[] = {prgname, "-c", "10", "-n", "2", @@ -80 +81 @@ - const char *argv4[] = {prgname, + const char *argv4[] = {prgname, "-c", "10", "-n", "2", @@ -86 +87 @@ - const char *argv5[] = {prgname, + const char *argv5[] = {prgname, "-c", "10", "-n", "2", @@ -92 +93 @@ - const char *argv6[] = {prgname, + const char *argv6[] = {prgname, "-c", "10", "-n", "2", @@ -97 +98 @@ -@@ -1302,16 +1341,13 @@ test_memory_flags(void) +@@ -1185,16 +1224,13 @@ test_memory_flags(void) @@ -101 +102 @@ - const char *argv8[] = {prgname, + const char *argv8[] = {prgname, "-c", "10", "-n", "2", @@ -111 +112 @@ - #ifdef RTE_EXEC_ENV_FREEBSD + #ifdef RTE_EXEC_ENV_BSDAPP @@ -119 +120 @@ -@@ -1322,40 +1358,11 @@ test_memory_flags(void) +@@ -1205,40 +1241,11 @@ test_memory_flags(void) @@ -155 +156 @@ - const char *argv9[] = {prgname, + const char *argv9[] = {prgname, "-c", "10", "-n", "2", @@ -160 +161 @@ - const char *argv10[] = {prgname, + const char *argv10[] = {prgname, "-c", "10", "-n", "2", @@ -162 +163 @@ -@@ -1375,4 +1382,7 @@ test_memory_flags(void) +@@ -1258,4 +1265,7 @@ test_memory_flags(void) @@ -170 +171 @@ -@@ -1380,27 +1390,39 @@ test_memory_flags(void) +@@ -1263,27 +1273,39 @@ test_memory_flags(void) @@ -224 +225 @@ -@@ -1410,4 +1432,6 @@ test_memory_flags(void) +@@ -1293,4 +1315,6 @@ test_memory_flags(void) @@ -231 +232 @@ -@@ -1415,4 +1439,6 @@ test_memory_flags(void) +@@ -1298,4 +1322,6 @@ test_memory_flags(void) @@ -238 +239 @@ -@@ -1420,4 +1446,6 @@ test_memory_flags(void) +@@ -1303,4 +1329,6 @@ test_memory_flags(void)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/018688e92e03b44335f038cb2fef962729ea5721 Thanks. Kevin Traynor --- From 018688e92e03b44335f038cb2fef962729ea5721 Mon Sep 17 00:00:00 2001 From: Jerin Jacob <jerinj@marvell.com> Date: Tue, 30 Jul 2019 16:34:06 +0530 Subject: [PATCH] net/virtio: fix build [ upstream commit 198cce71104370de0be3085d3772b502e2aa4984 ] Add extern to variable declaration to avoid some compiler treating it as variable definition. build error log: lib/librte_pmd_virtio.a(vhost_kernel.o):(.rodata+0x110): multiple definition of `vhost_msg_strings' lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0): first defined here lib/librte_pmd_virtio.a(virtio_user_dev.o):(.rodata+0xe8): multiple definition of `vhost_msg_strings' lib/librte_pmd_virtio.a(vhost_user.o):(.data.rel.ro.local+0x0): first defined here Fixes: 33d24d65fe2b ("net/virtio-user: abstract backend operations") Signed-off-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> --- drivers/net/virtio/virtio_user/vhost.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/virtio/virtio_user/vhost.h b/drivers/net/virtio/virtio_user/vhost.h index 55f47036b..1e784e58e 100644 --- a/drivers/net/virtio/virtio_user/vhost.h +++ b/drivers/net/virtio/virtio_user/vhost.h @@ -68,5 +68,5 @@ enum vhost_user_request { }; -const char * const vhost_msg_strings[VHOST_USER_MAX]; +extern const char * const vhost_msg_strings[VHOST_USER_MAX]; struct vhost_memory_region { -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:48.986133594 +0100 +++ 0024-net-virtio-fix-build.patch 2019-09-05 10:36:47.519700307 +0100 @@ -1 +1 @@ -From 198cce71104370de0be3085d3772b502e2aa4984 Mon Sep 17 00:00:00 2001 +From 018688e92e03b44335f038cb2fef962729ea5721 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 198cce71104370de0be3085d3772b502e2aa4984 ] + @@ -21 +22,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/14340ceac10347adcd0a0d25871203f7740710b4 Thanks. Kevin Traynor --- From 14340ceac10347adcd0a0d25871203f7740710b4 Mon Sep 17 00:00:00 2001 From: Hariprasad Govindharajan <hariprasad.govindharajan@intel.com> Date: Tue, 30 Jul 2019 14:26:38 +0100 Subject: [PATCH] examples/l3fwd: fix unaligned memory access on x86 [ upstream commit d7f936190e8d8ad3f2c447c3e59d754501c44884 ] Fix unaligned memory access when reading IPv6 header which leads to segmentation fault by changing aligned memory read to unaligned memory read. Bugzilla ID: 279 Fixes: 64d3955de1de ("examples/l3fwd: fix ARM build") Signed-off-by: Hariprasad Govindharajan <hariprasad.govindharajan@intel.com> Reviewed-by: Bruce Richardson <bruce.richardson@intel.com> Reviewed-by: Jerin Jacob <jerinj@marvell.com> Reviewed-by: David Christensen <drc@linux.vnet.ibm.com> Reviewed-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> Tested-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com> --- examples/l3fwd/l3fwd_em.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/examples/l3fwd/l3fwd_em.c b/examples/l3fwd/l3fwd_em.c index fa8f82be6..76c5f714f 100644 --- a/examples/l3fwd/l3fwd_em.c +++ b/examples/l3fwd/l3fwd_em.c @@ -286,5 +286,9 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct) * and src IP address higher 32 bits. */ +#if defined RTE_ARCH_X86 + key.xmm[1] = _mm_loadu_si128(data1); +#else key.xmm[1] = *(xmm_t *)data1; +#endif /* -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.046343588 +0100 +++ 0025-examples-l3fwd-fix-unaligned-memory-access-on-x86.patch 2019-09-05 10:36:47.520700283 +0100 @@ -1 +1 @@ -From d7f936190e8d8ad3f2c447c3e59d754501c44884 Mon Sep 17 00:00:00 2001 +From 14340ceac10347adcd0a0d25871203f7740710b4 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit d7f936190e8d8ad3f2c447c3e59d754501c44884 ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -25 +26 @@ -index 5f499e005..74a7c8fa4 100644 +index fa8f82be6..76c5f714f 100644 @@ -28 +29 @@ -@@ -288,5 +288,9 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct) +@@ -286,5 +286,9 @@ em_get_ipv6_dst_port(void *ipv6_hdr, uint16_t portid, void *lookup_struct)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/c0238120c05529f0f26505b6196edd53ee37e050 Thanks. Kevin Traynor --- From c0238120c05529f0f26505b6196edd53ee37e050 Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Tue, 30 Jul 2019 17:05:22 +0200 Subject: [PATCH] eal: fix control thread affinity with --lcores MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ upstream commit b6be16acfeb1cc58c7f37638f007e302527657cd ] The ctrl thread cpu affinity setting has been broken when using --lcores. Using -l/-c options makes each lcore associated to a physical cpu in a 1:1 fashion. On the contrary, when using --lcores, each lcore cpu affinity can be set to a list of any online cpu on the system. To handle both cases, each lcore cpu affinity is considered and removed from the process startup cpu affinity. Introduced macros to manipulate dpdk cpu sets in both Linux and FreeBSD. Examples on a 8 cores Linux system: $ cd /sys/fs/cgroup/cpuset/ $ mkdir dpdk $ cd dpdk $ echo 4-7 > cpuset.cpus $ echo 0 > cpuset.mems $ echo $$ > tasks Before the fix: $ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \ --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048 8427 cpu_list=4-5,7 testpmd 8428 cpu_list=4-6 eal-intr-thread 8429 cpu_list=4-6 rte_mp_handle 8430 cpu_list=4-5,7 lcore-slave-7 $ taskset -c 7 \ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \ --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048 EAL: Detected 8 lcore(s) EAL: Detected 1 NUMA nodes EAL: Failed to create thread for interrupt handling EAL: FATAL: Cannot init interrupt-handling thread EAL: Cannot init interrupt-handling thread PANIC in main(): Cannot init EAL After the fix: $ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \ --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048 15214 cpu_list=4-5,7 testpmd 15215 cpu_list=6 eal-intr-thread 15216 cpu_list=6 rte_mp_handle 15217 cpu_list=4-5,7 lcore-slave-7 $ taskset -c 7 \ ./master/app/testpmd --master-lcore 0 --lcores '(0,7)@(7,4,5)' \ --no-huge --no-pci -m 512 -- -i --total-num-mbufs=2048 15297 cpu_list=4-5,7 testpmd 15298 cpu_list=4-5,7 eal-intr-thread 15299 cpu_list=4-5,7 rte_mp_handle 15300 cpu_list=4-5,7 lcore-slave-7 Bugzilla ID: 322 Fixes: c3568ea37670 ("eal: restrict control threads to startup CPU affinity") Reported-by: Johan Källström <johan.kallstrom@ericsson.com> Signed-off-by: David Marchand <david.marchand@redhat.com> --- lib/librte_eal/common/eal_common_options.c | 16 ++++++------ lib/librte_eal/common/include/rte_lcore.h | 29 ++++++++++++++++++++++ 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c index 79efb15d0..f742d4d38 100644 --- a/lib/librte_eal/common/eal_common_options.c +++ b/lib/librte_eal/common/eal_common_options.c @@ -1451,9 +1451,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) for (lcore_id = 0; lcore_id < RTE_MAX_LCORE; lcore_id++) { - if (eal_cpu_detected(lcore_id) && - rte_lcore_has_role(lcore_id, ROLE_OFF)) { - CPU_SET(lcore_id, cpuset); - } + if (rte_lcore_has_role(lcore_id, ROLE_OFF)) + continue; + RTE_CPU_OR(cpuset, cpuset, &lcore_config[lcore_id].cpuset); } + RTE_CPU_NOT(cpuset, cpuset); if (pthread_getaffinity_np(pthread_self(), sizeof(rte_cpuset_t), @@ -1463,7 +1463,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) RTE_CPU_AND(cpuset, cpuset, &default_set); - /* if no detected CPU is off, use master core */ - if (!CPU_COUNT(cpuset)) - CPU_SET(rte_get_master_lcore(), cpuset); + /* if no remaining cpu, use master lcore cpu affinity */ + if (!CPU_COUNT(cpuset)) { + memcpy(cpuset, &lcore_config[rte_get_master_lcore()].cpuset, + sizeof(*cpuset)); + } } diff --git a/lib/librte_eal/common/include/rte_lcore.h b/lib/librte_eal/common/include/rte_lcore.h index dea17f500..31af0e501 100644 --- a/lib/librte_eal/common/include/rte_lcore.h +++ b/lib/librte_eal/common/include/rte_lcore.h @@ -26,4 +26,18 @@ extern "C" { typedef cpu_set_t rte_cpuset_t; #define RTE_CPU_AND(dst, src1, src2) CPU_AND(dst, src1, src2) +#define RTE_CPU_OR(dst, src1, src2) CPU_OR(dst, src1, src2) +#define RTE_CPU_FILL(set) do \ +{ \ + unsigned int i; \ + CPU_ZERO(set); \ + for (i = 0; i < CPU_SETSIZE; i++) \ + CPU_SET(i, set); \ +} while (0) +#define RTE_CPU_NOT(dst, src) do \ +{ \ + cpu_set_t tmp; \ + RTE_CPU_FILL(&tmp); \ + CPU_XOR(dst, &tmp, src); \ +} while (0) #elif defined(__FreeBSD__) #include <pthread_np.h> @@ -36,4 +50,19 @@ typedef cpuset_t rte_cpuset_t; CPU_COPY(&tmp, dst); \ } while (0) +#define RTE_CPU_OR(dst, src1, src2) do \ +{ \ + cpuset_t tmp; \ + CPU_COPY(src1, &tmp); \ + CPU_OR(&tmp, src2); \ + CPU_COPY(&tmp, dst); \ +} while (0) +#define RTE_CPU_FILL(set) CPU_FILL(set) +#define RTE_CPU_NOT(dst, src) do \ +{ \ + cpuset_t tmp; \ + CPU_FILL(&tmp); \ + CPU_NAND(&tmp, src); \ + CPU_COPY(&tmp, dst); \ +} while (0) #endif -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.105515044 +0100 +++ 0026-eal-fix-control-thread-affinity-with-lcores.patch 2019-09-05 10:36:47.522700235 +0100 @@ -1 +1 @@ -From b6be16acfeb1cc58c7f37638f007e302527657cd Mon Sep 17 00:00:00 2001 +From c0238120c05529f0f26505b6196edd53ee37e050 Mon Sep 17 00:00:00 2001 @@ -8,0 +9,2 @@ +[ upstream commit b6be16acfeb1cc58c7f37638f007e302527657cd ] + @@ -71 +72,0 @@ -Cc: stable@dpdk.org @@ -81 +82 @@ -index 512d5088e..7b182b82d 100644 +index 79efb15d0..f742d4d38 100644 @@ -84 +85 @@ -@@ -1453,9 +1453,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) +@@ -1451,9 +1451,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) @@ -98 +99 @@ -@@ -1465,7 +1465,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) +@@ -1463,7 +1463,9 @@ compute_ctrl_threads_cpuset(struct internal_config *internal_cfg) @@ -112 +113 @@ -index 411df30d5..c86f72eb1 100644 +index dea17f500..31af0e501 100644
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/784e0fe1c4421802ac53cee9c5fc4f6cdc33c2a7 Thanks. Kevin Traynor --- From 784e0fe1c4421802ac53cee9c5fc4f6cdc33c2a7 Mon Sep 17 00:00:00 2001 From: Thomas Monjalon <thomas@monjalon.net> Date: Tue, 30 Jul 2019 17:06:21 +0200 Subject: [PATCH] doc: update features supported by mlx [ upstream commit 8cd3a3993859974fb03ea19aa8ac3b64d4af7c63 ] Flow control was not documented as a supported feature since the first fill of features matrix for mlx drivers. Flow API and CRC offload flag support in mlx4 were missing in the feature matrix when they were implemented (see below commits). Fixes: 46d5736a7049 ("net/mlx4: support basic flow items and actions") Fixes: ce07b1514d59 ("net/mlx4: fix CRC stripping capability report") Fixes: e86b85ca757b ("doc: fill nics features matrix for mlx") Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: Matan Azrad <matan@mellanox.com> --- doc/guides/nics/features/mlx4.ini | 3 +++ doc/guides/nics/features/mlx5.ini | 1 + doc/guides/nics/mlx5.rst | 1 + 3 files changed, 5 insertions(+) diff --git a/doc/guides/nics/features/mlx4.ini b/doc/guides/nics/features/mlx4.ini index 98a3f6119..659c6b171 100644 --- a/doc/guides/nics/features/mlx4.ini +++ b/doc/guides/nics/features/mlx4.ini @@ -22,4 +22,7 @@ RSS hash = Y SR-IOV = Y VLAN filter = Y +Flow control = Y +Flow API = Y +CRC offload = Y L3 checksum offload = Y L4 checksum offload = Y diff --git a/doc/guides/nics/features/mlx5.ini b/doc/guides/nics/features/mlx5.ini index b28b43e5c..d92d58958 100644 --- a/doc/guides/nics/features/mlx5.ini +++ b/doc/guides/nics/features/mlx5.ini @@ -26,4 +26,5 @@ SR-IOV = Y VLAN filter = Y Flow director = Y +Flow control = Y Flow API = Y CRC offload = Y diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst index 31238ae35..fb64fa3d6 100644 --- a/doc/guides/nics/mlx5.rst +++ b/doc/guides/nics/mlx5.rst @@ -57,4 +57,5 @@ Features - Default RSS operation with no hash key specification. - Configurable RETA table. +- Link flow control (pause frame). - Support for multiple MAC addresses. - VLAN filtering. -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.164223257 +0100 +++ 0027-doc-update-features-supported-by-mlx.patch 2019-09-05 10:36:47.524700187 +0100 @@ -1 +1 @@ -From 8cd3a3993859974fb03ea19aa8ac3b64d4af7c63 Mon Sep 17 00:00:00 2001 +From 784e0fe1c4421802ac53cee9c5fc4f6cdc33c2a7 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 8cd3a3993859974fb03ea19aa8ac3b64d4af7c63 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -26 +27 @@ -index 4502aa2a8..9b70089df 100644 +index 98a3f6119..659c6b171 100644 @@ -38 +39 @@ -index c0ebdbd5d..75469fc4b 100644 +index b28b43e5c..d92d58958 100644 @@ -41 +42 @@ -@@ -27,4 +27,5 @@ SR-IOV = Y +@@ -26,4 +26,5 @@ SR-IOV = Y @@ -48 +49 @@ -index 6f0c382ea..46538b8f1 100644 +index 31238ae35..fb64fa3d6 100644 @@ -51 +52 @@ -@@ -58,4 +58,5 @@ Features +@@ -57,4 +57,5 @@ Features
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/5636553a2ddf31e65ae51f6fe99c9a9fddd0cbf8 Thanks. Kevin Traynor --- From 5636553a2ddf31e65ae51f6fe99c9a9fddd0cbf8 Mon Sep 17 00:00:00 2001 From: Andrius Sirvys <andrius.sirvys@intel.com> Date: Mon, 8 Apr 2019 14:54:41 +0100 Subject: [PATCH] usertools: replace unsafe input function [ upstream commit 53f293c9a7833747d90b90bf33d12fe1d4f8ef1e ] LGTM static code analysis tool reports that the function 'input' is unsafe. Changed to use raw_input which then converts it using ast.literal_eval() which is safe. Fixes: d1b94da4a4e0 ("usertools: add client script for telemetry") Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com> Acked-by: Kevin Laatz <kevin.laatz@intel.com> --- usertools/dpdk-telemetry-client.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py index 6dcf62bac..4afa2f84c 100644 --- a/usertools/dpdk-telemetry-client.py +++ b/usertools/dpdk-telemetry-client.py @@ -14,4 +14,9 @@ API_UNREG = "{\"action\":2,\"command\":\"clients\",\"data\":{\"client_path\":\"" DEFAULT_FP = "/var/run/dpdk/default_client" +try: + raw_input # Python 2 +except NameError: + raw_input = input # Python 3 + class Socket: @@ -72,5 +77,5 @@ class Client: def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics for given client print("\nPlease enter the number of times you'd like to continuously request Metrics:") - n_requests = int(input("\n:")) + n_requests = int(ast.literal_eval(raw_input("\n:"))) print("\033[F") #Removes the user input from screen, cleans it up print("\033[K") @@ -87,5 +92,5 @@ class Client: try: - self.choice = int(input("\n:")) + self.choice = int(ast.literal_eval(raw_input("\n:"))) print("\033[F") #Removes the user input for screen, cleans it up print("\033[K") -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.219805512 +0100 +++ 0028-usertools-replace-unsafe-input-function.patch 2019-09-05 10:36:47.524700187 +0100 @@ -1 +1 @@ -From 53f293c9a7833747d90b90bf33d12fe1d4f8ef1e Mon Sep 17 00:00:00 2001 +From 5636553a2ddf31e65ae51f6fe99c9a9fddd0cbf8 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 53f293c9a7833747d90b90bf33d12fe1d4f8ef1e ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ -index 572ff56bb..4b0502ff9 100755 +index 6dcf62bac..4afa2f84c 100644 @@ -23 +24 @@ -@@ -16,4 +16,9 @@ GLOBAL_METRICS_REQ = "{\"action\":0,\"command\":\"global_stat_values\",\"data\": +@@ -14,4 +14,9 @@ API_UNREG = "{\"action\":2,\"command\":\"clients\",\"data\":{\"client_path\":\"" @@ -33 +34 @@ -@@ -74,5 +79,5 @@ class Client: +@@ -72,5 +77,5 @@ class Client: @@ -40 +41 @@ -@@ -95,5 +100,5 @@ class Client: +@@ -87,5 +92,5 @@ class Client:
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/a4f4d3fb2daac69af97ff247261bbc9563140088 Thanks. Kevin Traynor --- From a4f4d3fb2daac69af97ff247261bbc9563140088 Mon Sep 17 00:00:00 2001 From: Jerin Jacob <jerinj@marvell.com> Date: Wed, 17 Jul 2019 21:24:42 +0530 Subject: [PATCH] devtools: fix building kernel component tags [ upstream commit 7f12dfdcaec0b09bc7c077fd4a2481f8065b9991 ] Update devtools/build-tags.sh to account the kernel components under in kernel directory. Fixes: acaa9ee991b5 ("move kernel modules directories") Signed-off-by: Jerin Jacob <jerinj@marvell.com> --- devtools/build-tags.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devtools/build-tags.sh b/devtools/build-tags.sh index 78001f048..5bfbf7ed7 100755 --- a/devtools/build-tags.sh +++ b/devtools/build-tags.sh @@ -69,4 +69,5 @@ linux_sources() { find_sources "lib/librte_eal/linuxapp" '*.[chS]' + find_sources "kernel/linux" '*.[chS]' } @@ -74,4 +75,5 @@ bsd_sources() { find_sources "lib/librte_eal/bsdapp" '*.[chS]' + find_sources "kernel/freebsd" '*.[chS]' } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.277263481 +0100 +++ 0029-devtools-fix-building-kernel-component-tags.patch 2019-09-05 10:36:47.525700163 +0100 @@ -1 +1 @@ -From 7f12dfdcaec0b09bc7c077fd4a2481f8065b9991 Mon Sep 17 00:00:00 2001 +From a4f4d3fb2daac69af97ff247261bbc9563140088 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 7f12dfdcaec0b09bc7c077fd4a2481f8065b9991 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -18 +19 @@ -index d395da47e..dc037f92b 100755 +index 78001f048..5bfbf7ed7 100755 @@ -23 +24 @@ - find_sources "lib/librte_eal/linux" '*.[chS]' + find_sources "lib/librte_eal/linuxapp" '*.[chS]' @@ -29 +30 @@ - find_sources "lib/librte_eal/freebsd" '*.[chS]' + find_sources "lib/librte_eal/bsdapp" '*.[chS]'
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/86c74fb5f447be396ca763d7954bba41c19809a2 Thanks. Kevin Traynor --- From 86c74fb5f447be396ca763d7954bba41c19809a2 Mon Sep 17 00:00:00 2001 From: Aaron Conole <aconole@redhat.com> Date: Tue, 30 Jul 2019 17:31:23 -0400 Subject: [PATCH] test/flow_classify: fix undefined behavior [ upstream commit 0d36f32ed29be8ed6d517665cdc266335eb23541 ] The unit test for the flow classify introduced undefined behavior by using a corrupted list. Remove these tests as the invalid data is impossible to detect with the current API. Fixes: 9c9befea4f57 ("test: add flow classify unit tests") Signed-off-by: Aaron Conole <aconole@redhat.com> --- test/test/test_flow_classify.c | 30 +----------------------------- 1 file changed, 1 insertion(+), 29 deletions(-) diff --git a/test/test/test_flow_classify.c b/test/test/test_flow_classify.c index 5f5beeee7..90066713e 100644 --- a/test/test/test_flow_classify.c +++ b/test/test/test_flow_classify.c @@ -125,5 +125,4 @@ static struct rte_flow_item udp_item_bad = { RTE_FLOW_ITEM_TYPE_UDP, static struct rte_flow_item end_item = { RTE_FLOW_ITEM_TYPE_END, 0, 0, 0 }; -static struct rte_flow_item end_item_bad = { -1, 0, 0, 0 }; /* test TCP pattern: @@ -180,5 +179,4 @@ static struct rte_flow_action count_action_bad = { -1, 0}; static struct rte_flow_action end_action = { RTE_FLOW_ACTION_TYPE_END, 0}; -static struct rte_flow_action end_action_bad = { -1, 0}; static struct rte_flow_action actions[2]; @@ -383,5 +381,5 @@ test_invalid_patterns(void) pattern[1] = ipv4_udp_item_1; pattern[2] = udp_item_bad; - pattern[3] = end_item_bad; + pattern[3] = end_item; ret = rte_flow_classify_validate(cls->cls, &attr, pattern, @@ -457,30 +455,4 @@ test_invalid_actions(void) } - actions[0] = count_action; - actions[1] = end_action_bad; - - ret = rte_flow_classify_validate(cls->cls, &attr, pattern, - actions, &error); - if (!ret) { - printf("Line %i: rte_flow_classify_validate", __LINE__); - printf(" should have failed!\n"); - return -1; - } - - rule = rte_flow_classify_table_entry_add(cls->cls, &attr, pattern, - actions, &key_found, &error); - if (rule) { - printf("Line %i: flow_classify_table_entry_add", __LINE__); - printf(" should have failed!\n"); - return -1; - } - - ret = rte_flow_classify_table_entry_delete(cls->cls, rule); - if (!ret) { - printf("Line %i: rte_flow_classify_table_entry_delete", - __LINE__); - printf("should have failed!\n"); - return -1; - } return 0; } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.335117349 +0100 +++ 0030-test-flow_classify-fix-undefined-behavior.patch 2019-09-05 10:36:47.526700139 +0100 @@ -1 +1 @@ -From 0d36f32ed29be8ed6d517665cdc266335eb23541 Mon Sep 17 00:00:00 2001 +From 86c74fb5f447be396ca763d7954bba41c19809a2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 0d36f32ed29be8ed6d517665cdc266335eb23541 ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -15 +16 @@ - app/test/test_flow_classify.c | 30 +----------------------------- + test/test/test_flow_classify.c | 30 +----------------------------- @@ -18,5 +19,5 @@ -diff --git a/app/test/test_flow_classify.c b/app/test/test_flow_classify.c -index 6bbaad364..ff5265c6a 100644 ---- a/app/test/test_flow_classify.c -+++ b/app/test/test_flow_classify.c -@@ -126,5 +126,4 @@ static struct rte_flow_item udp_item_bad = { RTE_FLOW_ITEM_TYPE_UDP, +diff --git a/test/test/test_flow_classify.c b/test/test/test_flow_classify.c +index 5f5beeee7..90066713e 100644 +--- a/test/test/test_flow_classify.c ++++ b/test/test/test_flow_classify.c +@@ -125,5 +125,4 @@ static struct rte_flow_item udp_item_bad = { RTE_FLOW_ITEM_TYPE_UDP, @@ -28 +29 @@ -@@ -182,5 +181,4 @@ static struct rte_flow_action count_action_bad = { -1, 0}; +@@ -180,5 +179,4 @@ static struct rte_flow_action count_action_bad = { -1, 0}; @@ -34 +35 @@ -@@ -385,5 +383,5 @@ test_invalid_patterns(void) +@@ -383,5 +381,5 @@ test_invalid_patterns(void) @@ -41 +42 @@ -@@ -459,30 +457,4 @@ test_invalid_actions(void) +@@ -457,30 +455,4 @@ test_invalid_actions(void)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/551a27e526cbb569eb496e0a21f8e09c96ce8184 Thanks. Kevin Traynor --- From 551a27e526cbb569eb496e0a21f8e09c96ce8184 Mon Sep 17 00:00:00 2001 From: Aaron Conole <aconole@redhat.com> Date: Wed, 31 Jul 2019 11:43:11 -0400 Subject: [PATCH] acl: fix undefined behavior of bit shifts [ upstream commit 5924381221b022b589bef88bacea8a59a7bf6c8b ] Left-shift of an integer constant is represented as 'int' type, but a left shift of 1 by 31 bits in 'int' is undefined. Use the U suffix to force a representation as unsigned. Caught while running with ubsan under gcc. Fixes: dc276b5780c2 ("acl: new library") Signed-off-by: Aaron Conole <aconole@redhat.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> --- lib/librte_acl/acl_bld.c | 6 +++--- lib/librte_acl/acl_gen.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/librte_acl/acl_bld.c b/lib/librte_acl/acl_bld.c index b82191f42..b06bbe920 100644 --- a/lib/librte_acl/acl_bld.c +++ b/lib/librte_acl/acl_bld.c @@ -321,5 +321,5 @@ acl_add_ptr_range(struct acl_build_context *context, if (n >= low && n <= high) bitset.bits[n / (sizeof(bits_t) * 8)] |= - 1 << (n % (sizeof(bits_t) * 8)); + 1U << (n % (sizeof(bits_t) * CHAR_BIT)); return acl_add_ptr(context, root, node, &bitset); @@ -344,5 +344,5 @@ acl_gen_mask(struct rte_acl_bitset *bitset, uint32_t value, uint32_t mask) range++; bitset->bits[n / (sizeof(bits_t) * 8)] |= - 1 << (n % (sizeof(bits_t) * 8)); + 1U << (n % (sizeof(bits_t) * CHAR_BIT)); } } @@ -973,5 +973,5 @@ build_trie(struct acl_build_context *context, struct rte_acl_build_rule *head, for (m = context->cfg.num_categories; 0 != m--; ) { - if (rule->f->data.category_mask & (1 << m)) { + if (rule->f->data.category_mask & (1U << m)) { end->mrt->results[m] = rule->f->data.userdata; end->mrt->priority[m] = rule->f->data.priority; diff --git a/lib/librte_acl/acl_gen.c b/lib/librte_acl/acl_gen.c index 35a0140b4..f1b9d12f1 100644 --- a/lib/librte_acl/acl_gen.c +++ b/lib/librte_acl/acl_gen.c @@ -134,5 +134,5 @@ acl_node_fill_dfa(const struct rte_acl_node *node, if (bits->bits[n / (sizeof(bits_t) * CHAR_BIT)] & - (1 << (n % (sizeof(bits_t) * CHAR_BIT)))) { + (1U << (n % (sizeof(bits_t) * CHAR_BIT)))) { dfa[n] = resolved ? child->node_index : x; @@ -176,5 +176,5 @@ acl_count_sequential_groups(struct rte_acl_bitset *bits, int zero_one) for (n = 0; n < QRANGE_MIN; n++) { if (bits->bits[n / (sizeof(bits_t) * 8)] & - (1 << (n % (sizeof(bits_t) * 8)))) { + (1U << (n % (sizeof(bits_t) * CHAR_BIT)))) { if (zero_one == 1 && last_bit != 1) ranges++; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.394441440 +0100 +++ 0031-acl-fix-undefined-behavior-of-bit-shifts.patch 2019-09-05 10:36:47.528700091 +0100 @@ -1 +1 @@ -From 5924381221b022b589bef88bacea8a59a7bf6c8b Mon Sep 17 00:00:00 2001 +From 551a27e526cbb569eb496e0a21f8e09c96ce8184 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 5924381221b022b589bef88bacea8a59a7bf6c8b ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/d42af302df0ee744723e64becf3b45488a4ac818 Thanks. Kevin Traynor --- From d42af302df0ee744723e64becf3b45488a4ac818 Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Wed, 31 Jul 2019 09:55:34 +0200 Subject: [PATCH] test: remove link to ixgbe/i40e with meson [ upstream commit 0c573f39e5f67c8547a966e11516fd548af0d3b4 ] The tests do not depend on ixgbe or i40e drivers, just remove this explicit link that likely comes from a copy/paste from testpmd. Fixes: b5dc795a8a55 ("test: build app with meson as dpdk-test") Signed-off-by: David Marchand <david.marchand@redhat.com> --- test/test/meson.build | 6 ------ 1 file changed, 6 deletions(-) diff --git a/test/test/meson.build b/test/test/meson.build index b7babbad1..c097840f6 100644 --- a/test/test/meson.build +++ b/test/test/meson.build @@ -241,10 +241,4 @@ if dpdk_conf.has('RTE_LIBRTE_PDUMP') test_deps += 'pdump' endif -if dpdk_conf.has('RTE_LIBRTE_I40E_PMD') - test_deps += 'pmd_i40e' -endif -if dpdk_conf.has('RTE_LIBRTE_IXGBE_PMD') - test_deps += 'pmd_ixgbe' -endif if dpdk_conf.has('RTE_LIBRTE_BOND_PMD') test_deps += 'pmd_bond' -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.453554488 +0100 +++ 0032-test-remove-link-to-ixgbe-i40e-with-meson.patch 2019-09-05 10:36:47.529700067 +0100 @@ -1 +1 @@ -From 0c573f39e5f67c8547a966e11516fd548af0d3b4 Mon Sep 17 00:00:00 2001 +From d42af302df0ee744723e64becf3b45488a4ac818 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 0c573f39e5f67c8547a966e11516fd548af0d3b4 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -14 +15 @@ - app/test/meson.build | 6 ------ + test/test/meson.build | 6 ------ @@ -17,5 +18,5 @@ -diff --git a/app/test/meson.build b/app/test/meson.build -index c50b20275..e8a898eb6 100644 ---- a/app/test/meson.build -+++ b/app/test/meson.build -@@ -301,10 +301,4 @@ if dpdk_conf.has('RTE_LIBRTE_PDUMP') +diff --git a/test/test/meson.build b/test/test/meson.build +index b7babbad1..c097840f6 100644 +--- a/test/test/meson.build ++++ b/test/test/meson.build +@@ -241,10 +241,4 @@ if dpdk_conf.has('RTE_LIBRTE_PDUMP')
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/d1541e09feaf6c7a3198fd0e857b81ff1fa0010b Thanks. Kevin Traynor --- From d1541e09feaf6c7a3198fd0e857b81ff1fa0010b Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Wed, 31 Jul 2019 14:07:33 +0200 Subject: [PATCH] eal: hide internal function [ upstream commit ba5d78da70dfeb23f92027cb4145066e5271c478 ] This function has never been used outside of this code unit. Mark it static and remove it from the eal internal header. Fixes: 9e29251b2afa ("eal: thread affinity API") Signed-off-by: David Marchand <david.marchand@redhat.com> --- lib/librte_eal/common/eal_common_thread.c | 3 ++- lib/librte_eal/common/eal_thread.h | 11 ----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/lib/librte_eal/common/eal_common_thread.c b/lib/librte_eal/common/eal_common_thread.c index 14f206c04..8388efb3e 100644 --- a/lib/librte_eal/common/eal_common_thread.c +++ b/lib/librte_eal/common/eal_common_thread.c @@ -39,5 +39,6 @@ rte_lcore_has_role(unsigned int lcore_id, enum rte_lcore_role_t role) } -int eal_cpuset_socket_id(rte_cpuset_t *cpusetp) +static int +eal_cpuset_socket_id(rte_cpuset_t *cpusetp) { unsigned cpu = 0; diff --git a/lib/librte_eal/common/eal_thread.h b/lib/librte_eal/common/eal_thread.h index 2d30b19b9..0d0bad06b 100644 --- a/lib/librte_eal/common/eal_thread.h +++ b/lib/librte_eal/common/eal_thread.h @@ -35,15 +35,4 @@ void eal_thread_init_master(unsigned lcore_id); unsigned eal_cpu_socket_id(unsigned cpu_id); -/** - * Get the NUMA socket id from cpuset. - * This function is private to EAL. - * - * @param cpusetp - * The point to a valid cpu set. - * @return - * socket_id or SOCKET_ID_ANY - */ -int eal_cpuset_socket_id(rte_cpuset_t *cpusetp); - /** * Default buffer size to use with eal_thread_dump_affinity() -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.510520881 +0100 +++ 0033-eal-hide-internal-function.patch 2019-09-05 10:36:47.530700043 +0100 @@ -1 +1 @@ -From ba5d78da70dfeb23f92027cb4145066e5271c478 Mon Sep 17 00:00:00 2001 +From d1541e09feaf6c7a3198fd0e857b81ff1fa0010b Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit ba5d78da70dfeb23f92027cb4145066e5271c478 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -19 +20 @@ -index c91aba8f9..f9a8cf14d 100644 +index 14f206c04..8388efb3e 100644
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/41bcafb3b891e8c882d609ca5ef88f6463b6dcd4 Thanks. Kevin Traynor --- From 41bcafb3b891e8c882d609ca5ef88f6463b6dcd4 Mon Sep 17 00:00:00 2001 From: David Marchand <david.marchand@redhat.com> Date: Fri, 2 Aug 2019 11:54:01 +0200 Subject: [PATCH] bus/pci: remove unused x86 Linux constant [ upstream commit b62f3aff913daff969bb88cded19f41ed98da772 ] This macro is unused after a previous fix. Fixes: fe822eb8c565 ("bus/pci: use IOVA DMA mask check when setting IOVA mode") Signed-off-by: David Marchand <david.marchand@redhat.com> --- drivers/bus/pci/linux/pci.c | 1 - 1 file changed, 1 deletion(-) diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c index c99d523f0..74794a3ba 100644 --- a/drivers/bus/pci/linux/pci.c +++ b/drivers/bus/pci/linux/pci.c @@ -584,5 +584,4 @@ pci_one_device_iommu_support_va(struct rte_pci_device *dev) #define VTD_CAP_MGAW_SHIFT 16 #define VTD_CAP_MGAW_MASK (0x3fULL << VTD_CAP_MGAW_SHIFT) -#define X86_VA_WIDTH 47 /* From Documentation/x86/x86_64/mm.txt */ struct rte_pci_addr *addr = &dev->addr; char filename[PATH_MAX]; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.581028317 +0100 +++ 0034-bus-pci-remove-unused-x86-Linux-constant.patch 2019-09-05 10:36:47.531700019 +0100 @@ -1 +1 @@ -From b62f3aff913daff969bb88cded19f41ed98da772 Mon Sep 17 00:00:00 2001 +From 41bcafb3b891e8c882d609ca5ef88f6463b6dcd4 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit b62f3aff913daff969bb88cded19f41ed98da772 ] + @@ -9 +10,0 @@ -Cc: stable@dpdk.org @@ -17 +18 @@ -index 1d8d20d93..f4fb7427b 100644 +index c99d523f0..74794a3ba 100644 @@ -20 +21 @@ -@@ -504,5 +504,4 @@ pci_one_device_iommu_support_va(const struct rte_pci_device *dev) +@@ -584,5 +584,4 @@ pci_one_device_iommu_support_va(struct rte_pci_device *dev) @@ -24 +25 @@ - const struct rte_pci_addr *addr = &dev->addr; + struct rte_pci_addr *addr = &dev->addr;
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/205ce8714392f69ed4ebc555ae755fcedfa47370 Thanks. Kevin Traynor --- From 205ce8714392f69ed4ebc555ae755fcedfa47370 Mon Sep 17 00:00:00 2001 From: Hemant Agrawal <hemant.agrawal@nxp.com> Date: Thu, 25 Jul 2019 16:36:43 +0530 Subject: [PATCH] net/dpaa: fix build with 0 headroom [ upstream commit 47854c180349c3d41690e60aea9458a864572389 ] When using RTE_PKTMBUF_HEADROOM as 0, dpaa driver throws compilation error error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM" This patch change it into run-time check. Bugzilla ID: 335 Fixes: ff9e112d7870 ("net/dpaa: add NXP DPAA PMD driver skeleton") Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> --- drivers/net/dpaa/dpaa_ethdev.c | 10 ++++++++++ drivers/net/dpaa/dpaa_ethdev.h | 4 ---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c index 5448a2ca7..5fbf152fa 100644 --- a/drivers/net/dpaa/dpaa_ethdev.c +++ b/drivers/net/dpaa/dpaa_ethdev.c @@ -1461,4 +1461,14 @@ rte_dpaa_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused, PMD_INIT_FUNC_TRACE(); + if ((DPAA_MBUF_HW_ANNOTATION + DPAA_FD_PTA_SIZE) > + RTE_PKTMBUF_HEADROOM) { + DPAA_PMD_ERR( + "RTE_PKTMBUF_HEADROOM(%d) shall be > DPAA Annotation req(%d)", + RTE_PKTMBUF_HEADROOM, + DPAA_MBUF_HW_ANNOTATION + DPAA_FD_PTA_SIZE); + + return -1; + } + /* In case of secondary process, the device is already configured * and no further action is required, except portal initialization diff --git a/drivers/net/dpaa/dpaa_ethdev.h b/drivers/net/dpaa/dpaa_ethdev.h index 2fc723171..acbcaf6e6 100644 --- a/drivers/net/dpaa/dpaa_ethdev.h +++ b/drivers/net/dpaa/dpaa_ethdev.h @@ -22,8 +22,4 @@ #define DPAA_FD_PTA_SIZE 64 -#if (DPAA_MBUF_HW_ANNOTATION + DPAA_FD_PTA_SIZE) > RTE_PKTMBUF_HEADROOM -#error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM" -#endif - /* mbuf->seqn will be used to store event entry index for * driver specific usage. For parallel mode queues, invalid -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.639839340 +0100 +++ 0035-net-dpaa-fix-build-with-0-headroom.patch 2019-09-05 10:36:47.533699972 +0100 @@ -1 +1 @@ -From 47854c180349c3d41690e60aea9458a864572389 Mon Sep 17 00:00:00 2001 +From 205ce8714392f69ed4ebc555ae755fcedfa47370 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 47854c180349c3d41690e60aea9458a864572389 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index adc0bd5ac..7154fb9b4 100644 +index 5448a2ca7..5fbf152fa 100644 @@ -25 +26 @@ -@@ -1470,4 +1470,14 @@ rte_dpaa_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused, +@@ -1461,4 +1461,14 @@ rte_dpaa_probe(struct rte_dpaa_driver *dpaa_drv __rte_unused, @@ -41 +42 @@ -index 18bc7dfa8..f63a5f164 100644 +index 2fc723171..acbcaf6e6 100644 @@ -44 +45 @@ -@@ -23,8 +23,4 @@ +@@ -22,8 +22,4 @@
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/c52e584dda405e167e14663a1755c5a5cfc66448 Thanks. Kevin Traynor --- From c52e584dda405e167e14663a1755c5a5cfc66448 Mon Sep 17 00:00:00 2001 From: Hemant Agrawal <hemant.agrawal@nxp.com> Date: Thu, 25 Jul 2019 16:36:44 +0530 Subject: [PATCH] bus/fslmc: fix build with 0 headroom [ upstream commit f4435e380d7cd51327051d2de3409ba83a2b690c ] When using RTE_PKTMBUF_HEADROOM as 0, dpaa driver throws compilation error error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM" This patch change it into run-time check. Bugzilla ID: 335 Fixes: beb2a7865dda ("bus/fslmc: define hardware annotation area size") Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> --- drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 4 ---- drivers/net/dpaa2/dpaa2_ethdev.c | 10 ++++++++++ 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h index 2f52aca95..473f779a1 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h @@ -68,8 +68,4 @@ #define DPAA2_FD_PTA_SIZE 0 -#if (DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE) > RTE_PKTMBUF_HEADROOM -#error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM" -#endif - /* we will re-use the HEADROOM for annotation in RX */ #define DPAA2_HW_BUF_RESERVE 0 diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 39f85ae7b..e3266085a 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -2099,4 +2099,14 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv, int diag; + if ((DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE) > + RTE_PKTMBUF_HEADROOM) { + DPAA2_PMD_ERR( + "RTE_PKTMBUF_HEADROOM(%d) shall be > DPAA2 Annotation req(%d)", + RTE_PKTMBUF_HEADROOM, + DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE); + + return -1; + } + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { eth_dev = rte_eth_dev_allocate(dpaa2_dev->device.name); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.700078866 +0100 +++ 0036-bus-fslmc-fix-build-with-0-headroom.patch 2019-09-05 10:36:47.536699900 +0100 @@ -1 +1 @@ -From f4435e380d7cd51327051d2de3409ba83a2b690c Mon Sep 17 00:00:00 2001 +From c52e584dda405e167e14663a1755c5a5cfc66448 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit f4435e380d7cd51327051d2de3409ba83a2b690c ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index 8644761db..4bb6b26c7 100644 +index 2f52aca95..473f779a1 100644 @@ -25 +26 @@ -@@ -73,8 +73,4 @@ +@@ -68,8 +68,4 @@ @@ -35 +36 @@ -index 03f69599c..dd6a78f9f 100644 +index 39f85ae7b..e3266085a 100644 @@ -38 +39 @@ -@@ -2320,4 +2320,14 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv, +@@ -2099,4 +2099,14 @@ rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/3a8c48fa93658afad461a86136f6c61c1a2b8024 Thanks. Kevin Traynor --- From 3a8c48fa93658afad461a86136f6c61c1a2b8024 Mon Sep 17 00:00:00 2001 From: Hemant Agrawal <hemant.agrawal@nxp.com> Date: Thu, 25 Jul 2019 16:36:45 +0530 Subject: [PATCH] net/virtio: fix build with 0 headroom MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit [ upstream commit c1ada9b63b8309a99c6370ff50a24b7d6d238c9b ] When using RTE_PKTMBUF_HEADROOM as 0, virito ethdev driver throws compilation error virtio_ethdev.c:1851:2: note: in expansion of macro ‘RTE_BUILD_BUG_ON’ RTE_BUILD_BUG_ON(RTE_PKTMBUF_HEADROOM < sizeof(struct virtio_net_hdr_mrg_rxbuf)); This patch change it into run-time check. Bugzilla ID: 335 Fixes: dec08c28c0b3 ("virtio: check packet headroom at compile time") Signed-off-by: Hemant Agrawal <hemant.agrawal@nxp.com> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com> --- drivers/net/virtio/virtio_ethdev.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c index 9098cb6f4..8c54edc28 100644 --- a/drivers/net/virtio/virtio_ethdev.c +++ b/drivers/net/virtio/virtio_ethdev.c @@ -1666,5 +1666,12 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) int ret; - RTE_BUILD_BUG_ON(RTE_PKTMBUF_HEADROOM < sizeof(struct virtio_net_hdr_mrg_rxbuf)); + if (sizeof(struct virtio_net_hdr_mrg_rxbuf) > RTE_PKTMBUF_HEADROOM) { + PMD_INIT_LOG(ERR, + "Not sufficient headroom required = %d, avail = %d", + (int)sizeof(struct virtio_net_hdr_mrg_rxbuf), + RTE_PKTMBUF_HEADROOM); + + return -1; + } eth_dev->dev_ops = &virtio_eth_dev_ops; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.759872356 +0100 +++ 0037-net-virtio-fix-build-with-0-headroom.patch 2019-09-05 10:36:47.538699852 +0100 @@ -1 +1 @@ -From c1ada9b63b8309a99c6370ff50a24b7d6d238c9b Mon Sep 17 00:00:00 2001 +From 3a8c48fa93658afad461a86136f6c61c1a2b8024 Mon Sep 17 00:00:00 2001 @@ -8,0 +9,2 @@ +[ upstream commit c1ada9b63b8309a99c6370ff50a24b7d6d238c9b ] + @@ -19 +20,0 @@ -Cc: stable@dpdk.org @@ -28 +29 @@ -index 20840bf8a..f96588b9d 100644 +index 9098cb6f4..8c54edc28 100644 @@ -31 +32 @@ -@@ -1846,5 +1846,12 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev) +@@ -1666,5 +1666,12 @@ eth_virtio_dev_init(struct rte_eth_dev *eth_dev)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/7b1714c76de643a43e54e76d846846d3d6e90f0e Thanks. Kevin Traynor --- From 7b1714c76de643a43e54e76d846846d3d6e90f0e Mon Sep 17 00:00:00 2001 From: Maciej Bielski <mba@semihalf.com> Date: Thu, 1 Aug 2019 13:45:36 +0200 Subject: [PATCH] net/ena: fix L4 checksum Tx offload [ upstream commit 40e7c02155625f18a87faf5e6a8cec2e986146e8 ] During an if-condition evaluation, a 2-bit flag evaluates to 'true' for '0x1', '0x2' and '0x3'. Thus, from this perspective these flags are indistinguishable. To make them distinct, respective bits must be extracted with a mask and then checked for strict equality. Specifically here, even if `PKT_TX_UDP_CKSUM` (value '0x3') was set, the expression `mbuf->ol_flags & PKT_TX_TCP` (the second flag of value '0x1') is evaluated first and the result is 'true'. In consequence, for UDP packets the execution flow enters an incorrect branch. Fixes: 56b8b9b7e5d2 ("net/ena: convert to new Tx offloads API") Reported-by: Eduard Serra <eserra@vmware.com> Signed-off-by: Maciej Bielski <mba@semihalf.com> Acked-by: Michal Krawczyk <mk@semihalf.com> --- drivers/net/ena/ena_ethdev.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c index fa7b58b7d..0779bb771 100644 --- a/drivers/net/ena/ena_ethdev.c +++ b/drivers/net/ena/ena_ethdev.c @@ -340,10 +340,11 @@ static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf, /* check if L4 checksum is needed */ - if ((mbuf->ol_flags & PKT_TX_TCP_CKSUM) && + if (((mbuf->ol_flags & PKT_TX_L4_MASK) == PKT_TX_TCP_CKSUM) && (queue_offloads & DEV_TX_OFFLOAD_TCP_CKSUM)) { ena_tx_ctx->l4_proto = ENA_ETH_IO_L4_PROTO_TCP; ena_tx_ctx->l4_csum_enable = true; - } else if ((mbuf->ol_flags & PKT_TX_UDP_CKSUM) && - (queue_offloads & DEV_TX_OFFLOAD_UDP_CKSUM)) { + } else if (((mbuf->ol_flags & PKT_TX_L4_MASK) == + PKT_TX_UDP_CKSUM) && + (queue_offloads & DEV_TX_OFFLOAD_UDP_CKSUM)) { ena_tx_ctx->l4_proto = ENA_ETH_IO_L4_PROTO_UDP; ena_tx_ctx->l4_csum_enable = true; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.813820768 +0100 +++ 0038-net-ena-fix-L4-checksum-Tx-offload.patch 2019-09-05 10:36:47.540699804 +0100 @@ -1 +1 @@ -From 40e7c02155625f18a87faf5e6a8cec2e986146e8 Mon Sep 17 00:00:00 2001 +From 7b1714c76de643a43e54e76d846846d3d6e90f0e Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 40e7c02155625f18a87faf5e6a8cec2e986146e8 ] + @@ -17 +18,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index a1187851c..7d4a3b225 100644 +index fa7b58b7d..0779bb771 100644 @@ -30 +31 @@ -@@ -331,10 +331,11 @@ static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf, +@@ -340,10 +340,11 @@ static inline void ena_tx_mbuf_prepare(struct rte_mbuf *mbuf,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/97e379db25aaa3064d391cb030601ad407f01dd0 Thanks. Kevin Traynor --- From 97e379db25aaa3064d391cb030601ad407f01dd0 Mon Sep 17 00:00:00 2001 From: Rasesh Mody <rmody@marvell.com> Date: Mon, 5 Aug 2019 02:24:26 -0700 Subject: [PATCH] doc: add co-existence consideration for bnx2x [ upstream commit 2efba79b1950053b86ec05a83af2a5f96d511ac9 ] Add and update co-existence considerations for bnx2x PMD Signed-off-by: Rasesh Mody <rmody@marvell.com> --- doc/guides/nics/bnx2x.rst | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-) diff --git a/doc/guides/nics/bnx2x.rst b/doc/guides/nics/bnx2x.rst index cecbfc2e7..8577c1a49 100644 --- a/doc/guides/nics/bnx2x.rst +++ b/doc/guides/nics/bnx2x.rst @@ -35,5 +35,5 @@ The BNX2X poll mode driver library (**librte_pmd_bnx2x**) implements support for **QLogic 578xx** 10/20 Gbps family of adapters as well as their virtual functions (VF) in SR-IOV context. It is supported on several standard Linux -distros like Red Hat 7.x and SLES12 OS. It is compile-tested under FreeBSD OS. +distros like RHEL and SLES. It is compile-tested under FreeBSD OS. More information can be found at `QLogic Corporation's Official Website @@ -66,12 +66,24 @@ Co-existence considerations --------------------------- -- BCM578xx being a CNA can have both NIC and Storage personalities. - However, coexistence with storage protocol drivers (cnic, bnx2fc and - bnx2fi) is not supported on the same adapter. So storage personality - has to be disabled on that adapter when used in DPDK applications. +- QLogic 578xx CNAs support Ethernet, iSCSI and FCoE functionalities. + These functionalities are supported using QLogic Linux kernel + drivers bnx2x, cnic, bnx2i and bnx2fc. DPDK is supported on these + adapters using bnx2x PMD. -- For SR-IOV case, bnx2x PMD will be used to bind to SR-IOV VF device and - Linux native kernel driver (bnx2x) will be attached to SR-IOV PF. +- When SR-IOV is not enabled on the adapter, + QLogic Linux kernel drivers (bnx2x, cnic, bnx2i and bnx2fc) and bnx2x + PMD can’t be attached to different PFs on a given QLogic 578xx + adapter. + A given adapter needs to be completely used by DPDK or Linux drivers. + Before binding DPDK driver to one or more PFs on the adapter, + please make sure to unbind Linux drivers from all PFs of the adapter. + If there are multiple adapters on the system, one or more adapters + can be used by DPDK driver completely and other adapters can be used + by Linux drivers completely. +- When SR-IOV is enabled on the adapter, + Linux kernel drivers (bnx2x, cnic, bnx2i and bnx2fc) can be bound + to the PFs of a given adapter and either bnx2x PMD or Linux drivers + bnx2x can be bound to the VFs of the adapter. Supported QLogic NICs -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.875165972 +0100 +++ 0039-doc-add-co-existence-consideration-for-bnx2x.patch 2019-09-05 10:36:47.541699780 +0100 @@ -1 +1 @@ -From 2efba79b1950053b86ec05a83af2a5f96d511ac9 Mon Sep 17 00:00:00 2001 +From 97e379db25aaa3064d391cb030601ad407f01dd0 Mon Sep 17 00:00:00 2001 @@ -6 +6 @@ -Add and update co-existence considerations for bnx2x PMD +[ upstream commit 2efba79b1950053b86ec05a83af2a5f96d511ac9 ] @@ -8 +8 @@ -Cc: stable@dpdk.org +Add and update co-existence considerations for bnx2x PMD @@ -16 +16 @@ -index a7dee0c10..00e131484 100644 +index cecbfc2e7..8577c1a49 100644 @@ -19 +19 @@ -@@ -34,5 +34,5 @@ The BNX2X poll mode driver library (**librte_pmd_bnx2x**) implements support +@@ -35,5 +35,5 @@ The BNX2X poll mode driver library (**librte_pmd_bnx2x**) implements support @@ -26 +26 @@ -@@ -65,12 +65,24 @@ Co-existence considerations +@@ -66,12 +66,24 @@ Co-existence considerations
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/64f1cd8969645e1af7cb4885ed2489eda4130711 Thanks. Kevin Traynor --- From 64f1cd8969645e1af7cb4885ed2489eda4130711 Mon Sep 17 00:00:00 2001 From: Rasesh Mody <rmody@marvell.com> Date: Mon, 5 Aug 2019 02:19:54 -0700 Subject: [PATCH] doc: add co-existence consideration for qede [ upstream commit 8e6281f4880565e8ad757fe631afc4c2e060d06a ] Add and update co-existence considerations for qede PMD Signed-off-by: Rasesh Mody <rmody@marvell.com> --- doc/guides/nics/qede.rst | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/doc/guides/nics/qede.rst b/doc/guides/nics/qede.rst index c0a383381..05a6aef57 100644 --- a/doc/guides/nics/qede.rst +++ b/doc/guides/nics/qede.rst @@ -8,5 +8,5 @@ QEDE Poll Mode Driver The QEDE poll mode driver library (**librte_pmd_qede**) implements support for **QLogic FastLinQ QL4xxxx 10G/25G/40G/50G/100G Intelligent Ethernet Adapters (IEA) and Converged Network Adapters (CNA)** family of adapters as well as SR-IOV virtual functions (VF). It is supported on -several standard Linux distros like RHEL7.x, SLES12.x and Ubuntu. +several standard Linux distros like RHEL, SLES, Ubuntu etc. It is compile-tested under FreeBSD OS. @@ -48,6 +48,25 @@ Non-supported Features Co-existence considerations --------------------------- -- QLogic FastLinQ QL4xxxx CNAs can have both NIC and Storage personalities. However, coexistence with storage protocol drivers (qedi and qedf) is not supported on the same adapter. So storage personality has to be disabled on that adapter when used in DPDK applications. -- For SR-IOV case, qede PMD will be used to bind to SR-IOV VF device and Linux native kernel driver (qede) will be attached to SR-IOV PF. + +- QLogic FastLinQ QL4xxxx CNAs support Ethernet, RDMA, iSCSI and FCoE + functionalities. These functionalities are supported using + QLogic Linux kernel drivers qed, qede, qedr, qedi and qedf. DPDK is + supported on these adapters using qede PMD. + +- When SR-IOV is not enabled on the adapter, + QLogic Linux kernel drivers (qed, qede, qedr, qedi and qedf) and qede + PMD can’t be attached to different PFs on a given QLogic FastLinQ + QL4xxx adapter. + A given adapter needs to be completely used by DPDK or Linux drivers + Before binding DPDK driver to one or more PFs on the adapter, + please make sure to unbind Linux drivers from all PFs of the adapter. + If there are multiple adapters on the system, one or more adapters + can be used by DPDK driver completely and other adapters can be used + by Linux drivers completely. + +- When SR-IOV is enabled on the adapter, + Linux kernel drivers (qed, qede, qedr, qedi and qedf) can be bound + to the PFs of a given adapter and either qede PMD or Linux drivers + (qed and qede) can be bound to the VFs of the adapter. Supported QLogic Adapters -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.933966168 +0100 +++ 0040-doc-add-co-existence-consideration-for-qede.patch 2019-09-05 10:36:47.542699756 +0100 @@ -1 +1 @@ -From 8e6281f4880565e8ad757fe631afc4c2e060d06a Mon Sep 17 00:00:00 2001 +From 64f1cd8969645e1af7cb4885ed2489eda4130711 Mon Sep 17 00:00:00 2001 @@ -6 +6 @@ -Add and update co-existence considerations for qede PMD +[ upstream commit 8e6281f4880565e8ad757fe631afc4c2e060d06a ] @@ -8 +8 @@ -Cc: stable@dpdk.org +Add and update co-existence considerations for qede PMD
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/9878db5f5215350a60d9f92aa601b3e248d5c1fa Thanks. Kevin Traynor --- From 9878db5f5215350a60d9f92aa601b3e248d5c1fa Mon Sep 17 00:00:00 2001 From: Amit Gupta <agupta3@marvell.com> Date: Mon, 5 Aug 2019 13:30:44 +0530 Subject: [PATCH] net/thunderx: fix crash on detach [ upstream commit 230dce6461b92f36c819f1cf29c0c0e0f8d11ea8 ] Fix the PCIe detach segfault by releasing eth_dev resources by adding nicvf cleanup support on PCI detach. Fixes: fdf91e0f2fac ("drivers/net: do not use ethdev driver") Signed-off-by: Amit Gupta <agupta3@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com> --- drivers/net/thunderx/nicvf_ethdev.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/drivers/net/thunderx/nicvf_ethdev.c b/drivers/net/thunderx/nicvf_ethdev.c index 8f5664d7b..ae5a33e3a 100644 --- a/drivers/net/thunderx/nicvf_ethdev.c +++ b/drivers/net/thunderx/nicvf_ethdev.c @@ -2084,4 +2084,14 @@ kvlist_free: } static int +nicvf_eth_dev_uninit(struct rte_eth_dev *dev) +{ + PMD_INIT_FUNC_TRACE(); + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) + nicvf_dev_close(dev); + + return 0; +} +static int nicvf_eth_dev_init(struct rte_eth_dev *eth_dev) { @@ -2256,5 +2266,5 @@ static int nicvf_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, static int nicvf_eth_pci_remove(struct rte_pci_device *pci_dev) { - return rte_eth_dev_pci_generic_remove(pci_dev, NULL); + return rte_eth_dev_pci_generic_remove(pci_dev, nicvf_eth_dev_uninit); } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:49.992064361 +0100 +++ 0041-net-thunderx-fix-crash-on-detach.patch 2019-09-05 10:36:47.544699708 +0100 @@ -1 +1 @@ -From 230dce6461b92f36c819f1cf29c0c0e0f8d11ea8 Mon Sep 17 00:00:00 2001 +From 9878db5f5215350a60d9f92aa601b3e248d5c1fa Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 230dce6461b92f36c819f1cf29c0c0e0f8d11ea8 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org @@ -19 +20 @@ -index ec57692fb..56769ef85 100644 +index 8f5664d7b..ae5a33e3a 100644 @@ -37 +38 @@ -@@ -2257,5 +2267,5 @@ static int nicvf_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused, +@@ -2256,5 +2266,5 @@ static int nicvf_eth_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/60954fdd1099995a1150ce8ef4bc3bf2a2d976b1 Thanks. Kevin Traynor --- From 60954fdd1099995a1150ce8ef4bc3bf2a2d976b1 Mon Sep 17 00:00:00 2001 From: Konstantin Ananyev <konstantin.ananyev@intel.com> Date: Tue, 30 Jul 2019 11:19:27 +0100 Subject: [PATCH] examples/bpf: fix build [ upstream commit 9a710863decb1cdb98efbdd5e11df3ebcfcc37b6 ] Example BPF programs t2.c, t3.c in folder examples/bpf are failing to compile with latest dpdk.org master. The reason is changes in some core DPDK header files, that causes now inclusion of x86 specific headers. To overcome the issue, minimize inclusion of DPDK header files into BPF source code. Bugzilla ID: 321 Fixes: 9dfc06c26a8b ("test/bpf: add samples") Reported-by: Michel Machado <michel@digirati.com.br> Suggested-by: Michel Machado <michel@digirati.com.br> Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com> --- test/bpf/mbuf.h | 24 ++++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/test/bpf/mbuf.h b/test/bpf/mbuf.h index f24f908d7..3059e7963 100644 --- a/test/bpf/mbuf.h +++ b/test/bpf/mbuf.h @@ -14,5 +14,4 @@ #include <stdint.h> #include <rte_common.h> -#include <rte_memory.h> #ifdef __cplusplus @@ -365,4 +364,21 @@ typedef struct { } rte_atomic16_t; +#define RTE_CACHE_LINE_MIN_SIZE 64 /**< Minimum Cache line size. */ + +/** + * Force minimum cache line alignment. + */ +#define __rte_cache_min_aligned __rte_aligned(RTE_CACHE_LINE_MIN_SIZE) + +/** + * IO virtual address type. + * When the physical addressing mode (IOVA as PA) is in use, + * the translation from an IO virtual address (IOVA) to a physical address + * is a direct mapping, i.e. the same value. + * Otherwise, in virtual mode (IOVA as VA), an IOMMU may do the translation. + */ +typedef uint64_t rte_iova_t; +#define RTE_BAD_IOVA ((rte_iova_t)-1) + /** * The generic rte_mbuf, containing a packet mbuf. @@ -378,5 +394,9 @@ struct rte_mbuf { * working on vector drivers easier. */ - phys_addr_t buf_physaddr __rte_aligned(sizeof(phys_addr_t)); + RTE_STD_C11 + union { + rte_iova_t buf_iova; + rte_iova_t buf_physaddr; /**< deprecated */ + } __rte_aligned(sizeof(rte_iova_t)); /* next 8 bytes are initialised on RX descriptor rearm */ -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.053726472 +0100 +++ 0042-examples-bpf-fix-build.patch 2019-09-05 10:36:47.546699660 +0100 @@ -1 +1 @@ -From 9a710863decb1cdb98efbdd5e11df3ebcfcc37b6 Mon Sep 17 00:00:00 2001 +From 60954fdd1099995a1150ce8ef4bc3bf2a2d976b1 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 9a710863decb1cdb98efbdd5e11df3ebcfcc37b6 ] + @@ -16 +17,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ - examples/bpf/mbuf.h | 24 ++++++++++++++++++++++-- + test/bpf/mbuf.h | 24 ++++++++++++++++++++++-- @@ -25,4 +26,4 @@ -diff --git a/examples/bpf/mbuf.h b/examples/bpf/mbuf.h -index b623d8694..e41c3d26e 100644 ---- a/examples/bpf/mbuf.h -+++ b/examples/bpf/mbuf.h +diff --git a/test/bpf/mbuf.h b/test/bpf/mbuf.h +index f24f908d7..3059e7963 100644 +--- a/test/bpf/mbuf.h ++++ b/test/bpf/mbuf.h
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/75e172303444cc99b6d5385b79a2c2edf40ee8b2 Thanks. Kevin Traynor --- From 75e172303444cc99b6d5385b79a2c2edf40ee8b2 Mon Sep 17 00:00:00 2001 From: Xiao Zhang <xiao.zhang@intel.com> Date: Tue, 6 Aug 2019 07:20:50 +0800 Subject: [PATCH] net/ixgbe: fix address of first segment [ upstream commit 739c35f08bc0296ffda47f006f1903a67527063f ] This patch fixes (dereference after null check) coverity issue. The address of first segmented packets was not set correctly during reassembling packets which led to this issue. Coverity issue: 13245 Fixes: 8a44c15aa57d ("net/ixgbe: extract non-x86 specific code from vector driver") Signed-off-by: Xiao Zhang <xiao.zhang@intel.com> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com> --- drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c index c9ba48246..599ba30e5 100644 --- a/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c +++ b/drivers/net/ixgbe/ixgbe_rxtx_vec_sse.c @@ -610,4 +610,5 @@ ixgbe_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, if (i == nb_bufs) return nb_bufs; + rxq->pkt_first_seg = rx_pkts[i]; } return i + reassemble_packets(rxq, &rx_pkts[i], nb_bufs - i, -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.111595900 +0100 +++ 0043-net-ixgbe-fix-address-of-first-segment.patch 2019-09-05 10:36:47.547699636 +0100 @@ -1 +1 @@ -From 739c35f08bc0296ffda47f006f1903a67527063f Mon Sep 17 00:00:00 2001 +From 75e172303444cc99b6d5385b79a2c2edf40ee8b2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 739c35f08bc0296ffda47f006f1903a67527063f ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/eef15e619c648389dcf15ca114b6e24fc1614ce5 Thanks. Kevin Traynor --- From eef15e619c648389dcf15ca114b6e24fc1614ce5 Mon Sep 17 00:00:00 2001 From: Xiao Zhang <xiao.zhang@intel.com> Date: Tue, 6 Aug 2019 07:20:52 +0800 Subject: [PATCH] net/i40e: fix address of first segment [ upstream commit 4916f63985ddb56af43980252d1134d051523685 ] This patch fixes (dereference after null check) coverity issue. The address of first segmented packets was not set correctly during reassembling packets which led to this issue. Coverity issue: 343422, 343403 Fixes: ca74903b75cf ("net/i40e: extract non-x86 specific code from vector driver") Signed-off-by: Xiao Zhang <xiao.zhang@intel.com> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com> --- drivers/net/i40e/i40e_rxtx_vec_avx2.c | 1 + drivers/net/i40e/i40e_rxtx_vec_sse.c | 1 + 2 files changed, 2 insertions(+) diff --git a/drivers/net/i40e/i40e_rxtx_vec_avx2.c b/drivers/net/i40e/i40e_rxtx_vec_avx2.c index 23179b3b8..472f2e2d7 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_avx2.c +++ b/drivers/net/i40e/i40e_rxtx_vec_avx2.c @@ -620,4 +620,5 @@ i40e_recv_scattered_burst_vec_avx2(void *rx_queue, struct rte_mbuf **rx_pkts, if (i == nb_bufs) return nb_bufs; + rxq->pkt_first_seg = rx_pkts[i]; } return i + reassemble_packets(rxq, &rx_pkts[i], nb_bufs - i, diff --git a/drivers/net/i40e/i40e_rxtx_vec_sse.c b/drivers/net/i40e/i40e_rxtx_vec_sse.c index 3b22588c5..1fc66b781 100644 --- a/drivers/net/i40e/i40e_rxtx_vec_sse.c +++ b/drivers/net/i40e/i40e_rxtx_vec_sse.c @@ -507,4 +507,5 @@ i40e_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, if (i == nb_bufs) return nb_bufs; + rxq->pkt_first_seg = rx_pkts[i]; } return i + reassemble_packets(rxq, &rx_pkts[i], nb_bufs - i, -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.169097122 +0100 +++ 0044-net-i40e-fix-address-of-first-segment.patch 2019-09-05 10:36:47.549699589 +0100 @@ -1 +1 @@ -From 4916f63985ddb56af43980252d1134d051523685 Mon Sep 17 00:00:00 2001 +From eef15e619c648389dcf15ca114b6e24fc1614ce5 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 4916f63985ddb56af43980252d1134d051523685 ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -22 +23 @@ -index c4dc990e0..6f3278960 100644 +index 23179b3b8..472f2e2d7 100644 @@ -25 +26 @@ -@@ -591,4 +591,5 @@ i40e_recv_scattered_burst_vec_avx2(void *rx_queue, struct rte_mbuf **rx_pkts, +@@ -620,4 +620,5 @@ i40e_recv_scattered_burst_vec_avx2(void *rx_queue, struct rte_mbuf **rx_pkts,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/a22b21347dfe3219b208ccc59d3e89f678cecdb0 Thanks. Kevin Traynor --- From a22b21347dfe3219b208ccc59d3e89f678cecdb0 Mon Sep 17 00:00:00 2001 From: Xiao Zhang <xiao.zhang@intel.com> Date: Tue, 6 Aug 2019 07:20:53 +0800 Subject: [PATCH] net/avf: fix address of first segment [ upstream commit ba38f91468a896d9363e92261cbf17c6517e098a ] This patch fixes (dereference after null check) coverity issue. The address of first segmented packets was not set correctly during reassembling packets which led to this issue. Coverity issue: 343447 Fixes: 319c421f3890 ("net/avf: enable SSE Rx Tx") Signed-off-by: Xiao Zhang <xiao.zhang@intel.com> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com> --- drivers/net/avf/avf_rxtx_vec_sse.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/avf/avf_rxtx_vec_sse.c b/drivers/net/avf/avf_rxtx_vec_sse.c index 343a6aac3..13e94cebc 100644 --- a/drivers/net/avf/avf_rxtx_vec_sse.c +++ b/drivers/net/avf/avf_rxtx_vec_sse.c @@ -522,4 +522,5 @@ avf_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, if (i == nb_bufs) return nb_bufs; + rxq->pkt_first_seg = rx_pkts[i]; } return i + reassemble_packets(rxq, &rx_pkts[i], nb_bufs - i, -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.228930357 +0100 +++ 0045-net-avf-fix-address-of-first-segment.patch 2019-09-05 10:36:47.550699565 +0100 @@ -1 +1 @@ -From ba38f91468a896d9363e92261cbf17c6517e098a Mon Sep 17 00:00:00 2001 +From a22b21347dfe3219b208ccc59d3e89f678cecdb0 Mon Sep 17 00:00:00 2001 @@ -4 +4,3 @@ -Subject: [PATCH] net/iavf: fix address of first segment +Subject: [PATCH] net/avf: fix address of first segment + +[ upstream commit ba38f91468a896d9363e92261cbf17c6517e098a ] @@ -12 +13,0 @@ -Cc: stable@dpdk.org @@ -17 +18 @@ - drivers/net/iavf/iavf_rxtx_vec_sse.c | 1 + + drivers/net/avf/avf_rxtx_vec_sse.c | 1 + @@ -20,5 +21,5 @@ -diff --git a/drivers/net/iavf/iavf_rxtx_vec_sse.c b/drivers/net/iavf/iavf_rxtx_vec_sse.c -index 3d98514c3..cc71f23a5 100644 ---- a/drivers/net/iavf/iavf_rxtx_vec_sse.c -+++ b/drivers/net/iavf/iavf_rxtx_vec_sse.c -@@ -522,4 +522,5 @@ iavf_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts, +diff --git a/drivers/net/avf/avf_rxtx_vec_sse.c b/drivers/net/avf/avf_rxtx_vec_sse.c +index 343a6aac3..13e94cebc 100644 +--- a/drivers/net/avf/avf_rxtx_vec_sse.c ++++ b/drivers/net/avf/avf_rxtx_vec_sse.c +@@ -522,4 +522,5 @@ avf_recv_scattered_pkts_vec(void *rx_queue, struct rte_mbuf **rx_pkts,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/d78c697610e3bb55641059113677ec10c59baf90 Thanks. Kevin Traynor --- From d78c697610e3bb55641059113677ec10c59baf90 Mon Sep 17 00:00:00 2001 From: Xiao Zhang <xiao.zhang@intel.com> Date: Tue, 6 Aug 2019 07:20:54 +0800 Subject: [PATCH] net/fm10k: fix address of first segment [ upstream commit 1c38061e790fc3f28d77eb7ded6cb8601c7c6692 ] This patch fixes (dereference after null check) coverity issue. The address of first segmented packets was not set correctly during reassembling packets which led to this issue. Coverity issue: 343416 Fixes: fe65e1e1ce61 ("fm10k: add vector scatter Rx") Signed-off-by: Xiao Zhang <xiao.zhang@intel.com> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com> --- drivers/net/fm10k/fm10k_rxtx_vec.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/net/fm10k/fm10k_rxtx_vec.c b/drivers/net/fm10k/fm10k_rxtx_vec.c index 788e2484a..45542bef3 100644 --- a/drivers/net/fm10k/fm10k_rxtx_vec.c +++ b/drivers/net/fm10k/fm10k_rxtx_vec.c @@ -679,4 +679,5 @@ fm10k_recv_scattered_pkts_vec(void *rx_queue, if (i == nb_bufs) return nb_bufs; + rxq->pkt_first_seg = rx_pkts[i]; } return i + fm10k_reassemble_packets(rxq, &rx_pkts[i], nb_bufs - i, -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.286934706 +0100 +++ 0046-net-fm10k-fix-address-of-first-segment.patch 2019-09-05 10:36:47.551699541 +0100 @@ -1 +1 @@ -From 1c38061e790fc3f28d77eb7ded6cb8601c7c6692 Mon Sep 17 00:00:00 2001 +From d78c697610e3bb55641059113677ec10c59baf90 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 1c38061e790fc3f28d77eb7ded6cb8601c7c6692 ] + @@ -12 +13,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/2609b07db9d1664b5b885c0b8773b70e1a2d20e2 Thanks. Kevin Traynor --- From 2609b07db9d1664b5b885c0b8773b70e1a2d20e2 Mon Sep 17 00:00:00 2001 From: Stephen Hemminger <stephen@networkplumber.org> Date: Fri, 12 Jul 2019 13:54:24 -0700 Subject: [PATCH] net/mlx4: fix crash on info query in secondary process [ upstream commit 164cad78b040122eac581a905a466bd22e7e66b8 ] mlx4_dev_info_get calls mlx4_get_ifname, but mlx4_get_ifname uses priv->ctx which is not a valid pointer in a secondary process. The fix is to cache the value in primary. In the primary process, get and store the interface index of the device so that secondary process can see it. Bugzilla ID: 320 Fixes: 61cbdd419478 ("net/mlx4: separate device control functions") Reported-by: Suyang Ju <sju@paloaltonetworks.com> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Matan Azrad <matan@mellanox.com> --- drivers/net/mlx4/mlx4.c | 17 ++++++++--------- drivers/net/mlx4/mlx4.h | 1 + drivers/net/mlx4/mlx4_ethdev.c | 4 +--- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c index 4bc966d5f..4428edf10 100644 --- a/drivers/net/mlx4/mlx4.c +++ b/drivers/net/mlx4/mlx4.c @@ -521,4 +521,5 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) unsigned int vf; int i; + char ifname[IF_NAMESIZE]; (void)pci_drv; @@ -704,15 +705,13 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) /* Register MAC address. */ priv->mac[0] = mac; -#ifndef NDEBUG - { - char ifname[IF_NAMESIZE]; - if (mlx4_get_ifname(priv, &ifname) == 0) - DEBUG("port %u ifname is \"%s\"", - priv->port, ifname); - else - DEBUG("port %u ifname is unknown", priv->port); + if (mlx4_get_ifname(priv, &ifname) == 0) { + DEBUG("port %u ifname is \"%s\"", + priv->port, ifname); + priv->if_index = if_nametoindex(ifname); + } else { + DEBUG("port %u ifname is unknown", priv->port); } -#endif + /* Get actual MTU if possible. */ mlx4_mtu_get(priv, &priv->mtu); diff --git a/drivers/net/mlx4/mlx4.h b/drivers/net/mlx4/mlx4.h index fc568eb3e..758b7aa43 100644 --- a/drivers/net/mlx4/mlx4.h +++ b/drivers/net/mlx4/mlx4.h @@ -85,4 +85,5 @@ struct mlx4_priv { struct ibv_pd *pd; /**< Protection Domain. */ /* Device properties. */ + unsigned int if_index; /**< Associated network device index */ uint16_t mtu; /**< Configured MTU. */ uint8_t port; /**< Physical port number. */ diff --git a/drivers/net/mlx4/mlx4_ethdev.c b/drivers/net/mlx4/mlx4_ethdev.c index 084b24e49..bd8b6982b 100644 --- a/drivers/net/mlx4/mlx4_ethdev.c +++ b/drivers/net/mlx4/mlx4_ethdev.c @@ -560,5 +560,4 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) struct mlx4_priv *priv = dev->data->dev_private; unsigned int max; - char ifname[IF_NAMESIZE]; /* FIXME: we should ask the device for these values. */ @@ -581,6 +580,5 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) info->rx_offload_capa = (mlx4_get_rx_port_offloads(priv) | info->rx_queue_offload_capa); - if (mlx4_get_ifname(priv, &ifname) == 0) - info->if_index = if_nametoindex(ifname); + info->if_index = priv->if_index; info->hash_key_size = MLX4_RSS_HASH_KEY_SIZE; info->speed_capa = -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.345136230 +0100 +++ 0047-net-mlx4-fix-crash-on-info-query-in-secondary-proces.patch 2019-09-05 10:36:47.554699469 +0100 @@ -1 +1 @@ -From 164cad78b040122eac581a905a466bd22e7e66b8 Mon Sep 17 00:00:00 2001 +From 2609b07db9d1664b5b885c0b8773b70e1a2d20e2 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 164cad78b040122eac581a905a466bd22e7e66b8 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -27 +28 @@ -index d6e5753bf..931e4f4fe 100644 +index 4bc966d5f..4428edf10 100644 @@ -30 +31 @@ -@@ -764,4 +764,5 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) +@@ -521,4 +521,5 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) @@ -36 +37 @@ -@@ -1003,15 +1004,13 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) +@@ -704,15 +705,13 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev) @@ -60 +61 @@ -index 9bdbc6d40..982357716 100644 +index fc568eb3e..758b7aa43 100644 @@ -63 +64 @@ -@@ -160,4 +160,5 @@ struct mlx4_priv { +@@ -85,4 +85,5 @@ struct mlx4_priv { @@ -70 +71 @@ -index ceef92162..5d28c0116 100644 +index 084b24e49..bd8b6982b 100644 @@ -73 +74 @@ -@@ -617,5 +617,4 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) +@@ -560,5 +560,4 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) @@ -79 +80 @@ -@@ -638,6 +637,5 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info) +@@ -581,6 +580,5 @@ mlx4_dev_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *info)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/7f25ef5baa0ba097473891fd4b4f35ab0813bf8f Thanks. Kevin Traynor --- From 7f25ef5baa0ba097473891fd4b4f35ab0813bf8f Mon Sep 17 00:00:00 2001 From: Dekel Peled <dekelp@mellanox.com> Date: Mon, 29 Jul 2019 18:14:45 +0300 Subject: [PATCH] net/mlx5: fix validation of VLAN PCP item [ upstream commit a3970d31e6fb0673611a4a0a4891b7109ae419cc ] Function mlx5_flow_validate_item_vlan() validates the user setting is supported by NIC, using a mask with TCI mask 0x0fff. This check will reject a flow rule specifying a vlan pcp item. This patch updates mlx5_flow_validate_item_vlan() to use mask 0xffff, so flow rules with vlan pcp item are accepted. Fixes: 23c1d42c7138 ("net/mlx5: split flow validation to dedicated function") Signed-off-by: Dekel Peled <dekelp@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> --- drivers/net/mlx5/mlx5_flow.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow.c b/drivers/net/mlx5/mlx5_flow.c index 8e6585d18..f19b27ede 100644 --- a/drivers/net/mlx5/mlx5_flow.c +++ b/drivers/net/mlx5/mlx5_flow.c @@ -1099,6 +1099,6 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item, const struct rte_flow_item_vlan *mask = item->mask; const struct rte_flow_item_vlan nic_mask = { - .tci = RTE_BE16(0x0fff), - .inner_type = RTE_BE16(0xffff), + .tci = RTE_BE16(UINT16_MAX), + .inner_type = RTE_BE16(UINT16_MAX), }; uint16_t vlan_tag = 0; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.405125318 +0100 +++ 0048-net-mlx5-fix-validation-of-VLAN-PCP-item.patch 2019-09-05 10:36:47.557699397 +0100 @@ -1 +1 @@ -From a3970d31e6fb0673611a4a0a4891b7109ae419cc Mon Sep 17 00:00:00 2001 +From 7f25ef5baa0ba097473891fd4b4f35ab0813bf8f Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit a3970d31e6fb0673611a4a0a4891b7109ae419cc ] + @@ -14 +15,0 @@ -Cc: stable@dpdk.org @@ -23 +24 @@ -index f40fee528..6ae98e197 100644 +index 8e6585d18..f19b27ede 100644 @@ -26 +27 @@ -@@ -1222,6 +1222,6 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item, +@@ -1099,6 +1099,6 @@ mlx5_flow_validate_item_vlan(const struct rte_flow_item *item,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/ad50faccc8b55a3aa6557dd16e8492e2cb1a5e03 Thanks. Kevin Traynor --- From ad50faccc8b55a3aa6557dd16e8492e2cb1a5e03 Mon Sep 17 00:00:00 2001 From: Xiaoyu Min <jackmin@mellanox.com> Date: Fri, 2 Aug 2019 17:18:23 +0800 Subject: [PATCH] net/mlx5: fix VLAN inner type matching on DR/DV [ upstream commit b12c7b23680159dd3e6d24e649e1761fc4f9cdcf ] The rte_flow_item_vlan has the inner_type, which is missing on DR/DV flow engine. By adding this support, the example testpmd commands could be: - matching all vlan traffic with id 2: testpmd> flow create 0 ingress pattern eth / vlan vid is 2 / end actions queue index 2 / end - matching all ipv4 traffic in vlan with id 2: testpmd> flow create 0 ingress pattern eth / vlan vid is 2 inner_type is 0x0800 / end actions queue index 2 / end Fixes: fc2c498ccb94 ("net/mlx5: add Direct Verbs translate items") Signed-off-by: Xiaoyu Min <jackmin@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> --- drivers/net/mlx5/mlx5_flow_dv.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 207edcbc5..3b514d632 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -1177,8 +1177,4 @@ flow_dv_translate_item_vlan(void *matcher, void *key, const struct rte_flow_item_vlan *vlan_m = item->mask; const struct rte_flow_item_vlan *vlan_v = item->spec; - const struct rte_flow_item_vlan nic_mask = { - .tci = RTE_BE16(0x0fff), - .inner_type = RTE_BE16(0xffff), - }; void *headers_m; void *headers_v; @@ -1189,5 +1185,5 @@ flow_dv_translate_item_vlan(void *matcher, void *key, return; if (!vlan_m) - vlan_m = &nic_mask; + vlan_m = &rte_flow_item_vlan_mask; if (inner) { headers_m = MLX5_ADDR_OF(fte_match_param, matcher, @@ -1209,4 +1205,8 @@ flow_dv_translate_item_vlan(void *matcher, void *key, MLX5_SET(fte_match_set_lyr_2_4, headers_m, first_prio, tci_m >> 13); MLX5_SET(fte_match_set_lyr_2_4, headers_v, first_prio, tci_v >> 13); + MLX5_SET(fte_match_set_lyr_2_4, headers_m, ethertype, + rte_be_to_cpu_16(vlan_m->inner_type)); + MLX5_SET(fte_match_set_lyr_2_4, headers_v, ethertype, + rte_be_to_cpu_16(vlan_m->inner_type & vlan_v->inner_type)); } -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.466683221 +0100 +++ 0049-net-mlx5-fix-VLAN-inner-type-matching-on-DR-DV.patch 2019-09-05 10:36:47.559699349 +0100 @@ -1 +1 @@ -From b12c7b23680159dd3e6d24e649e1761fc4f9cdcf Mon Sep 17 00:00:00 2001 +From ad50faccc8b55a3aa6557dd16e8492e2cb1a5e03 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit b12c7b23680159dd3e6d24e649e1761fc4f9cdcf ] + @@ -22 +23,0 @@ -Cc: stable@dpdk.org @@ -31 +32 @@ -index 536059d8c..a7d677f85 100644 +index 207edcbc5..3b514d632 100644 @@ -34 +35 @@ -@@ -3470,8 +3470,4 @@ flow_dv_translate_item_vlan(struct mlx5_flow *dev_flow, +@@ -1177,8 +1177,4 @@ flow_dv_translate_item_vlan(void *matcher, void *key, @@ -43 +44 @@ -@@ -3482,5 +3478,5 @@ flow_dv_translate_item_vlan(struct mlx5_flow *dev_flow, +@@ -1189,5 +1185,5 @@ flow_dv_translate_item_vlan(void *matcher, void *key, @@ -50 +51 @@ -@@ -3508,4 +3504,8 @@ flow_dv_translate_item_vlan(struct mlx5_flow *dev_flow, +@@ -1209,4 +1205,8 @@ flow_dv_translate_item_vlan(void *matcher, void *key,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/c11aabbcc556287815b9d35141d1dbcde0f31707 Thanks. Kevin Traynor --- From c11aabbcc556287815b9d35141d1dbcde0f31707 Mon Sep 17 00:00:00 2001 From: Xiaoyu Min <jackmin@mellanox.com> Date: Mon, 5 Aug 2019 16:02:03 +0800 Subject: [PATCH] net/mlx5: fix link speed info when link is down [ upstream commit 6fd05da9efbd387d0f1fdd7824bc5298dff368fe ] When the link is down, the link speed returned by ethtool is UINT32_MAX and the link status is 0. In this case, the DPDK ethdev link speed should be set to ETH_SPEED_NUM_NONE. Otherwise since link speed is non-zero but link status is zero, this is an inconsistent situation and -EAGAIN is returned, which is not right. Fixes: 188408719888 ("net/mlx5: fix support for newer link speeds") Signed-off-by: Xiaoyu Min <jackmin@mellanox.com> Acked-by: Viacheslav Ovsiienko <viacheslavo@mellanox.com> --- drivers/net/mlx5/mlx5_ethdev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5_ethdev.c b/drivers/net/mlx5/mlx5_ethdev.c index 6a5bef117..9c7fc6b44 100644 --- a/drivers/net/mlx5/mlx5_ethdev.c +++ b/drivers/net/mlx5/mlx5_ethdev.c @@ -731,5 +731,6 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, return ret; } - dev_link.link_speed = ecmd->speed; + dev_link.link_speed = (ecmd->speed == UINT32_MAX) ? ETH_SPEED_NUM_NONE : + ecmd->speed; sc = ecmd->link_mode_masks[0] | ((uint64_t)ecmd->link_mode_masks[1] << 32); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.529123230 +0100 +++ 0050-net-mlx5-fix-link-speed-info-when-link-is-down.patch 2019-09-05 10:36:47.560699325 +0100 @@ -1 +1 @@ -From 6fd05da9efbd387d0f1fdd7824bc5298dff368fe Mon Sep 17 00:00:00 2001 +From c11aabbcc556287815b9d35141d1dbcde0f31707 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 6fd05da9efbd387d0f1fdd7824bc5298dff368fe ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -24 +25 @@ -index 9629cfb33..33a32fc2f 100644 +index 6a5bef117..9c7fc6b44 100644 @@ -27 +28 @@ -@@ -909,5 +909,6 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev, +@@ -731,5 +731,6 @@ mlx5_link_update_unlocked_gs(struct rte_eth_dev *dev,
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/62aa226ee8102543cbd8c6d354924aaf52aacfdb Thanks. Kevin Traynor --- From 62aa226ee8102543cbd8c6d354924aaf52aacfdb Mon Sep 17 00:00:00 2001 From: Amit Gupta <agupta3@marvell.com> Date: Wed, 7 Aug 2019 18:42:09 +0530 Subject: [PATCH] app/testpmd: fix latency stats deinit on signal [ upstream commit 8b36297d15f90265b50fae211157dff573513359 ] On receiving signal, testpmd showing warning as "LATENCY_STATS: failed to remove Rx/Tx callback" because rte_latencystats_uninit is called without checking if latencystats is enabled or not. After this fix, rte_latencystats_uninit will be called only if latencystats is enabled. Fixes: 62d3216d6194 ("app/testpmd: add latency statistics calculation") Signed-off-by: Amit Gupta <agupta3@marvell.com> Acked-by: Jerin Jacob <jerinj@marvell.com> Tested-by: Jerin Jacob <jerinj@marvell.com> --- app/test-pmd/testpmd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c index 41283b481..83b5e42a3 100644 --- a/app/test-pmd/testpmd.c +++ b/app/test-pmd/testpmd.c @@ -3079,5 +3079,6 @@ signal_handler(int signum) #endif #ifdef RTE_LIBRTE_LATENCY_STATS - rte_latencystats_uninit(); + if (latencystats_enabled != 0) + rte_latencystats_uninit(); #endif force_quit(); -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.588290621 +0100 +++ 0051-app-testpmd-fix-latency-stats-deinit-on-signal.patch 2019-09-05 10:36:47.563699253 +0100 @@ -1 +1 @@ -From 8b36297d15f90265b50fae211157dff573513359 Mon Sep 17 00:00:00 2001 +From 62aa226ee8102543cbd8c6d354924aaf52aacfdb Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 8b36297d15f90265b50fae211157dff573513359 ] + @@ -15 +16,0 @@ -Cc: stable@dpdk.org @@ -25 +26 @@ -index a461cef18..e8e2a39b6 100644 +index 41283b481..83b5e42a3 100644 @@ -28 +29 @@ -@@ -3213,5 +3213,6 @@ signal_handler(int signum) +@@ -3079,5 +3079,6 @@ signal_handler(int signum)
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/7f74d18bc553a4dbf5457a728cd24cb9f0a98c53 Thanks. Kevin Traynor --- From 7f74d18bc553a4dbf5457a728cd24cb9f0a98c53 Mon Sep 17 00:00:00 2001 From: Congwen Zhang <zhang.congwen@zte.com.cn> Date: Thu, 8 Aug 2019 08:37:20 +0800 Subject: [PATCH] net/ixgbe/base: fix product version check [ upstream commit 1861e3a66ffb7fa33e7767649c7091f1900c8808 ] The "and" condition offset == 0 && offset == NVM_INVALID_PTR can never be true. Fixes: cf3af5aa56c9 ("net/ixgbe/base: add functions to get version info") Signed-off-by: Congwen Zhang <zhang.congwen@zte.com.cn> Acked-by: Xiaolong Ye <xiaolong.ye@intel.com> --- drivers/net/ixgbe/base/ixgbe_common.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/net/ixgbe/base/ixgbe_common.c b/drivers/net/ixgbe/base/ixgbe_common.c index fb50719fb..62ff76723 100644 --- a/drivers/net/ixgbe/base/ixgbe_common.c +++ b/drivers/net/ixgbe/base/ixgbe_common.c @@ -5041,5 +5041,5 @@ void ixgbe_get_oem_prod_version(struct ixgbe_hw *hw, /* Return is offset to OEM Product Version block is invalid */ - if (offset == 0x0 && offset == NVM_INVALID_PTR) + if (offset == 0x0 || offset == NVM_INVALID_PTR) return; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.652432716 +0100 +++ 0052-net-ixgbe-base-fix-product-version-check.patch 2019-09-05 10:36:47.567699158 +0100 @@ -1 +1 @@ -From 1861e3a66ffb7fa33e7767649c7091f1900c8808 Mon Sep 17 00:00:00 2001 +From 7f74d18bc553a4dbf5457a728cd24cb9f0a98c53 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 1861e3a66ffb7fa33e7767649c7091f1900c8808 ] + @@ -10 +11,0 @@ -Cc: stable@dpdk.org
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/8cc0dde788e684eec6f9f0454f4c019071242b47 Thanks. Kevin Traynor --- From 8cc0dde788e684eec6f9f0454f4c019071242b47 Mon Sep 17 00:00:00 2001 From: Gagandeep Singh <g.singh@nxp.com> Date: Thu, 8 Aug 2019 17:43:20 +0530 Subject: [PATCH] eal: increase maximum different hugepage sizes on Arm [ upstream commit 47caefc163b884ed1911c6eec74d329d63ee46c5 ] ARM is supporting maximum 4 hugepage sizes (64K, 2M, 32M and 1G) when granule is 4KB since very long and DPDK support maximum 3 hugepage sizes. With all 4 hugepage sizes enabled, applications and some stacks like VPP which are working over DPDK and using "in-memory" eal option, or using separate mount points on ARM based platform, fails at huge page initialization, reporting error messages from eal: EAL: FATAL: Cannot get hugepage information. EAL: Cannot get hugepage information. EAL: Error - exiting with code: 1 This issue is originated from Linux 5.0 (a21b0b78eaf7 "arm64: hugetlb: Register hugepages during arch init") where kernel is by default creating directories for each supported hugepage size in /sys/kernel/mm/hugepages/ On earlier Stable Kernel LTR's, the directories visible in /sys/kernel/mm/hugepages/ were dependent upon what hugepage sizes are configured at boot time. This change increases the maximum supported hugepage sizes to 4 for ARM based platforms. Signed-off-by: Gagandeep Singh <g.singh@nxp.com> Signed-off-by: Nipun Gupta <nipun.gupta@nxp.com> --- lib/librte_eal/common/eal_internal_cfg.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/librte_eal/common/eal_internal_cfg.h b/lib/librte_eal/common/eal_internal_cfg.h index 189d4f5b2..ae92ec29b 100644 --- a/lib/librte_eal/common/eal_internal_cfg.h +++ b/lib/librte_eal/common/eal_internal_cfg.h @@ -16,5 +16,9 @@ #include "eal_thread.h" +#if defined(RTE_ARCH_ARM) || defined(RTE_ARCH_ARM64) +#define MAX_HUGEPAGE_SIZES 4 /**< support up to 4 page sizes */ +#else #define MAX_HUGEPAGE_SIZES 3 /**< support up to 3 page sizes */ +#endif /* -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.718012698 +0100 +++ 0053-eal-increase-maximum-different-hugepage-sizes-on-Arm.patch 2019-09-05 10:36:47.568699134 +0100 @@ -1 +1 @@ -From 47caefc163b884ed1911c6eec74d329d63ee46c5 Mon Sep 17 00:00:00 2001 +From 8cc0dde788e684eec6f9f0454f4c019071242b47 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 47caefc163b884ed1911c6eec74d329d63ee46c5 ] + @@ -32,2 +33,0 @@ -Cc: stable@dpdk.org - @@ -41 +41 @@ -index edff09d07..a42f34923 100644 +index 189d4f5b2..ae92ec29b 100644
Hi, FYI, your patch has been queued to LTS release 18.11.3 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 09/12/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/791dcd207781bf740167b8d449d452f01aca5ff9 Thanks. Kevin Traynor --- From 791dcd207781bf740167b8d449d452f01aca5ff9 Mon Sep 17 00:00:00 2001 From: Andrius Sirvys <andrius.sirvys@intel.com> Date: Thu, 8 Aug 2019 15:37:52 +0100 Subject: [PATCH] usertools: fix input handling in telemetry script [ upstream commit a667070b09bb8cfbd83912045391d877ed88725e ] This commit removes the unnecesarry ast.literal_eval() function call from the input handling, which now relies just on raw_input() to get its input. Fixes: 53f293c9a783 ("usertools: replace unsafe input function") Signed-off-by: Andrius Sirvys <andrius.sirvys@intel.com> Acked-by: Harry van Haaren <harry.van.haaren@intel.com> --- usertools/dpdk-telemetry-client.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/usertools/dpdk-telemetry-client.py b/usertools/dpdk-telemetry-client.py index 4afa2f84c..e0587022c 100644 --- a/usertools/dpdk-telemetry-client.py +++ b/usertools/dpdk-telemetry-client.py @@ -77,5 +77,5 @@ class Client: def repeatedlyRequestMetrics(self, sleep_time): # Recursively requests metrics for given client print("\nPlease enter the number of times you'd like to continuously request Metrics:") - n_requests = int(ast.literal_eval(raw_input("\n:"))) + n_requests = int(raw_input("\n:")) print("\033[F") #Removes the user input from screen, cleans it up print("\033[K") @@ -92,5 +92,5 @@ class Client: try: - self.choice = int(ast.literal_eval(raw_input("\n:"))) + self.choice = int(raw_input("\n:")) print("\033[F") #Removes the user input for screen, cleans it up print("\033[K") -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-09-05 10:36:50.780788204 +0100 +++ 0054-usertools-fix-input-handling-in-telemetry-script.patch 2019-09-05 10:36:47.568699134 +0100 @@ -1 +1 @@ -From a667070b09bb8cfbd83912045391d877ed88725e Mon Sep 17 00:00:00 2001 +From 791dcd207781bf740167b8d449d452f01aca5ff9 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit a667070b09bb8cfbd83912045391d877ed88725e ] + @@ -11 +12,0 @@ -Cc: stable@dpdk.org @@ -20 +21 @@ -index 4b0502ff9..60fe97af7 100755 +index 4afa2f84c..e0587022c 100644 @@ -23 +24 @@ -@@ -79,5 +79,5 @@ class Client: +@@ -77,5 +77,5 @@ class Client: @@ -30 +31 @@ -@@ -100,5 +100,5 @@ class Client: +@@ -92,5 +92,5 @@ class Client: