* [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5
@ 2018-11-29 23:09 Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'eal/arm64: fix instrinsic for GCC < 4.9' " Yongseok Koh
` (126 more replies)
0 siblings, 127 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:09 UTC (permalink / raw)
To: Shahaf Shuler; +Cc: Nelio Laranjeiro, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 9016287f9f6bada777830857b4c43df9ee435775 Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Tue, 15 May 2018 09:12:50 +0300
Subject: [PATCH] net/mlx5: add Bluefield device id
[ backported from upstream commit dd3331c6f1ced718bc1634924b35849cc4ffbd70 ]
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
config/common_base | 3 ++-
doc/guides/nics/mlx5.rst | 58 ++++++++++++++++++++++++++----------------------
drivers/net/mlx5/mlx5.c | 4 ++++
drivers/net/mlx5/mlx5.h | 1 +
4 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/config/common_base b/config/common_base
index 214d9a278..18ff43c4f 100644
--- a/config/common_base
+++ b/config/common_base
@@ -233,7 +233,8 @@ CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
#
-# Compile burst-oriented Mellanox ConnectX-4 & ConnectX-5 (MLX5) PMD
+# Compile burst-oriented Mellanox ConnectX-4, ConnectX-5 & Bluefield
+# (MLX5) PMD
#
CONFIG_RTE_LIBRTE_MLX5_PMD=n
CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 50fced3f4..1f675777a 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -32,9 +32,9 @@ MLX5 poll mode driver
=====================
The MLX5 poll mode driver library (**librte_pmd_mlx5**) provides support
-for **Mellanox ConnectX-4**, **Mellanox ConnectX-4 Lx** and **Mellanox
-ConnectX-5** families of 10/25/40/50/100 Gb/s adapters as well as their
-virtual functions (VF) in SR-IOV context.
+for **Mellanox ConnectX-4**, **Mellanox ConnectX-4 Lx** , **Mellanox
+ConnectX-5** and **Mellanox Bluefield** families of 10/25/40/50/100 Gb/s
+adapters as well as their virtual functions (VF) in SR-IOV context.
Information and documentation about these adapters can be found on the
`Mellanox website <http://www.mellanox.com>`__. Help is also provided by the
@@ -214,8 +214,8 @@ Run-time configuration
Supported on:
- - x86_64 with ConnectX-4, ConnectX-4 LX and ConnectX-5.
- - POWER8 and ARMv8 with ConnectX-4 LX and ConnectX-5.
+ - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5 and Bluefield.
+ - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5 and Bluefield.
- ``txq_inline`` parameter [int]
@@ -234,33 +234,34 @@ Run-time configuration
This option should be used in combination with ``txq_inline`` above.
- On ConnectX-4, ConnectX-4 LX and ConnectX-5 without Enhanced MPW:
+ On ConnectX-4, ConnectX-4 LX, ConnectX-5 and Bluefield without
+ Enhanced MPW:
- Disabled by default.
- In case ``txq_inline`` is set recommendation is 4.
- On ConnectX-5 with Enhanced MPW:
+ On ConnectX-5 and Bluefield with Enhanced MPW:
- Set to 8 by default.
- ``txq_mpw_en`` parameter [int]
A nonzero value enables multi-packet send (MPS) for ConnectX-4 Lx and
- enhanced multi-packet send (Enhanced MPS) for ConnectX-5. MPS allows the
- TX burst function to pack up multiple packets in a single descriptor
- session in order to save PCI bandwidth and improve performance at the
- cost of a slightly higher CPU usage. When ``txq_inline`` is set along
- with ``txq_mpw_en``, TX burst function tries to copy entire packet data
- on to TX descriptor instead of including pointer of packet only if there
- is enough room remained in the descriptor. ``txq_inline`` sets
- per-descriptor space for either pointers or inlined packets. In addition,
- Enhanced MPS supports hybrid mode - mixing inlined packets and pointers
- in the same descriptor.
+ enhanced multi-packet send (Enhanced MPS) for ConnectX-5 and Bluefield.
+ MPS allows the TX burst function to pack up multiple packets in a
+ single descriptor session in order to save PCI bandwidth and improve
+ performance at the cost of a slightly higher CPU usage. When
+ ``txq_inline`` is set along with ``txq_mpw_en``, TX burst function tries
+ to copy entire packet data on to TX descriptor instead of including
+ pointer of packet only if there is enough room remained in the
+ descriptor. ``txq_inline`` sets per-descriptor space for either pointers
+ or inlined packets. In addition, Enhanced MPS supports hybrid mode -
+ mixing inlined packets and pointers in the same descriptor.
This option cannot be used in conjunction with ``tso`` below. When ``tso``
is set, ``txq_mpw_en`` is disabled.
- It is currently only supported on the ConnectX-4 Lx and ConnectX-5
+ It is currently only supported on the ConnectX-4 Lx, ConnectX-5 and Bluefield
families of adapters. Enabled by default.
- ``txq_mpw_hdr_dseg_en`` parameter [int]
@@ -287,10 +288,10 @@ Run-time configuration
- ``tx_vec_en`` parameter [int]
- A nonzero value enables Tx vector on ConnectX-5 only NIC if the number of
+ A nonzero value enables Tx vector on ConnectX-5 and Bluefield NICs if the number of
global Tx queues on the port is lesser than MLX5_VPMD_MIN_TXQS.
- Enabled by default on ConnectX-5.
+ Enabled by default on ConnectX-5 and Bluefield.
- ``rx_vec_en`` parameter [int]
@@ -318,8 +319,9 @@ DPDK and must be installed separately:
- **libmlx5**
- Low-level user space driver library for Mellanox ConnectX-4/ConnectX-5
- devices, it is automatically loaded by libibverbs.
+ Low-level user space driver library for Mellanox
+ ConnectX-4/ConnectX-5/Bluefield devices, it is automatically loaded
+ by libibverbs.
This library basically implements send/receive calls to the hardware
queues.
@@ -333,15 +335,16 @@ DPDK and must be installed separately:
Unlike most other PMDs, these modules must remain loaded and bound to
their devices:
- - mlx5_core: hardware driver managing Mellanox ConnectX-4/ConnectX-5
- devices and related Ethernet kernel network devices.
+ - mlx5_core: hardware driver managing Mellanox
+ ConnectX-4/ConnectX-5/Bluefield devices and related Ethernet kernel
+ network devices.
- mlx5_ib: InifiniBand device driver.
- ib_uverbs: user space driver for Verbs (entry point for libibverbs).
- **Firmware update**
- Mellanox OFED releases include firmware updates for ConnectX-4/ConnectX-5
- adapters.
+ Mellanox OFED releases include firmware updates for
+ ConnectX-4/ConnectX-5/Bluefield adapters.
Because each release provides new features, these updates must be applied to
match the kernel modules and libraries they come with.
@@ -378,6 +381,7 @@ Mellanox OFED
- ConnectX-4 Lx: **14.21.1000** and above.
- ConnectX-5: **16.21.1000** and above.
- ConnectX-5 Ex: **16.21.1000** and above.
+ - Bluefield: **18.99.3950** and above.
While these libraries and kernel modules are available on OpenFabrics
Alliance's `website <https://www.openfabrics.org/>`__ and provided by package
@@ -589,7 +593,7 @@ Usage example
-------------
This section demonstrates how to launch **testpmd** with Mellanox
-ConnectX-4/ConnectX-5 devices managed by librte_pmd_mlx5.
+ConnectX-4/ConnectX-5/Bluefield devices managed by librte_pmd_mlx5.
#. Load the kernel modules:
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 36f3a0565..2db8d414b 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -1154,6 +1154,10 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF)
},
{
+ RTE_PCI_DEVICE(PCI_VENDOR_ID_MELLANOX,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX5BF)
+ },
+ {
.vendor_id = 0
}
};
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index 5e6027b82..4acc18caf 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -77,6 +77,7 @@ enum {
PCI_DEVICE_ID_MELLANOX_CONNECTX5VF = 0x1018,
PCI_DEVICE_ID_MELLANOX_CONNECTX5EX = 0x1019,
PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF = 0x101a,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX5BF = 0xa2d2,
};
struct mlx5_xstats_ctrl {
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.371821467 -0800
+++ 0001-net-mlx5-add-Bluefield-device-id.patch 2018-11-29 15:01:44.957963000 -0800
@@ -1,8 +1,10 @@
-From dd3331c6f1ced718bc1634924b35849cc4ffbd70 Mon Sep 17 00:00:00 2001
+From 9016287f9f6bada777830857b4c43df9ee435775 Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Tue, 15 May 2018 09:12:50 +0300
Subject: [PATCH] net/mlx5: add Bluefield device id
+[ backported from upstream commit dd3331c6f1ced718bc1634924b35849cc4ffbd70 ]
+
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>
---
@@ -13,11 +15,11 @@
4 files changed, 38 insertions(+), 28 deletions(-)
diff --git a/config/common_base b/config/common_base
-index c4dba709d..6b0d1cbbb 100644
+index 214d9a278..18ff43c4f 100644
--- a/config/common_base
+++ b/config/common_base
-@@ -295,7 +295,8 @@ CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
- CONFIG_RTE_LIBRTE_MLX4_DLOPEN_DEPS=n
+@@ -233,7 +233,8 @@ CONFIG_RTE_LIBRTE_MLX4_DEBUG=n
+ CONFIG_RTE_LIBRTE_MLX4_TX_MP_CACHE=8
#
-# Compile burst-oriented Mellanox ConnectX-4 & ConnectX-5 (MLX5) PMD
@@ -27,10 +29,10 @@
CONFIG_RTE_LIBRTE_MLX5_PMD=n
CONFIG_RTE_LIBRTE_MLX5_DEBUG=n
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
-index a7d5c90bc..1ec5bcde9 100644
+index 50fced3f4..1f675777a 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
-@@ -6,9 +6,9 @@ MLX5 poll mode driver
+@@ -32,9 +32,9 @@ MLX5 poll mode driver
=====================
The MLX5 poll mode driver library (**librte_pmd_mlx5**) provides support
@@ -43,7 +45,7 @@
Information and documentation about these adapters can be found on the
`Mellanox website <http://www.mellanox.com>`__. Help is also provided by the
-@@ -237,8 +237,8 @@ Run-time configuration
+@@ -214,8 +214,8 @@ Run-time configuration
Supported on:
@@ -52,9 +54,9 @@
+ - x86_64 with ConnectX-4, ConnectX-4 LX, ConnectX-5 and Bluefield.
+ - POWER8 and ARMv8 with ConnectX-4 LX, ConnectX-5 and Bluefield.
- - ``mprq_en`` parameter [int]
+ - ``txq_inline`` parameter [int]
-@@ -304,34 +304,35 @@ Run-time configuration
+@@ -234,33 +234,34 @@ Run-time configuration
This option should be used in combination with ``txq_inline`` above.
@@ -94,16 +96,15 @@
+ or inlined packets. In addition, Enhanced MPS supports hybrid mode -
+ mixing inlined packets and pointers in the same descriptor.
- This option cannot be used with certain offloads such as ``DEV_TX_OFFLOAD_TCP_TSO,
- DEV_TX_OFFLOAD_VXLAN_TNL_TSO, DEV_TX_OFFLOAD_GRE_TNL_TSO, DEV_TX_OFFLOAD_VLAN_INSERT``.
- When those offloads are requested the MPS send function will not be used.
+ This option cannot be used in conjunction with ``tso`` below. When ``tso``
+ is set, ``txq_mpw_en`` is disabled.
- It is currently only supported on the ConnectX-4 Lx and ConnectX-5
+ It is currently only supported on the ConnectX-4 Lx, ConnectX-5 and Bluefield
families of adapters. Enabled by default.
- ``txq_mpw_hdr_dseg_en`` parameter [int]
-@@ -352,14 +353,14 @@ Run-time configuration
+@@ -287,10 +288,10 @@ Run-time configuration
- ``tx_vec_en`` parameter [int]
@@ -111,16 +112,12 @@
+ A nonzero value enables Tx vector on ConnectX-5 and Bluefield NICs if the number of
global Tx queues on the port is lesser than MLX5_VPMD_MIN_TXQS.
- This option cannot be used with certain offloads such as ``DEV_TX_OFFLOAD_TCP_TSO,
- DEV_TX_OFFLOAD_VXLAN_TNL_TSO, DEV_TX_OFFLOAD_GRE_TNL_TSO, DEV_TX_OFFLOAD_VLAN_INSERT``.
- When those offloads are requested the MPS send function will not be used.
-
- Enabled by default on ConnectX-5.
+ Enabled by default on ConnectX-5 and Bluefield.
- ``rx_vec_en`` parameter [int]
-@@ -422,8 +423,9 @@ DPDK and must be installed separately:
+@@ -318,8 +319,9 @@ DPDK and must be installed separately:
- **libmlx5**
@@ -132,7 +129,7 @@
This library basically implements send/receive calls to the hardware
queues.
-@@ -437,15 +439,16 @@ DPDK and must be installed separately:
+@@ -333,15 +335,16 @@ DPDK and must be installed separately:
Unlike most other PMDs, these modules must remain loaded and bound to
their devices:
@@ -153,7 +150,7 @@
Because each release provides new features, these updates must be applied to
match the kernel modules and libraries they come with.
-@@ -482,6 +485,7 @@ Mellanox OFED
+@@ -378,6 +381,7 @@ Mellanox OFED
- ConnectX-4 Lx: **14.21.1000** and above.
- ConnectX-5: **16.21.1000** and above.
- ConnectX-5 Ex: **16.21.1000** and above.
@@ -161,7 +158,7 @@
While these libraries and kernel modules are available on OpenFabrics
Alliance's `website <https://www.openfabrics.org/>`__ and provided by package
-@@ -699,7 +703,7 @@ Usage example
+@@ -589,7 +593,7 @@ Usage example
-------------
This section demonstrates how to launch **testpmd** with Mellanox
@@ -171,10 +168,10 @@
#. Load the kernel modules:
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
-index f455ea8ea..8e0445e3c 100644
+index 36f3a0565..2db8d414b 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
-@@ -1248,6 +1248,10 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
+@@ -1154,6 +1154,10 @@ static const struct rte_pci_id mlx5_pci_id_map[] = {
PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF)
},
{
@@ -186,17 +183,17 @@
}
};
diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
-index c4c962b92..a9c692555 100644
+index 5e6027b82..4acc18caf 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
-@@ -50,6 +50,7 @@ enum {
+@@ -77,6 +77,7 @@ enum {
PCI_DEVICE_ID_MELLANOX_CONNECTX5VF = 0x1018,
PCI_DEVICE_ID_MELLANOX_CONNECTX5EX = 0x1019,
PCI_DEVICE_ID_MELLANOX_CONNECTX5EXVF = 0x101a,
+ PCI_DEVICE_ID_MELLANOX_CONNECTX5BF = 0xa2d2,
};
- LIST_HEAD(mlx5_dev_list, priv);
+ struct mlx5_xstats_ctrl {
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal/arm64: fix instrinsic for GCC < 4.9' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
@ 2018-11-29 23:09 ` Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'mem: fix memory initialization time' " Yongseok Koh
` (125 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:09 UTC (permalink / raw)
To: Yongseok Koh; +Cc: Jerin Jacob, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From abb22a1404e9033e006af5e87bcbaec40fde7d9e Mon Sep 17 00:00:00 2001
From: Yongseok Koh <yskoh@mellanox.com>
Date: Tue, 30 Jan 2018 16:07:08 -0800
Subject: [PATCH] eal/arm64: fix instrinsic for GCC < 4.9
[ upstream commit dffa1f304939d57431b262ae9fc1f636b346dda0 ]
vceqzq_u32() is being used by mlx5 PMD but added since gcc 4.9.
Fixes: 570acdb1da8a ("net/mlx5: add vectorized Rx/Tx burst for ARM")
Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
lib/librte_eal/common/include/arch/arm/rte_vect.h | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/lib/librte_eal/common/include/arch/arm/rte_vect.h b/lib/librte_eal/common/include/arch/arm/rte_vect.h
index aa887a972..e5c1d358b 100644
--- a/lib/librte_eal/common/include/arch/arm/rte_vect.h
+++ b/lib/librte_eal/common/include/arch/arm/rte_vect.h
@@ -106,6 +106,12 @@ vcopyq_laneq_u32(uint32x4_t a, const int lane_a,
typedef uint64_t poly64_t;
typedef uint64x2_t poly64x2_t;
typedef uint8_t poly128_t __attribute__((vector_size(16), aligned(16)));
+
+static inline uint32x4_t
+vceqzq_u32(uint32x4_t a)
+{
+ return (a == 0);
+}
#endif
/* NEON intrinsic vreinterpretq_u64_p128() is supported since GCC version 7 */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.416410592 -0800
+++ 0002-eal-arm64-fix-instrinsic-for-GCC-4.9.patch 2018-11-29 15:01:44.959963000 -0800
@@ -1,8 +1,10 @@
-From dffa1f304939d57431b262ae9fc1f636b346dda0 Mon Sep 17 00:00:00 2001
+From abb22a1404e9033e006af5e87bcbaec40fde7d9e Mon Sep 17 00:00:00 2001
From: Yongseok Koh <yskoh@mellanox.com>
Date: Tue, 30 Jan 2018 16:07:08 -0800
Subject: [PATCH] eal/arm64: fix instrinsic for GCC < 4.9
+[ upstream commit dffa1f304939d57431b262ae9fc1f636b346dda0 ]
+
vceqzq_u32() is being used by mlx5 PMD but added since gcc 4.9.
Fixes: 570acdb1da8a ("net/mlx5: add vectorized Rx/Tx burst for ARM")
@@ -15,10 +17,10 @@
1 file changed, 6 insertions(+)
diff --git a/lib/librte_eal/common/include/arch/arm/rte_vect.h b/lib/librte_eal/common/include/arch/arm/rte_vect.h
-index 5cc34190f..2a18a6854 100644
+index aa887a972..e5c1d358b 100644
--- a/lib/librte_eal/common/include/arch/arm/rte_vect.h
+++ b/lib/librte_eal/common/include/arch/arm/rte_vect.h
-@@ -78,6 +78,12 @@ vcopyq_laneq_u32(uint32x4_t a, const int lane_a,
+@@ -106,6 +106,12 @@ vcopyq_laneq_u32(uint32x4_t a, const int lane_a,
typedef uint64_t poly64_t;
typedef uint64x2_t poly64x2_t;
typedef uint8_t poly128_t __attribute__((vector_size(16), aligned(16)));
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'mem: fix memory initialization time' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'eal/arm64: fix instrinsic for GCC < 4.9' " Yongseok Koh
@ 2018-11-29 23:09 ` Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Yongseok Koh
` (124 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:09 UTC (permalink / raw)
To: Alejandro Lucero; +Cc: Anatoly Burakov, Eelco Chaudron, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 2aadc16b2f8323490d4017e6e77c80d56c45ca41 Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Mon, 12 Nov 2018 11:18:19 +0000
Subject: [PATCH] mem: fix memory initialization time
When using large amount of hugepage based memory, doing all the
hugepages mapping can take quite significant time.
The problem is hugepages being initially mmaped to virtual addresses
which will be tried later for the final hugepage mmaping. This causes
the final mapping requiring calling mmap with another hint address which
can happen several times, depending on the amount of memory to mmap, and
which each mmmap taking more than a second.
This patch changes the hint for the initial hugepage mmaping using
a starting address which will not collide with the final mmaping.
Fixes: 293c0c4b957f ("mem: use address hint for mapping hugepages")
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Eelco Chaudron <echaudro@redhat.com>
Tested-by: Eelco Chaudron <echaudro@redhat.com>
---
lib/librte_eal/linuxapp/eal/eal_memory.c | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
index bac969a12..0675809b7 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
@@ -421,6 +421,21 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
}
#endif
+#ifdef RTE_ARCH_64
+ /*
+ * Hugepages are first mmaped individually and then re-mmapped to
+ * another region for having contiguous physical pages in contiguous
+ * virtual addresses. Setting here vma_addr for the first hugepage
+ * mapped to a virtual address which will not collide with the second
+ * mmaping later. The next hugepages will use increments of this
+ * initial address.
+ *
+ * The final virtual address will be based on baseaddr which is
+ * 0x100000000. We use a hint here starting at 0x200000000, leaving
+ * another 4GB just in case, plus the total available hugepages memory.
+ */
+ vma_addr = (char *)0x200000000 + (hpi->hugepage_sz * hpi->num_pages[0]);
+#endif
for (i = 0; i < hpi->num_pages[0]; i++) {
uint64_t hugepage_sz = hpi->hugepage_sz;
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'eal/arm64: fix instrinsic for GCC < 4.9' " Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'mem: fix memory initialization time' " Yongseok Koh
@ 2018-11-29 23:09 ` Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Yongseok Koh
` (123 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:09 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: Raslan Darawsheh, Thomas F Herbert, Phil Yang, Gavin Hu,
Jerin Jacob, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From b2191d0999b615ee8b74bc918c7aa4ffc9deda23 Mon Sep 17 00:00:00 2001
From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Date: Sun, 2 Sep 2018 13:35:28 -0500
Subject: [PATCH] build: enable ARM NEON flag when __aarch64__ defined
[ backported from upstream commit 68acaa86ae639e3cdd94e419f546045a1b0ce6ca ]
GCC version 4.8.5 does not pre-define __ARM_NEON. NEON is not
optional for ArmV8. Hence NEON related code can be enabled
when __aarch64__ is defined.
Bugzilla ID: 82
Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Reported-by: Thomas F Herbert <therbert@redhat.com>
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
mk/rte.cpuflags.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
index a813c91f4..64caa3dbc 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
@@ -117,7 +117,7 @@ CPUFLAGS += VSX
endif
# ARM flags
-ifneq ($(filter $(AUTO_CPUFLAGS),__ARM_NEON),)
+ifneq ($(filter __ARM_NEON __aarch64__,$(AUTO_CPUFLAGS)),)
CPUFLAGS += NEON
endif
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.489297769 -0800
+++ 0004-build-enable-ARM-NEON-flag-when-__aarch64__-defined.patch 2018-11-29 15:01:44.963961000 -0800
@@ -1,14 +1,15 @@
-From 68acaa86ae639e3cdd94e419f546045a1b0ce6ca Mon Sep 17 00:00:00 2001
+From b2191d0999b615ee8b74bc918c7aa4ffc9deda23 Mon Sep 17 00:00:00 2001
From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Date: Sun, 2 Sep 2018 13:35:28 -0500
Subject: [PATCH] build: enable ARM NEON flag when __aarch64__ defined
+[ backported from upstream commit 68acaa86ae639e3cdd94e419f546045a1b0ce6ca ]
+
GCC version 4.8.5 does not pre-define __ARM_NEON. NEON is not
optional for ArmV8. Hence NEON related code can be enabled
when __aarch64__ is defined.
Bugzilla ID: 82
-Cc: stable@dpdk.org
Reported-by: Raslan Darawsheh <rasland@mellanox.com>
Reported-by: Thomas F Herbert <therbert@redhat.com>
@@ -17,29 +18,14 @@
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
- config/arm/meson.build | 3 ++-
- mk/rte.cpuflags.mk | 2 +-
- 2 files changed, 3 insertions(+), 2 deletions(-)
+ mk/rte.cpuflags.mk | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
-diff --git a/config/arm/meson.build b/config/arm/meson.build
-index 40dbc87f7..94cca490e 100644
---- a/config/arm/meson.build
-+++ b/config/arm/meson.build
-@@ -157,7 +157,8 @@ else
- endif
- message(machine_args)
-
--if cc.get_define('__ARM_NEON', args: machine_args) != ''
-+if (cc.get_define('__ARM_NEON', args: machine_args) != '' or
-+ cc.get_define('__aarch64__', args: machine_args) != '')
- dpdk_conf.set('RTE_MACHINE_CPUFLAG_NEON', 1)
- compile_time_cpuflags += ['RTE_CPUFLAG_NEON']
- endif
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
-index 60713137d..43ed84155 100644
+index a813c91f4..64caa3dbc 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
-@@ -89,7 +89,7 @@ CPUFLAGS += VSX
+@@ -117,7 +117,7 @@ CPUFLAGS += VSX
endif
# ARM flags
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'acl: forbid rule with priority zero' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (2 preceding siblings ...)
2018-11-29 23:09 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Yongseok Koh
@ 2018-11-29 23:09 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Yongseok Koh
` (122 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:09 UTC (permalink / raw)
To: Konstantin Ananyev; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From afcbfc6d91dd4c3058c0917e50c159f71e6a7d81 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@intel.com>
Date: Fri, 24 Aug 2018 17:47:06 +0100
Subject: [PATCH] acl: forbid rule with priority zero
[ upstream commit 53945477981cf75cf8d66e67a098b486e37df167 ]
If user specifies priority=0 for some of ACL rules
that can cause rte_acl_classify to return wrong results.
The reason is that priority zero is used internally for no-match nodes.
See more details at: https://bugs.dpdk.org/show_bug.cgi?id=79.
The simplest way to overcome the issue is just not allow zero
to be a valid priority for the rule.
Fixes: dc276b5780c2 ("acl: new library")
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_acl/rte_acl.h | 2 +-
test/test/test_acl.h | 18 ++++++++++++------
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/lib/librte_acl/rte_acl.h b/lib/librte_acl/rte_acl.h
index b53179a83..3a3ebcdee 100644
--- a/lib/librte_acl/rte_acl.h
+++ b/lib/librte_acl/rte_acl.h
@@ -117,7 +117,7 @@ enum {
RTE_ACL_TYPE_SHIFT = 29,
RTE_ACL_MAX_INDEX = RTE_LEN2MASK(RTE_ACL_TYPE_SHIFT, uint32_t),
RTE_ACL_MAX_PRIORITY = RTE_ACL_MAX_INDEX,
- RTE_ACL_MIN_PRIORITY = 0,
+ RTE_ACL_MIN_PRIORITY = 1,
};
#define RTE_ACL_MASKLEN_TO_BITMASK(v, s) \
diff --git a/test/test/test_acl.h b/test/test/test_acl.h
index 421f3109b..6f5c485ad 100644
--- a/test/test/test_acl.h
+++ b/test/test/test_acl.h
@@ -109,34 +109,40 @@ enum {
struct rte_acl_ipv4vlan_rule invalid_layout_rules[] = {
/* test src and dst address */
{
- .data = {.userdata = 1, .category_mask = 1},
+ .data = {.userdata = 1, .category_mask = 1,
+ .priority = 1},
.src_addr = IPv4(10,0,0,0),
.src_mask_len = 24,
},
{
- .data = {.userdata = 2, .category_mask = 1},
+ .data = {.userdata = 2, .category_mask = 1,
+ .priority = 1},
.dst_addr = IPv4(10,0,0,0),
.dst_mask_len = 24,
},
/* test src and dst ports */
{
- .data = {.userdata = 3, .category_mask = 1},
+ .data = {.userdata = 3, .category_mask = 1,
+ .priority = 1},
.dst_port_low = 100,
.dst_port_high = 100,
},
{
- .data = {.userdata = 4, .category_mask = 1},
+ .data = {.userdata = 4, .category_mask = 1,
+ .priority = 1},
.src_port_low = 100,
.src_port_high = 100,
},
/* test proto */
{
- .data = {.userdata = 5, .category_mask = 1},
+ .data = {.userdata = 5, .category_mask = 1,
+ .priority = 1},
.proto = 0xf,
.proto_mask = 0xf
},
{
- .data = {.userdata = 6, .category_mask = 1},
+ .data = {.userdata = 6, .category_mask = 1,
+ .priority = 1},
.dst_port_low = 0xf,
.dst_port_high = 0xf,
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.529508404 -0800
+++ 0005-acl-forbid-rule-with-priority-zero.patch 2018-11-29 15:01:44.966960000 -0800
@@ -1,8 +1,10 @@
-From 53945477981cf75cf8d66e67a098b486e37df167 Mon Sep 17 00:00:00 2001
+From afcbfc6d91dd4c3058c0917e50c159f71e6a7d81 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@intel.com>
Date: Fri, 24 Aug 2018 17:47:06 +0100
Subject: [PATCH] acl: forbid rule with priority zero
+[ upstream commit 53945477981cf75cf8d66e67a098b486e37df167 ]
+
If user specifies priority=0 for some of ACL rules
that can cause rte_acl_classify to return wrong results.
The reason is that priority zero is used internally for no-match nodes.
@@ -11,7 +13,6 @@
to be a valid priority for the rule.
Fixes: dc276b5780c2 ("acl: new library")
-Cc: stable@dpdk.org
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
@@ -20,10 +21,10 @@
2 files changed, 13 insertions(+), 7 deletions(-)
diff --git a/lib/librte_acl/rte_acl.h b/lib/librte_acl/rte_acl.h
-index 34c3b9c6a..aa22e70c6 100644
+index b53179a83..3a3ebcdee 100644
--- a/lib/librte_acl/rte_acl.h
+++ b/lib/librte_acl/rte_acl.h
-@@ -88,7 +88,7 @@ enum {
+@@ -117,7 +117,7 @@ enum {
RTE_ACL_TYPE_SHIFT = 29,
RTE_ACL_MAX_INDEX = RTE_LEN2MASK(RTE_ACL_TYPE_SHIFT, uint32_t),
RTE_ACL_MAX_PRIORITY = RTE_ACL_MAX_INDEX,
@@ -33,10 +34,10 @@
#define RTE_ACL_MASKLEN_TO_BITMASK(v, s) \
diff --git a/test/test/test_acl.h b/test/test/test_acl.h
-index c4811c8f5..bbb0447a8 100644
+index 421f3109b..6f5c485ad 100644
--- a/test/test/test_acl.h
+++ b/test/test/test_acl.h
-@@ -80,34 +80,40 @@ enum {
+@@ -109,34 +109,40 @@ enum {
struct rte_acl_ipv4vlan_rule invalid_layout_rules[] = {
/* test src and dst address */
{
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (3 preceding siblings ...)
2018-11-29 23:09 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Yongseok Koh
` (121 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Yunjian Wang; +Cc: Chas Williams, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a018f8ab816ad9b91833cacb13c7ed9a95ae7785 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Tue, 7 Aug 2018 16:10:46 +0800
Subject: [PATCH] net/bonding: support matching QinQ ethertype
[ upstream commit 763e450ae24d88b87f1eb86643a2897b141d9c07 ]
We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
but it could be 0x88A8 if QinQ is supported.
Fixes: 06fe78b98ccd ("bond: add mode 6")
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Chas Williams <chas3@att.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 8880231ea..15da5185e 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -64,7 +64,8 @@ get_vlan_offset(struct ether_hdr *eth_hdr, uint16_t *proto)
{
size_t vlan_offset = 0;
- if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto) {
+ if (rte_cpu_to_be_16(ETHER_TYPE_VLAN) == *proto ||
+ rte_cpu_to_be_16(ETHER_TYPE_QINQ) == *proto) {
struct vlan_hdr *vlan_hdr = (struct vlan_hdr *)(eth_hdr + 1);
vlan_offset = sizeof(struct vlan_hdr);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.570682860 -0800
+++ 0006-net-bonding-support-matching-QinQ-ethertype.patch 2018-11-29 15:01:44.969961000 -0800
@@ -1,13 +1,14 @@
-From 763e450ae24d88b87f1eb86643a2897b141d9c07 Mon Sep 17 00:00:00 2001
+From a018f8ab816ad9b91833cacb13c7ed9a95ae7785 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Tue, 7 Aug 2018 16:10:46 +0800
Subject: [PATCH] net/bonding: support matching QinQ ethertype
+[ upstream commit 763e450ae24d88b87f1eb86643a2897b141d9c07 ]
+
We assume VLAN ethtertype is 0x8100 in get_vlan_offset() function,
but it could be 0x88A8 if QinQ is supported.
Fixes: 06fe78b98ccd ("bond: add mode 6")
-Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Chas Williams <chas3@att.com>
@@ -16,10 +17,10 @@
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
-index 58f7377c6..441742258 100644
+index 8880231ea..15da5185e 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
-@@ -37,7 +37,8 @@ get_vlan_offset(struct ether_hdr *eth_hdr, uint16_t *proto)
+@@ -64,7 +64,8 @@ get_vlan_offset(struct ether_hdr *eth_hdr, uint16_t *proto)
{
size_t vlan_offset = 0;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (4 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Yongseok Koh
` (120 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Shahaf Shuler; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a2ffb6cbc8fd31294b63d893967e0b50816d3adf Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Mon, 13 Aug 2018 09:47:57 +0300
Subject: [PATCH] net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default
[ backported from upstream commit f9de87187b7f233cc5b1ea964c05311dfeed951a ]
On ConnectX-4 Lx the Multi Packet Send (MPW) feature is considered
un-secure, as on some cases were the application provides incorrect mbufs
on the Tx burst the host or NIC can get stuck.
Hence, disabling the feature by default for this specific NIC.
Users can still enable this feature and enjoy the performance gain
(mostly for low number of cores) by using the txq_mpw_en devarg.
This patch will impact the out of the box performance of some application
using ConnectX-4 Lx for the sack of security and robustness.
Since we need different defaults based on the underlying device the mpw
field in the configuration struct was extended to contain also the
MLX5_ARG_UNSET option.
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
doc/guides/nics/mlx5.rst | 7 ++++++-
drivers/net/mlx5/mlx5.c | 9 ++++++++-
2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
index 1f675777a..1da0dc986 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
@@ -262,7 +262,12 @@ Run-time configuration
is set, ``txq_mpw_en`` is disabled.
It is currently only supported on the ConnectX-4 Lx, ConnectX-5 and Bluefield
- families of adapters. Enabled by default.
+ families of adapters.
+ On ConnectX-4 Lx the MPW is considered un-secure hence disabled by default.
+ Users which enable the MPW should be aware that application which provides incorrect
+ mbuf descriptors in the Tx burst can lead to serious errors in the host including, on some cases,
+ NIC to get stuck.
+ On ConnectX-5 and Bluefield the MPW is secure and enabled by default.
- ``txq_mpw_hdr_dseg_en`` parameter [int]
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
index 2db8d414b..b9db45770 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
@@ -640,8 +640,15 @@ mlx5_args_assign(struct priv *priv, struct mlx5_args *args)
priv->txq_inline = args->txq_inline;
if (args->txqs_inline != MLX5_ARG_UNSET)
priv->txqs_inline = args->txqs_inline;
- if (args->mps != MLX5_ARG_UNSET)
+ if (args->mps != MLX5_ARG_UNSET) {
priv->mps = args->mps ? priv->mps : 0;
+ } else if (priv->mps == MLX5_MPW) {
+ /*
+ * MPW is disabled by default, while the Enhanced MPW is enabled
+ * by default.
+ */
+ priv->mps = MLX5_MPW_DISABLED;
+ }
if (args->mpw_hdr_dseg != MLX5_ARG_UNSET)
priv->mpw_hdr_dseg = args->mpw_hdr_dseg;
if (args->inline_max_packet_sz != MLX5_ARG_UNSET)
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.614282183 -0800
+++ 0007-net-mlx5-disable-ConnectX-4-Lx-Multi-Packet-Send-by-.patch 2018-11-29 15:01:44.971962000 -0800
@@ -1,8 +1,10 @@
-From f9de87187b7f233cc5b1ea964c05311dfeed951a Mon Sep 17 00:00:00 2001
+From a2ffb6cbc8fd31294b63d893967e0b50816d3adf Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Mon, 13 Aug 2018 09:47:57 +0300
Subject: [PATCH] net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default
+[ backported from upstream commit f9de87187b7f233cc5b1ea964c05311dfeed951a ]
+
On ConnectX-4 Lx the Multi Packet Send (MPW) feature is considered
un-secure, as on some cases were the application provides incorrect mbufs
on the Tx burst the host or NIC can get stuck.
@@ -18,22 +20,19 @@
field in the configuration struct was extended to contain also the
MLX5_ARG_UNSET option.
-Cc: stable@dpdk.org
-
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Acked-by: Yongseok Koh <yskoh@mellanox.com>
---
- doc/guides/nics/mlx5.rst | 7 ++++++-
- drivers/net/mlx5/mlx5.c | 20 +++++++++++---------
- drivers/net/mlx5/mlx5.h | 2 +-
- 3 files changed, 18 insertions(+), 11 deletions(-)
+ doc/guides/nics/mlx5.rst | 7 ++++++-
+ drivers/net/mlx5/mlx5.c | 9 ++++++++-
+ 2 files changed, 14 insertions(+), 2 deletions(-)
diff --git a/doc/guides/nics/mlx5.rst b/doc/guides/nics/mlx5.rst
-index 52e1213cf..dbdb90b59 100644
+index 1f675777a..1da0dc986 100644
--- a/doc/guides/nics/mlx5.rst
+++ b/doc/guides/nics/mlx5.rst
-@@ -339,7 +339,12 @@ Run-time configuration
- When those offloads are requested the MPS send function will not be used.
+@@ -262,7 +262,12 @@ Run-time configuration
+ is set, ``txq_mpw_en`` is disabled.
It is currently only supported on the ConnectX-4 Lx, ConnectX-5 and Bluefield
- families of adapters. Enabled by default.
@@ -47,77 +46,26 @@
- ``txq_mpw_hdr_dseg_en`` parameter [int]
diff --git a/drivers/net/mlx5/mlx5.c b/drivers/net/mlx5/mlx5.c
-index ec63bc6e2..30d4e70a7 100644
+index 2db8d414b..b9db45770 100644
--- a/drivers/net/mlx5/mlx5.c
+++ b/drivers/net/mlx5/mlx5.c
-@@ -477,7 +477,7 @@ mlx5_args_check(const char *key, const char *val, void *opaque)
- } else if (strcmp(MLX5_TXQS_MIN_INLINE, key) == 0) {
- config->txqs_inline = tmp;
- } else if (strcmp(MLX5_TXQ_MPW_EN, key) == 0) {
-- config->mps = !!tmp ? config->mps : 0;
-+ config->mps = !!tmp;
- } else if (strcmp(MLX5_TXQ_MPW_HDR_DSEG_EN, key) == 0) {
- config->mpw_hdr_dseg = !!tmp;
- } else if (strcmp(MLX5_TXQ_MAX_INLINE_LEN, key) == 0) {
-@@ -702,6 +702,7 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
- struct mlx5dv_context dv_attr = { .comp_mask = 0 };
- struct mlx5_dev_config config = {
- .vf = !!vf,
-+ .mps = MLX5_ARG_UNSET,
- .tx_vec_en = 1,
- .rx_vec_en = 1,
- .mpw_hdr_dseg = 0,
-@@ -791,7 +792,6 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
- DRV_LOG(DEBUG, "MPW isn't supported");
- mps = MLX5_MPW_DISABLED;
- }
-- config.mps = mps;
- #ifdef HAVE_IBV_MLX5_MOD_SWP
- if (dv_attr.comp_mask & MLX5DV_CONTEXT_MASK_SWP)
- swp = dv_attr.sw_parsing_caps.sw_parsing_offloads;
-@@ -1035,13 +1035,15 @@ mlx5_dev_spawn(struct rte_device *dpdk_dev,
- (1 << IBV_QPT_RAW_PACKET)));
- if (config.tso)
- config.tso_max_payload_sz = attr.tso_caps.max_tso;
-- if (config.mps && !mps) {
-- DRV_LOG(ERR,
-- "multi-packet send not supported on this device"
-- " (" MLX5_TXQ_MPW_EN ")");
-- err = ENOTSUP;
-- goto error;
-- }
-+ /*
-+ * MPW is disabled by default, while the Enhanced MPW is enabled
-+ * by default.
-+ */
-+ if (config.mps == MLX5_ARG_UNSET)
-+ config.mps = (mps == MLX5_MPW_ENHANCED) ? MLX5_MPW_ENHANCED :
-+ MLX5_MPW_DISABLED;
-+ else
-+ config.mps = config.mps ? mps : MLX5_MPW_DISABLED;
- DRV_LOG(INFO, "%sMPS is %s",
- config.mps == MLX5_MPW_ENHANCED ? "enhanced " : "",
- config.mps != MLX5_MPW_DISABLED ? "enabled" : "disabled");
-diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
-index a3a34cffd..35a196e76 100644
---- a/drivers/net/mlx5/mlx5.h
-+++ b/drivers/net/mlx5/mlx5.h
-@@ -99,7 +99,6 @@ struct mlx5_dev_config {
- unsigned int hw_fcs_strip:1; /* FCS stripping is supported. */
- unsigned int hw_padding:1; /* End alignment padding is supported. */
- unsigned int vf:1; /* This is a VF. */
-- unsigned int mps:2; /* Multi-packet send supported mode. */
- unsigned int tunnel_en:1;
- /* Whether tunnel stateless offloads are supported. */
- unsigned int mpls_en:1; /* MPLS over GRE/UDP is enabled. */
-@@ -122,6 +121,7 @@ struct mlx5_dev_config {
- unsigned int min_rxqs_num;
- /* Rx queue count threshold to enable MPRQ. */
- } mprq; /* Configurations for Multi-Packet RQ. */
-+ int mps; /* Multi-packet send supported mode. */
- unsigned int flow_prio; /* Number of flow priorities. */
- unsigned int tso_max_payload_sz; /* Maximum TCP payload for TSO. */
- unsigned int ind_table_max_size; /* Maximum indirection table size. */
+@@ -640,8 +640,15 @@ mlx5_args_assign(struct priv *priv, struct mlx5_args *args)
+ priv->txq_inline = args->txq_inline;
+ if (args->txqs_inline != MLX5_ARG_UNSET)
+ priv->txqs_inline = args->txqs_inline;
+- if (args->mps != MLX5_ARG_UNSET)
++ if (args->mps != MLX5_ARG_UNSET) {
+ priv->mps = args->mps ? priv->mps : 0;
++ } else if (priv->mps == MLX5_MPW) {
++ /*
++ * MPW is disabled by default, while the Enhanced MPW is enabled
++ * by default.
++ */
++ priv->mps = MLX5_MPW_DISABLED;
++ }
+ if (args->mpw_hdr_dseg != MLX5_ARG_UNSET)
+ priv->mpw_hdr_dseg = args->mpw_hdr_dseg;
+ if (args->inline_max_packet_sz != MLX5_ARG_UNSET)
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: fix wrong usage of bind command' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (5 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Yongseok Koh
` (119 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Rami Rosen; +Cc: Zhiyong Yang, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From fef2270885afff6ad0e4e7e4b1699c87c1b9f23a Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Fri, 24 Aug 2018 10:43:02 +0300
Subject: [PATCH] doc: fix wrong usage of bind command
[ upstream commit b733c60f68f12e064359b27e630305c541a3fbdf ]
This patch fixes wrong usage of bind command in vhost.rst.
Using "dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0" gives
an error of "unbind failed". It should be "-b uio_pci_generic" so
it will work correctly.
Fixes: a971c509a523 ("doc: update vhost sample guide")
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
doc/guides/sample_app_ug/vhost.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst
index 5735adbb1..99e1a2d86 100644
--- a/doc/guides/sample_app_ug/vhost.rst
+++ b/doc/guides/sample_app_ug/vhost.rst
@@ -107,7 +107,7 @@ could be done by:
.. code-block:: console
modprobe uio_pci_generic
- $RTE_SDK/usertools/dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0
+ $RTE_SDK/usertools/dpdk-devbind.py -b uio_pci_generic 0000:00:04.0
Then start testpmd for packet forwarding testing.
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.657772825 -0800
+++ 0008-doc-fix-wrong-usage-of-bind-command.patch 2018-11-29 15:01:44.973963000 -0800
@@ -1,15 +1,16 @@
-From b733c60f68f12e064359b27e630305c541a3fbdf Mon Sep 17 00:00:00 2001
+From fef2270885afff6ad0e4e7e4b1699c87c1b9f23a Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Fri, 24 Aug 2018 10:43:02 +0300
Subject: [PATCH] doc: fix wrong usage of bind command
+[ upstream commit b733c60f68f12e064359b27e630305c541a3fbdf ]
+
This patch fixes wrong usage of bind command in vhost.rst.
Using "dpdk-devbind.py -b=uio_pci_generic 0000:00:04.0" gives
an error of "unbind failed". It should be "-b uio_pci_generic" so
it will work correctly.
Fixes: a971c509a523 ("doc: update vhost sample guide")
-Cc: stable@dpdk.org
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Acked-by: Zhiyong Yang <zhiyong.yang@intel.com>
@@ -19,10 +20,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/sample_app_ug/vhost.rst b/doc/guides/sample_app_ug/vhost.rst
-index fd42cb3f7..df4d6f9a0 100644
+index 5735adbb1..99e1a2d86 100644
--- a/doc/guides/sample_app_ug/vhost.rst
+++ b/doc/guides/sample_app_ug/vhost.rst
-@@ -78,7 +78,7 @@ could be done by:
+@@ -107,7 +107,7 @@ could be done by:
.. code-block:: console
modprobe uio_pci_generic
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (6 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Yongseok Koh
` (118 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Rami Rosen; +Cc: Tiwei Bie, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6e3d90979922e8eb967cf9198fdde7c722443206 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Sat, 25 Aug 2018 22:22:40 +0300
Subject: [PATCH] examples/vhost: remove unnecessary constant
[ upstream commit b24ec9bc1c43f7cada0b16709043f84f52f2b895 ]
This patch removes an unnecessary definition of MAX_PRINT_BUFF
in examples/vhost/main.c, since it is no longer being used.
Fixes: 68363d85857d ("examples/vhost: remove the non-working zero copy code")
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
examples/vhost/main.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
index 1f532fe3b..82660a673 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
@@ -87,9 +87,6 @@
/* Max number of devices. Limited by vmdq. */
#define MAX_DEVICES 64
-/* Size of buffers used for snprintfs. */
-#define MAX_PRINT_BUFF 6072
-
/* Maximum long option length for option parsing. */
#define MAX_LONG_OPT_SZ 64
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.699995954 -0800
+++ 0009-examples-vhost-remove-unnecessary-constant.patch 2018-11-29 15:01:44.975963000 -0800
@@ -1,13 +1,14 @@
-From b24ec9bc1c43f7cada0b16709043f84f52f2b895 Mon Sep 17 00:00:00 2001
+From 6e3d90979922e8eb967cf9198fdde7c722443206 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Sat, 25 Aug 2018 22:22:40 +0300
Subject: [PATCH] examples/vhost: remove unnecessary constant
+[ upstream commit b24ec9bc1c43f7cada0b16709043f84f52f2b895 ]
+
This patch removes an unnecessary definition of MAX_PRINT_BUFF
in examples/vhost/main.c, since it is no longer being used.
Fixes: 68363d85857d ("examples/vhost: remove the non-working zero copy code")
-Cc: stable@dpdk.org
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
@@ -16,10 +17,10 @@
1 file changed, 3 deletions(-)
diff --git a/examples/vhost/main.c b/examples/vhost/main.c
-index 2175c1186..5d28d03f6 100644
+index 1f532fe3b..82660a673 100644
--- a/examples/vhost/main.c
+++ b/examples/vhost/main.c
-@@ -58,9 +58,6 @@
+@@ -87,9 +87,6 @@
/* Max number of devices. Limited by vmdq. */
#define MAX_DEVICES 64
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (7 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Yongseok Koh
` (117 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Igor Romanov; +Cc: Andrew Rybchenko, Chas Williams, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 80c2c543ecb29442962f2c9a996ed9edbf869340 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Wed, 29 Aug 2018 08:48:30 +0100
Subject: [PATCH] net/bonding: use evenly distributed default RSS RETA
[ upstream commit 617d1ac2fd22e9a82d305c0607853f4ee0f7277b ]
Default Redirection Table that is set in bonding driver is distributed
evenly over all Rx queues only within every RETA group (the first RETA
entries in every group are always start with zero). But in the most
drivers, default RETA is distributed over all Rx queues without sequence
resets in the beginning of a new group, which implies more balanced
per-core load.
Change the default RETA to be evenly distributed over all Rx queues
considering the whole table.
Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 15da5185e..2f90451a6 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -3026,7 +3026,9 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
for (i = 0; i < RTE_DIM(internals->reta_conf); i++) {
internals->reta_conf[i].mask = ~0LL;
for (j = 0; j < RTE_RETA_GROUP_SIZE; j++)
- internals->reta_conf[i].reta[j] = j % dev->data->nb_rx_queues;
+ internals->reta_conf[i].reta[j] =
+ (i * RTE_RETA_GROUP_SIZE + j) %
+ dev->data->nb_rx_queues;
}
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.740604765 -0800
+++ 0010-net-bonding-use-evenly-distributed-default-RSS-RETA.patch 2018-11-29 15:01:44.977970000 -0800
@@ -1,8 +1,10 @@
-From 617d1ac2fd22e9a82d305c0607853f4ee0f7277b Mon Sep 17 00:00:00 2001
+From 80c2c543ecb29442962f2c9a996ed9edbf869340 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Wed, 29 Aug 2018 08:48:30 +0100
Subject: [PATCH] net/bonding: use evenly distributed default RSS RETA
+[ upstream commit 617d1ac2fd22e9a82d305c0607853f4ee0f7277b ]
+
Default Redirection Table that is set in bonding driver is distributed
evenly over all Rx queues only within every RETA group (the first RETA
entries in every group are always start with zero). But in the most
@@ -14,7 +16,6 @@
considering the whole table.
Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
-Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -24,10 +25,10 @@
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
-index b84f32263..0f5ab09e3 100644
+index 15da5185e..2f90451a6 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
-@@ -3293,7 +3293,9 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
+@@ -3026,7 +3026,9 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
for (i = 0; i < RTE_DIM(internals->reta_conf); i++) {
internals->reta_conf[i].mask = ~0LL;
for (j = 0; j < RTE_RETA_GROUP_SIZE; j++)
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (8 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Yongseok Koh
` (116 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Igor Romanov; +Cc: Andrew Rybchenko, Chas Williams, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8d3a03504e71fd71cb739433e15a18faeae6bd24 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Wed, 29 Aug 2018 08:51:24 +0100
Subject: [PATCH] net/bonding: do not ignore RSS key on device config
[ upstream commit 83cf204a982918fd56b15f9d458d1dfb1e724b5f ]
Bonding driver ignores the value of RSS key (that is set in the port RSS
configuration) in bond_ethdev_configure(). So the only way to set
non-default RSS key is by using rss_hash_update(). This is not an
expected behaviour.
Make the bond_ethdev_configure() set default RSS key only if
requested key is set to NULL.
Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Chas Williams <chas3@att.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 27 +++++++++++++++++++--------
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 2f90451a6..9ff898724 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -1689,12 +1689,11 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
/* If RSS is enabled for bonding, try to enable it for slaves */
if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
- if (bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len
- != 0) {
+ if (internals->rss_key_len != 0) {
slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len =
- bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len;
+ internals->rss_key_len;
slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key =
- bonded_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key;
+ internals->rss_key;
} else {
slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
}
@@ -3017,11 +3016,23 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
unsigned i, j;
- /* If RSS is enabled, fill table and key with default values */
+ /*
+ * If RSS is enabled, fill table with default values and
+ * set key to the the value specified in port RSS configuration.
+ * Fall back to default RSS key if the key is not specified
+ */
if (dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS) {
- dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = internals->rss_key;
- dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len = 0;
- memcpy(internals->rss_key, default_rss_key, 40);
+ if (dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key != NULL) {
+ internals->rss_key_len =
+ dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key_len;
+ memcpy(internals->rss_key,
+ dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key,
+ internals->rss_key_len);
+ } else {
+ internals->rss_key_len = sizeof(default_rss_key);
+ memcpy(internals->rss_key, default_rss_key,
+ internals->rss_key_len);
+ }
for (i = 0; i < RTE_DIM(internals->reta_conf); i++) {
internals->reta_conf[i].mask = ~0LL;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.783646661 -0800
+++ 0011-net-bonding-do-not-ignore-RSS-key-on-device-config.patch 2018-11-29 15:01:44.980961000 -0800
@@ -1,8 +1,10 @@
-From 83cf204a982918fd56b15f9d458d1dfb1e724b5f Mon Sep 17 00:00:00 2001
+From 8d3a03504e71fd71cb739433e15a18faeae6bd24 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Wed, 29 Aug 2018 08:51:24 +0100
Subject: [PATCH] net/bonding: do not ignore RSS key on device config
+[ upstream commit 83cf204a982918fd56b15f9d458d1dfb1e724b5f ]
+
Bonding driver ignores the value of RSS key (that is set in the port RSS
configuration) in bond_ethdev_configure(). So the only way to set
non-default RSS key is by using rss_hash_update(). This is not an
@@ -12,7 +14,6 @@
requested key is set to NULL.
Fixes: 734ce47f71e0 ("bonding: support RSS dynamic configuration")
-Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -22,10 +23,10 @@
1 file changed, 19 insertions(+), 8 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
-index 0f5ab09e3..7814258f2 100644
+index 2f90451a6..9ff898724 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
-@@ -1778,12 +1778,11 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
+@@ -1689,12 +1689,11 @@ slave_configure(struct rte_eth_dev *bonded_eth_dev,
/* If RSS is enabled for bonding, try to enable it for slaves */
if (bonded_eth_dev->data->dev_conf.rxmode.mq_mode & ETH_MQ_RX_RSS_FLAG) {
@@ -41,7 +42,7 @@
} else {
slave_eth_dev->data->dev_conf.rx_adv_conf.rss_conf.rss_key = NULL;
}
-@@ -3284,11 +3283,23 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
+@@ -3017,11 +3016,23 @@ bond_ethdev_configure(struct rte_eth_dev *dev)
unsigned i, j;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (9 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Yongseok Koh
` (115 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Phil Yang; +Cc: Gavin Hu, Bernard Iremonger, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 3e15dcb39a2e1dc6d285ba92be55676c24eb0a5d Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Wed, 12 Sep 2018 09:54:26 +0800
Subject: [PATCH] app/testpmd: optimize mbuf pool allocation
[ upstream commit dbfb8ec7094c7115c6d620929de2aedfc9e440aa ]
By default, testpmd will create membuf pool for all NUMA nodes and
ignore EAL configuration.
Count the number of available NUMA according to EAL core mask or core
list configuration. Optimized by only creating membuf pool for those
nodes.
Fixes: c9cafcc82de8 ("app/testpmd: fix mempool creation by socket id")
Signed-off-by: Phil Yang <phil.yang@arm.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
app/test-pmd/testpmd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 32d687172..1b9f7cd27 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -446,6 +446,8 @@ set_default_fwd_lcores_config(void)
nb_lc = 0;
for (i = 0; i < RTE_MAX_LCORE; i++) {
+ if (!rte_lcore_is_enabled(i))
+ continue;
sock_num = rte_lcore_to_socket_id(i);
if (new_socket_id(sock_num)) {
if (num_sockets >= RTE_MAX_NUMA_NODES) {
@@ -455,8 +457,6 @@ set_default_fwd_lcores_config(void)
}
socket_ids[num_sockets++] = sock_num;
}
- if (!rte_lcore_is_enabled(i))
- continue;
if (i == rte_get_master_lcore())
continue;
fwd_lcores_cpuids[nb_lc++] = i;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.832648751 -0800
+++ 0012-app-testpmd-optimize-mbuf-pool-allocation.patch 2018-11-29 15:01:44.983967000 -0800
@@ -1,8 +1,10 @@
-From dbfb8ec7094c7115c6d620929de2aedfc9e440aa Mon Sep 17 00:00:00 2001
+From 3e15dcb39a2e1dc6d285ba92be55676c24eb0a5d Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Wed, 12 Sep 2018 09:54:26 +0800
Subject: [PATCH] app/testpmd: optimize mbuf pool allocation
+[ upstream commit dbfb8ec7094c7115c6d620929de2aedfc9e440aa ]
+
By default, testpmd will create membuf pool for all NUMA nodes and
ignore EAL configuration.
@@ -11,7 +13,6 @@
nodes.
Fixes: c9cafcc82de8 ("app/testpmd: fix mempool creation by socket id")
-Cc: stable@dpdk.org
Signed-off-by: Phil Yang <phil.yang@arm.com>
Acked-by: Gavin Hu <gavin.hu@arm.com>
@@ -21,10 +22,10 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
-index 571ecb4ac..001f0e552 100644
+index 32d687172..1b9f7cd27 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
-@@ -475,6 +475,8 @@ set_default_fwd_lcores_config(void)
+@@ -446,6 +446,8 @@ set_default_fwd_lcores_config(void)
nb_lc = 0;
for (i = 0; i < RTE_MAX_LCORE; i++) {
@@ -33,7 +34,7 @@
sock_num = rte_lcore_to_socket_id(i);
if (new_socket_id(sock_num)) {
if (num_sockets >= RTE_MAX_NUMA_NODES) {
-@@ -484,8 +486,6 @@ set_default_fwd_lcores_config(void)
+@@ -455,8 +457,6 @@ set_default_fwd_lcores_config(void)
}
socket_ids[num_sockets++] = sock_num;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (10 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Yongseok Koh
` (114 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Alejandro Lucero; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 05ce1e29af1e5f2ece6876728103964dd29c0a9e Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Thu, 6 Sep 2018 17:02:56 +0100
Subject: [PATCH] net/nfp: fix mbuf flags with checksum good
[ upstream commit 0962b51d3c494b30602897731ef9d598e29b4f3b ]
If checksum offload enabled and hardware reports checksum as good,
update mbuf ol_flags with proper *_CKSUM_GOOD bits.
Fixes: b812daadad0d ("nfp: add Rx and Tx")
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
drivers/net/nfp/nfp_net.c | 15 +++++++--------
drivers/net/nfp/nfp_net_pmd.h | 2 ++
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index 8ab28ddec..db6f3f465 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -1822,21 +1822,20 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
return;
/* If IPv4 and IP checksum error, fail */
- if ((rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM) &&
- !(rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM_OK))
+ if (unlikely((rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM) &&
+ !(rxd->rxd.flags & PCIE_DESC_RX_IP4_CSUM_OK)))
mb->ol_flags |= PKT_RX_IP_CKSUM_BAD;
+ else
+ mb->ol_flags |= PKT_RX_IP_CKSUM_GOOD;
/* If neither UDP nor TCP return */
if (!(rxd->rxd.flags & PCIE_DESC_RX_TCP_CSUM) &&
!(rxd->rxd.flags & PCIE_DESC_RX_UDP_CSUM))
return;
- if ((rxd->rxd.flags & PCIE_DESC_RX_TCP_CSUM) &&
- !(rxd->rxd.flags & PCIE_DESC_RX_TCP_CSUM_OK))
- mb->ol_flags |= PKT_RX_L4_CKSUM_BAD;
-
- if ((rxd->rxd.flags & PCIE_DESC_RX_UDP_CSUM) &&
- !(rxd->rxd.flags & PCIE_DESC_RX_UDP_CSUM_OK))
+ if (likely(rxd->rxd.flags & PCIE_DESC_RX_L4_CSUM_OK))
+ mb->ol_flags |= PKT_RX_L4_CKSUM_GOOD;
+ else
mb->ol_flags |= PKT_RX_L4_CKSUM_BAD;
}
diff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.h
index 1ae0ea626..084dfe6b5 100644
--- a/drivers/net/nfp/nfp_net_pmd.h
+++ b/drivers/net/nfp/nfp_net_pmd.h
@@ -284,6 +284,8 @@ struct nfp_net_txq {
#define PCIE_DESC_RX_UDP_CSUM_OK (1 << 1)
#define PCIE_DESC_RX_VLAN (1 << 0)
+#define PCIE_DESC_RX_L4_CSUM_OK (PCIE_DESC_RX_TCP_CSUM_OK | \
+ PCIE_DESC_RX_UDP_CSUM_OK)
struct nfp_net_rx_desc {
union {
/* Freelist descriptor */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.875136606 -0800
+++ 0013-net-nfp-fix-mbuf-flags-with-checksum-good.patch 2018-11-29 15:01:44.987962000 -0800
@@ -1,13 +1,14 @@
-From 0962b51d3c494b30602897731ef9d598e29b4f3b Mon Sep 17 00:00:00 2001
+From 05ce1e29af1e5f2ece6876728103964dd29c0a9e Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Thu, 6 Sep 2018 17:02:56 +0100
Subject: [PATCH] net/nfp: fix mbuf flags with checksum good
+[ upstream commit 0962b51d3c494b30602897731ef9d598e29b4f3b ]
+
If checksum offload enabled and hardware reports checksum as good,
update mbuf ol_flags with proper *_CKSUM_GOOD bits.
Fixes: b812daadad0d ("nfp: add Rx and Tx")
-Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
@@ -16,10 +17,10 @@
2 files changed, 9 insertions(+), 8 deletions(-)
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
-index 168088c6d..170b5d611 100644
+index 8ab28ddec..db6f3f465 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
-@@ -1779,21 +1779,20 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
+@@ -1822,21 +1822,20 @@ nfp_net_rx_cksum(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
return;
/* If IPv4 and IP checksum error, fail */
@@ -49,10 +50,10 @@
}
diff --git a/drivers/net/nfp/nfp_net_pmd.h b/drivers/net/nfp/nfp_net_pmd.h
-index c1b044eea..b01036df2 100644
+index 1ae0ea626..084dfe6b5 100644
--- a/drivers/net/nfp/nfp_net_pmd.h
+++ b/drivers/net/nfp/nfp_net_pmd.h
-@@ -293,6 +293,8 @@ struct nfp_net_txq {
+@@ -284,6 +284,8 @@ struct nfp_net_txq {
#define PCIE_DESC_RX_UDP_CSUM_OK (1 << 1)
#define PCIE_DESC_RX_VLAN (1 << 0)
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (11 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix SAL annotation for input buffers' " Yongseok Koh
` (113 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Didier Pallard; +Cc: Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 2cde73859e2e2530ebe8247dc43704e7be7354f8 Mon Sep 17 00:00:00 2001
From: Didier Pallard <didier.pallard@6wind.com>
Date: Wed, 19 Sep 2018 16:42:08 +0200
Subject: [PATCH] net: fix Intel prepare function for IP checksum offload
[ upstream commit ae0207d4b5048a6af9bc30e0956d30461b813148 ]
Current Intel tx prepare function does not properly handle the
case where only IP checksum is requested, without requesting
any L4 checksum or TSO: IP checksum is not properly reset to 0
and output packet may contain invalid IP checksum.
Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_net/rte_net.h | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h
index 79c764adc..5e80dd896 100644
--- a/lib/librte_net/rte_net.h
+++ b/lib/librte_net/rte_net.h
@@ -124,14 +124,16 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
(ol_flags & PKT_TX_OUTER_IPV6))
inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
- if ((ol_flags & PKT_TX_UDP_CKSUM) == PKT_TX_UDP_CKSUM) {
- if (ol_flags & PKT_TX_IPV4) {
- ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
- inner_l3_offset);
+ if (ol_flags & PKT_TX_IPV4) {
+ ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
+ inner_l3_offset);
- if (ol_flags & PKT_TX_IP_CKSUM)
- ipv4_hdr->hdr_checksum = 0;
+ if (ol_flags & PKT_TX_IP_CKSUM)
+ ipv4_hdr->hdr_checksum = 0;
+ }
+ if ((ol_flags & PKT_TX_UDP_CKSUM) == PKT_TX_UDP_CKSUM) {
+ if (ol_flags & PKT_TX_IPV4) {
udp_hdr = (struct udp_hdr *)((char *)ipv4_hdr +
m->l3_len);
udp_hdr->dgram_cksum = rte_ipv4_phdr_cksum(ipv4_hdr,
@@ -148,12 +150,6 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
} else if ((ol_flags & PKT_TX_TCP_CKSUM) ||
(ol_flags & PKT_TX_TCP_SEG)) {
if (ol_flags & PKT_TX_IPV4) {
- ipv4_hdr = rte_pktmbuf_mtod_offset(m, struct ipv4_hdr *,
- inner_l3_offset);
-
- if (ol_flags & PKT_TX_IP_CKSUM)
- ipv4_hdr->hdr_checksum = 0;
-
/* non-TSO tcp or TSO */
tcp_hdr = (struct tcp_hdr *)((char *)ipv4_hdr +
m->l3_len);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.918977040 -0800
+++ 0014-net-fix-Intel-prepare-function-for-IP-checksum-offlo.patch 2018-11-29 15:01:44.988966000 -0800
@@ -1,15 +1,16 @@
-From ae0207d4b5048a6af9bc30e0956d30461b813148 Mon Sep 17 00:00:00 2001
+From 2cde73859e2e2530ebe8247dc43704e7be7354f8 Mon Sep 17 00:00:00 2001
From: Didier Pallard <didier.pallard@6wind.com>
Date: Wed, 19 Sep 2018 16:42:08 +0200
Subject: [PATCH] net: fix Intel prepare function for IP checksum offload
+[ upstream commit ae0207d4b5048a6af9bc30e0956d30461b813148 ]
+
Current Intel tx prepare function does not properly handle the
case where only IP checksum is requested, without requesting
any L4 checksum or TSO: IP checksum is not properly reset to 0
and output packet may contain invalid IP checksum.
Fixes: 4fb7e803eb1a ("ethdev: add Tx preparation")
-Cc: stable@dpdk.org
Signed-off-by: Didier Pallard <didier.pallard@6wind.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
@@ -18,10 +19,10 @@
1 file changed, 8 insertions(+), 12 deletions(-)
diff --git a/lib/librte_net/rte_net.h b/lib/librte_net/rte_net.h
-index b6ab6e1d5..e59760a0a 100644
+index 79c764adc..5e80dd896 100644
--- a/lib/librte_net/rte_net.h
+++ b/lib/librte_net/rte_net.h
-@@ -122,14 +122,16 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
+@@ -124,14 +124,16 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
(ol_flags & PKT_TX_OUTER_IPV6))
inner_l3_offset += m->outer_l2_len + m->outer_l3_len;
@@ -44,7 +45,7 @@
udp_hdr = (struct udp_hdr *)((char *)ipv4_hdr +
m->l3_len);
udp_hdr->dgram_cksum = rte_ipv4_phdr_cksum(ipv4_hdr,
-@@ -146,12 +148,6 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
+@@ -148,12 +150,6 @@ rte_net_intel_cksum_flags_prepare(struct rte_mbuf *m, uint64_t ol_flags)
} else if ((ol_flags & PKT_TX_TCP_CKSUM) ||
(ol_flags & PKT_TX_TCP_SEG)) {
if (ol_flags & PKT_TX_IPV4) {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: fix SAL annotation for input buffers' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (12 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: properly align on line continuation' " Yongseok Koh
` (112 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Martin Harvey; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From f93359831a5c13261db9da15285297400d353306 Mon Sep 17 00:00:00 2001
From: Martin Harvey <mharvey@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:04 +0100
Subject: [PATCH] net/sfc/base: fix SAL annotation for input buffers
[ upstream commit d0e22de5bd4da4c28dafc4b09e9631b37d302b21 ]
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/ef10_impl.h | 2 +-
drivers/net/sfc/base/ef10_nvram.c | 2 +-
drivers/net/sfc/base/efx_impl.h | 2 +-
drivers/net/sfc/base/efx_nvram.c | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/sfc/base/ef10_impl.h b/drivers/net/sfc/base/ef10_impl.h
index 8f9eb7a39..d573a81f7 100644
--- a/drivers/net/sfc/base/ef10_impl.h
+++ b/drivers/net/sfc/base/ef10_impl.h
@@ -454,7 +454,7 @@ ef10_nvram_partn_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in unsigned int offset,
- __out_bcount(size) caddr_t data,
+ __in_bcount(size) caddr_t data,
__in size_t size);
extern __checkReturn efx_rc_t
diff --git a/drivers/net/sfc/base/ef10_nvram.c b/drivers/net/sfc/base/ef10_nvram.c
index 3f9d37503..b020d482d 100644
--- a/drivers/net/sfc/base/ef10_nvram.c
+++ b/drivers/net/sfc/base/ef10_nvram.c
@@ -1994,7 +1994,7 @@ ef10_nvram_partn_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in unsigned int offset,
- __out_bcount(size) caddr_t data,
+ __in_bcount(size) caddr_t data,
__in size_t size)
{
size_t chunk;
diff --git a/drivers/net/sfc/base/efx_impl.h b/drivers/net/sfc/base/efx_impl.h
index 53fa37ac5..bec20f7fb 100644
--- a/drivers/net/sfc/base/efx_impl.h
+++ b/drivers/net/sfc/base/efx_impl.h
@@ -556,7 +556,7 @@ efx_mcdi_nvram_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in uint32_t offset,
- __out_bcount(size) caddr_t data,
+ __in_bcount(size) caddr_t data,
__in size_t size);
__checkReturn efx_rc_t
diff --git a/drivers/net/sfc/base/efx_nvram.c b/drivers/net/sfc/base/efx_nvram.c
index 6ee2a71d6..7ea307b6d 100644
--- a/drivers/net/sfc/base/efx_nvram.c
+++ b/drivers/net/sfc/base/efx_nvram.c
@@ -854,7 +854,7 @@ efx_mcdi_nvram_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in uint32_t offset,
- __out_bcount(size) caddr_t data,
+ __in_bcount(size) caddr_t data,
__in size_t size)
{
efx_mcdi_req_t req;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:45.960275235 -0800
+++ 0015-net-sfc-base-fix-SAL-annotation-for-input-buffers.patch 2018-11-29 15:01:44.995961000 -0800
@@ -1,10 +1,11 @@
-From d0e22de5bd4da4c28dafc4b09e9631b37d302b21 Mon Sep 17 00:00:00 2001
+From f93359831a5c13261db9da15285297400d353306 Mon Sep 17 00:00:00 2001
From: Martin Harvey <mharvey@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:04 +0100
Subject: [PATCH] net/sfc/base: fix SAL annotation for input buffers
+[ upstream commit d0e22de5bd4da4c28dafc4b09e9631b37d302b21 ]
+
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
-Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -16,10 +17,10 @@
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/sfc/base/ef10_impl.h b/drivers/net/sfc/base/ef10_impl.h
-index 4751faf16..fb0d98875 100644
+index 8f9eb7a39..d573a81f7 100644
--- a/drivers/net/sfc/base/ef10_impl.h
+++ b/drivers/net/sfc/base/ef10_impl.h
-@@ -453,7 +453,7 @@ ef10_nvram_partn_write(
+@@ -454,7 +454,7 @@ ef10_nvram_partn_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in unsigned int offset,
@@ -29,10 +30,10 @@
extern __checkReturn efx_rc_t
diff --git a/drivers/net/sfc/base/ef10_nvram.c b/drivers/net/sfc/base/ef10_nvram.c
-index 0d885ccdf..46838dd75 100644
+index 3f9d37503..b020d482d 100644
--- a/drivers/net/sfc/base/ef10_nvram.c
+++ b/drivers/net/sfc/base/ef10_nvram.c
-@@ -2000,7 +2000,7 @@ ef10_nvram_partn_write(
+@@ -1994,7 +1994,7 @@ ef10_nvram_partn_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in unsigned int offset,
@@ -42,10 +43,10 @@
{
size_t chunk;
diff --git a/drivers/net/sfc/base/efx_impl.h b/drivers/net/sfc/base/efx_impl.h
-index 548834f90..637e31e0c 100644
+index 53fa37ac5..bec20f7fb 100644
--- a/drivers/net/sfc/base/efx_impl.h
+++ b/drivers/net/sfc/base/efx_impl.h
-@@ -583,7 +583,7 @@ efx_mcdi_nvram_write(
+@@ -556,7 +556,7 @@ efx_mcdi_nvram_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in uint32_t offset,
@@ -55,10 +56,10 @@
__checkReturn efx_rc_t
diff --git a/drivers/net/sfc/base/efx_nvram.c b/drivers/net/sfc/base/efx_nvram.c
-index be409c3af..f3107bbb5 100644
+index 6ee2a71d6..7ea307b6d 100644
--- a/drivers/net/sfc/base/efx_nvram.c
+++ b/drivers/net/sfc/base/efx_nvram.c
-@@ -865,7 +865,7 @@ efx_mcdi_nvram_write(
+@@ -854,7 +854,7 @@ efx_mcdi_nvram_write(
__in efx_nic_t *enp,
__in uint32_t partn,
__in uint32_t offset,
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: properly align on line continuation' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (13 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix SAL annotation for input buffers' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix build because of no declaration' " Yongseok Koh
` (111 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Andy Moreton; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 5ecf3584ca0c17fcc4bd28328acd15310d838604 Mon Sep 17 00:00:00 2001
From: Andy Moreton <amoreton@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:05 +0100
Subject: [PATCH] net/sfc/base: properly align on line continuation
[ upstream commit 9d42b13e8c2bd325e7c9735830a2f65e3f14b41c ]
Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/efx_nic.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/efx_nic.c b/drivers/net/sfc/base/efx_nic.c
index 76caa744c..adc62341c 100644
--- a/drivers/net/sfc/base/efx_nic.c
+++ b/drivers/net/sfc/base/efx_nic.c
@@ -587,7 +587,7 @@ efx_nic_reset(
*/
mod_flags = enp->en_mod_flags;
mod_flags &= ~(EFX_MOD_MCDI | EFX_MOD_PROBE | EFX_MOD_NVRAM |
- EFX_MOD_VPD | EFX_MOD_MON);
+ EFX_MOD_VPD | EFX_MOD_MON);
EFSYS_ASSERT3U(mod_flags, ==, 0);
if (mod_flags != 0) {
rc = EINVAL;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.004628513 -0800
+++ 0016-net-sfc-base-properly-align-on-line-continuation.patch 2018-11-29 15:01:44.997960000 -0800
@@ -1,10 +1,11 @@
-From 9d42b13e8c2bd325e7c9735830a2f65e3f14b41c Mon Sep 17 00:00:00 2001
+From 5ecf3584ca0c17fcc4bd28328acd15310d838604 Mon Sep 17 00:00:00 2001
From: Andy Moreton <amoreton@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:05 +0100
Subject: [PATCH] net/sfc/base: properly align on line continuation
+[ upstream commit 9d42b13e8c2bd325e7c9735830a2f65e3f14b41c ]
+
Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
-Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -13,10 +14,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/efx_nic.c b/drivers/net/sfc/base/efx_nic.c
-index 6c162e035..6314ae2ff 100644
+index 76caa744c..adc62341c 100644
--- a/drivers/net/sfc/base/efx_nic.c
+++ b/drivers/net/sfc/base/efx_nic.c
-@@ -559,7 +559,7 @@ efx_nic_reset(
+@@ -587,7 +587,7 @@ efx_nic_reset(
*/
mod_flags = enp->en_mod_flags;
mod_flags &= ~(EFX_MOD_MCDI | EFX_MOD_PROBE | EFX_MOD_NVRAM |
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: fix build because of no declaration' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (14 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: properly align on line continuation' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: check size of memory to read sensors data to' " Yongseok Koh
` (110 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Andrew Rybchenko; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a764a415b70f58d939a0ed0c7665d529e8ec2aad Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:07 +0100
Subject: [PATCH] net/sfc/base: fix build because of no declaration
[ upstream commit 5d23ac47e940f78bf6d95e6e52d3e0b9c486b8dd ]
Functions declared in mcdi_mon.h are implemented in mcdi_mon.c.
The build fails if compiler options require declaration before definition.
Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/mcdi_mon.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/sfc/base/mcdi_mon.c b/drivers/net/sfc/base/mcdi_mon.c
index c5360c31c..6fe6a22c4 100644
--- a/drivers/net/sfc/base/mcdi_mon.c
+++ b/drivers/net/sfc/base/mcdi_mon.c
@@ -30,6 +30,7 @@
#include "efx.h"
#include "efx_impl.h"
+#include "mcdi_mon.h"
#if EFSYS_OPT_MON_MCDI
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.046086950 -0800
+++ 0017-net-sfc-base-fix-build-because-of-no-declaration.patch 2018-11-29 15:01:44.998965000 -0800
@@ -1,13 +1,14 @@
-From 5d23ac47e940f78bf6d95e6e52d3e0b9c486b8dd Mon Sep 17 00:00:00 2001
+From a764a415b70f58d939a0ed0c7665d529e8ec2aad Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:07 +0100
Subject: [PATCH] net/sfc/base: fix build because of no declaration
+[ upstream commit 5d23ac47e940f78bf6d95e6e52d3e0b9c486b8dd ]
+
Functions declared in mcdi_mon.h are implemented in mcdi_mon.c.
The build fails if compiler options require declaration before definition.
Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
-Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
@@ -15,10 +16,10 @@
1 file changed, 1 insertion(+)
diff --git a/drivers/net/sfc/base/mcdi_mon.c b/drivers/net/sfc/base/mcdi_mon.c
-index 940bd0265..8c0b6f0d9 100644
+index c5360c31c..6fe6a22c4 100644
--- a/drivers/net/sfc/base/mcdi_mon.c
+++ b/drivers/net/sfc/base/mcdi_mon.c
-@@ -6,6 +6,7 @@
+@@ -30,6 +30,7 @@
#include "efx.h"
#include "efx_impl.h"
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: check size of memory to read sensors data to' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (15 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix build because of no declaration' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: avoid usage of too big arrays on stack' " Yongseok Koh
` (109 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Martin Harvey; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6db57d4b336ba6bbb55529ad87f93c0510536fd7 Mon Sep 17 00:00:00 2001
From: Martin Harvey <mharvey@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:15 +0100
Subject: [PATCH] net/sfc/base: check size of memory to read sensors data to
[ upstream commit 252faf84f41e6d726d3ab0f9b7544723756afcca ]
Size of provided memory should be consistent with specified size.
Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/mcdi_mon.c | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/drivers/net/sfc/base/mcdi_mon.c b/drivers/net/sfc/base/mcdi_mon.c
index 6fe6a22c4..50ade2002 100644
--- a/drivers/net/sfc/base/mcdi_mon.c
+++ b/drivers/net/sfc/base/mcdi_mon.c
@@ -318,6 +318,12 @@ efx_mcdi_read_sensors(
uint8_t payload[MAX(MC_CMD_READ_SENSORS_EXT_IN_LEN,
MC_CMD_READ_SENSORS_EXT_OUT_LEN)];
uint32_t addr_lo, addr_hi;
+ efx_rc_t rc;
+
+ if (EFSYS_MEM_SIZE(esmp) < size) {
+ rc = EINVAL;
+ goto fail1;
+ }
req.emr_cmd = MC_CMD_READ_SENSORS;
req.emr_in_buf = payload;
@@ -335,6 +341,11 @@ efx_mcdi_read_sensors(
efx_mcdi_execute(enp, &req);
return (req.emr_rc);
+
+fail1:
+ EFSYS_PROBE1(fail1, efx_rc_t, rc);
+
+ return (rc);
}
static __checkReturn efx_rc_t
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.086143930 -0800
+++ 0018-net-sfc-base-check-size-of-memory-to-read-sensors-da.patch 2018-11-29 15:01:44.999964000 -0800
@@ -1,12 +1,13 @@
-From 252faf84f41e6d726d3ab0f9b7544723756afcca Mon Sep 17 00:00:00 2001
+From 6db57d4b336ba6bbb55529ad87f93c0510536fd7 Mon Sep 17 00:00:00 2001
From: Martin Harvey <mharvey@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:15 +0100
Subject: [PATCH] net/sfc/base: check size of memory to read sensors data to
+[ upstream commit 252faf84f41e6d726d3ab0f9b7544723756afcca ]
+
Size of provided memory should be consistent with specified size.
Fixes: dfb3b1ce15f6 ("net/sfc/base: import monitors access via MCDI")
-Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -15,10 +16,10 @@
1 file changed, 11 insertions(+)
diff --git a/drivers/net/sfc/base/mcdi_mon.c b/drivers/net/sfc/base/mcdi_mon.c
-index 93e6b1e35..68bbc575d 100644
+index 6fe6a22c4..50ade2002 100644
--- a/drivers/net/sfc/base/mcdi_mon.c
+++ b/drivers/net/sfc/base/mcdi_mon.c
-@@ -194,6 +194,12 @@ efx_mcdi_read_sensors(
+@@ -318,6 +318,12 @@ efx_mcdi_read_sensors(
uint8_t payload[MAX(MC_CMD_READ_SENSORS_EXT_IN_LEN,
MC_CMD_READ_SENSORS_EXT_OUT_LEN)];
uint32_t addr_lo, addr_hi;
@@ -31,7 +32,7 @@
req.emr_cmd = MC_CMD_READ_SENSORS;
req.emr_in_buf = payload;
-@@ -211,6 +217,11 @@ efx_mcdi_read_sensors(
+@@ -335,6 +341,11 @@ efx_mcdi_read_sensors(
efx_mcdi_execute(enp, &req);
return (req.emr_rc);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: avoid usage of too big arrays on stack' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (16 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: check size of memory to read sensors data to' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: prevent access to the NIC config before probe' " Yongseok Koh
` (108 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Martin Harvey; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 3528d952ba9f0d80e5d24942e543b2cea6f34595 Mon Sep 17 00:00:00 2001
From: Martin Harvey <mharvey@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:20 +0100
Subject: [PATCH] net/sfc/base: avoid usage of too big arrays on stack
[ upstream commit da8692388e7f2cc575b53b2cc76f72f459fd9ca5 ]
Found by PreFAST static analysis.
Fixes: 1dae25112a54 ("net/sfc/base: import built-in selftest")
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/ef10_phy.c | 18 +++++++++++++++---
drivers/net/sfc/base/efx_nvram.c | 27 ++++++++++++++++++---------
2 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/drivers/net/sfc/base/ef10_phy.c b/drivers/net/sfc/base/ef10_phy.c
index 81309f291..5926c2ef6 100644
--- a/drivers/net/sfc/base/ef10_phy.c
+++ b/drivers/net/sfc/base/ef10_phy.c
@@ -523,14 +523,26 @@ ef10_bist_poll(
unsigned long *valuesp,
__in size_t count)
{
+ /*
+ * MCDI_CTL_SDU_LEN_MAX_V1 is large enough cover all BIST results,
+ * whilst not wasting stack.
+ */
+ uint8_t payload[MAX(MC_CMD_POLL_BIST_IN_LEN, MCDI_CTL_SDU_LEN_MAX_V1)];
efx_nic_cfg_t *encp = &(enp->en_nic_cfg);
efx_mcdi_req_t req;
- uint8_t payload[MAX(MC_CMD_POLL_BIST_IN_LEN,
- MCDI_CTL_SDU_LEN_MAX)];
uint32_t value_mask = 0;
uint32_t result;
efx_rc_t rc;
+ EFX_STATIC_ASSERT(MC_CMD_POLL_BIST_OUT_LEN <=
+ MCDI_CTL_SDU_LEN_MAX_V1);
+ EFX_STATIC_ASSERT(MC_CMD_POLL_BIST_OUT_SFT9001_LEN <=
+ MCDI_CTL_SDU_LEN_MAX_V1);
+ EFX_STATIC_ASSERT(MC_CMD_POLL_BIST_OUT_MRSFP_LEN <=
+ MCDI_CTL_SDU_LEN_MAX_V1);
+ EFX_STATIC_ASSERT(MC_CMD_POLL_BIST_OUT_MEM_LEN <=
+ MCDI_CTL_SDU_LEN_MAX_V1);
+
_NOTE(ARGUNUSED(type))
(void) memset(payload, 0, sizeof (payload));
@@ -538,7 +550,7 @@ ef10_bist_poll(
req.emr_in_buf = payload;
req.emr_in_length = MC_CMD_POLL_BIST_IN_LEN;
req.emr_out_buf = payload;
- req.emr_out_length = MCDI_CTL_SDU_LEN_MAX;
+ req.emr_out_length = MCDI_CTL_SDU_LEN_MAX_V1;
efx_mcdi_execute(enp, &req);
diff --git a/drivers/net/sfc/base/efx_nvram.c b/drivers/net/sfc/base/efx_nvram.c
index 7ea307b6d..63e8b15f6 100644
--- a/drivers/net/sfc/base/efx_nvram.c
+++ b/drivers/net/sfc/base/efx_nvram.c
@@ -858,23 +858,27 @@ efx_mcdi_nvram_write(
__in size_t size)
{
efx_mcdi_req_t req;
- uint8_t payload[MAX(MCDI_CTL_SDU_LEN_MAX_V1,
- MCDI_CTL_SDU_LEN_MAX_V2)];
+ uint8_t *payload;
efx_rc_t rc;
size_t max_data_size;
+ size_t payload_len = enp->en_nic_cfg.enc_mcdi_max_payload_length;
- max_data_size = enp->en_nic_cfg.enc_mcdi_max_payload_length
- - MC_CMD_NVRAM_WRITE_IN_LEN(0);
- EFSYS_ASSERT3U(enp->en_nic_cfg.enc_mcdi_max_payload_length, >, 0);
- EFSYS_ASSERT3U(max_data_size, <,
- enp->en_nic_cfg.enc_mcdi_max_payload_length);
+ max_data_size = payload_len - MC_CMD_NVRAM_WRITE_IN_LEN(0);
+ EFSYS_ASSERT3U(payload_len, >, 0);
+ EFSYS_ASSERT3U(max_data_size, <, payload_len);
if (size > max_data_size) {
rc = EINVAL;
goto fail1;
}
- (void) memset(payload, 0, sizeof (payload));
+ EFSYS_KMEM_ALLOC(enp->en_esip, payload_len, payload);
+ if (payload == NULL) {
+ rc = ENOMEM;
+ goto fail2;
+ }
+
+ (void) memset(payload, 0, payload_len);
req.emr_cmd = MC_CMD_NVRAM_WRITE;
req.emr_in_buf = payload;
req.emr_in_length = MC_CMD_NVRAM_WRITE_IN_LEN(size);
@@ -892,11 +896,16 @@ efx_mcdi_nvram_write(
if (req.emr_rc != 0) {
rc = req.emr_rc;
- goto fail2;
+ goto fail3;
}
+ EFSYS_KMEM_FREE(enp->en_esip, payload_len, payload);
+
return (0);
+fail3:
+ EFSYS_PROBE(fail3);
+ EFSYS_KMEM_FREE(enp->en_esip, payload_len, payload);
fail2:
EFSYS_PROBE(fail2);
fail1:
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.126278103 -0800
+++ 0019-net-sfc-base-avoid-usage-of-too-big-arrays-on-stack.patch 2018-11-29 15:01:45.002960000 -0800
@@ -1,13 +1,14 @@
-From da8692388e7f2cc575b53b2cc76f72f459fd9ca5 Mon Sep 17 00:00:00 2001
+From 3528d952ba9f0d80e5d24942e543b2cea6f34595 Mon Sep 17 00:00:00 2001
From: Martin Harvey <mharvey@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:20 +0100
Subject: [PATCH] net/sfc/base: avoid usage of too big arrays on stack
+[ upstream commit da8692388e7f2cc575b53b2cc76f72f459fd9ca5 ]
+
Found by PreFAST static analysis.
Fixes: 1dae25112a54 ("net/sfc/base: import built-in selftest")
Fixes: d96a34d165b1 ("net/sfc/base: import NVRAM support")
-Cc: stable@dpdk.org
Signed-off-by: Martin Harvey <mharvey@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -17,10 +18,10 @@
2 files changed, 33 insertions(+), 12 deletions(-)
diff --git a/drivers/net/sfc/base/ef10_phy.c b/drivers/net/sfc/base/ef10_phy.c
-index 84acb70a1..e9c7b40e4 100644
+index 81309f291..5926c2ef6 100644
--- a/drivers/net/sfc/base/ef10_phy.c
+++ b/drivers/net/sfc/base/ef10_phy.c
-@@ -583,14 +583,26 @@ ef10_bist_poll(
+@@ -523,14 +523,26 @@ ef10_bist_poll(
unsigned long *valuesp,
__in size_t count)
{
@@ -49,7 +50,7 @@
_NOTE(ARGUNUSED(type))
(void) memset(payload, 0, sizeof (payload));
-@@ -598,7 +610,7 @@ ef10_bist_poll(
+@@ -538,7 +550,7 @@ ef10_bist_poll(
req.emr_in_buf = payload;
req.emr_in_length = MC_CMD_POLL_BIST_IN_LEN;
req.emr_out_buf = payload;
@@ -59,10 +60,10 @@
efx_mcdi_execute(enp, &req);
diff --git a/drivers/net/sfc/base/efx_nvram.c b/drivers/net/sfc/base/efx_nvram.c
-index 9000fe886..d7b1a6778 100644
+index 7ea307b6d..63e8b15f6 100644
--- a/drivers/net/sfc/base/efx_nvram.c
+++ b/drivers/net/sfc/base/efx_nvram.c
-@@ -869,23 +869,27 @@ efx_mcdi_nvram_write(
+@@ -858,23 +858,27 @@ efx_mcdi_nvram_write(
__in size_t size)
{
efx_mcdi_req_t req;
@@ -98,7 +99,7 @@
req.emr_cmd = MC_CMD_NVRAM_WRITE;
req.emr_in_buf = payload;
req.emr_in_length = MC_CMD_NVRAM_WRITE_IN_LEN(size);
-@@ -903,11 +907,16 @@ efx_mcdi_nvram_write(
+@@ -892,11 +896,16 @@ efx_mcdi_nvram_write(
if (req.emr_rc != 0) {
rc = req.emr_rc;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: prevent access to the NIC config before probe' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (17 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: avoid usage of too big arrays on stack' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix a typo in unicast filter insertion comment' " Yongseok Koh
` (107 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Mark Spender; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From fca876a58f97d8adaac4f22058794cae1996e9b5 Mon Sep 17 00:00:00 2001
From: Mark Spender <mspender@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:26 +0100
Subject: [PATCH] net/sfc/base: prevent access to the NIC config before probe
[ upstream commit f78fb0a8e1c78cc3ffcdd0a6b72f6aa200e980ee ]
NIC config is initialized during NIC probe.
Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/efx_nic.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/sfc/base/efx_nic.c b/drivers/net/sfc/base/efx_nic.c
index adc62341c..a18cb364a 100644
--- a/drivers/net/sfc/base/efx_nic.c
+++ b/drivers/net/sfc/base/efx_nic.c
@@ -612,6 +612,7 @@ efx_nic_cfg_get(
__in efx_nic_t *enp)
{
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
+ EFSYS_ASSERT3U(enp->en_mod_flags, &, EFX_MOD_PROBE);
return (&(enp->en_nic_cfg));
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.167417701 -0800
+++ 0020-net-sfc-base-prevent-access-to-the-NIC-config-before.patch 2018-11-29 15:01:45.003965000 -0800
@@ -1,12 +1,13 @@
-From f78fb0a8e1c78cc3ffcdd0a6b72f6aa200e980ee Mon Sep 17 00:00:00 2001
+From fca876a58f97d8adaac4f22058794cae1996e9b5 Mon Sep 17 00:00:00 2001
From: Mark Spender <mspender@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:26 +0100
Subject: [PATCH] net/sfc/base: prevent access to the NIC config before probe
+[ upstream commit f78fb0a8e1c78cc3ffcdd0a6b72f6aa200e980ee ]
+
NIC config is initialized during NIC probe.
Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
-Cc: stable@dpdk.org
Signed-off-by: Mark Spender <mspender@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -15,10 +16,10 @@
1 file changed, 1 insertion(+)
diff --git a/drivers/net/sfc/base/efx_nic.c b/drivers/net/sfc/base/efx_nic.c
-index e5cb0105f..cea32b792 100644
+index adc62341c..a18cb364a 100644
--- a/drivers/net/sfc/base/efx_nic.c
+++ b/drivers/net/sfc/base/efx_nic.c
-@@ -595,6 +595,7 @@ efx_nic_cfg_get(
+@@ -612,6 +612,7 @@ efx_nic_cfg_get(
__in efx_nic_t *enp)
{
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: fix a typo in unicast filter insertion comment' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (18 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: prevent access to the NIC config before probe' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes' " Yongseok Koh
` (106 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Ivan Malov; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 4efe06fe8502a06902cf03d04b53fc57001f84c0 Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Mon, 10 Sep 2018 10:33:28 +0100
Subject: [PATCH] net/sfc/base: fix a typo in unicast filter insertion comment
[ upstream commit 9673e044a1593a2f62557095e6aa37ec197a04fb ]
Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support")
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/ef10_filter.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/ef10_filter.c b/drivers/net/sfc/base/ef10_filter.c
index e1faf1ddd..0ba411e34 100644
--- a/drivers/net/sfc/base/ef10_filter.c
+++ b/drivers/net/sfc/base/ef10_filter.c
@@ -1465,7 +1465,7 @@ ef10_filter_reconfigure(
/*
* Insert or renew unicast filters.
*
- * Frimware does not perform chaining on unicast filters. As traffic is
+ * Firmware does not perform chaining on unicast filters. As traffic is
* therefore only delivered to the first matching filter, we should
* always insert the specific filter for our MAC address, to try and
* ensure we get that traffic.
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.208998533 -0800
+++ 0021-net-sfc-base-fix-a-typo-in-unicast-filter-insertion-.patch 2018-11-29 15:01:45.014961000 -0800
@@ -1,10 +1,11 @@
-From 9673e044a1593a2f62557095e6aa37ec197a04fb Mon Sep 17 00:00:00 2001
+From 4efe06fe8502a06902cf03d04b53fc57001f84c0 Mon Sep 17 00:00:00 2001
From: Ivan Malov <ivan.malov@oktetlabs.ru>
Date: Mon, 10 Sep 2018 10:33:28 +0100
Subject: [PATCH] net/sfc/base: fix a typo in unicast filter insertion comment
+[ upstream commit 9673e044a1593a2f62557095e6aa37ec197a04fb ]
+
Fixes: e7cd430c864f ("net/sfc/base: import SFN7xxx family support")
-Cc: stable@dpdk.org
Signed-off-by: Ivan Malov <ivan.malov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -13,10 +14,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/ef10_filter.c b/drivers/net/sfc/base/ef10_filter.c
-index 30a4892df..afe4064d9 100644
+index e1faf1ddd..0ba411e34 100644
--- a/drivers/net/sfc/base/ef10_filter.c
+++ b/drivers/net/sfc/base/ef10_filter.c
-@@ -1578,7 +1578,7 @@ ef10_filter_reconfigure(
+@@ -1465,7 +1465,7 @@ ef10_filter_reconfigure(
/*
* Insert or renew unicast filters.
*
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (19 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix a typo in unicast filter insertion comment' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: fix an Rx queue double release possibility' " Yongseok Koh
` (105 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Andy Moreton; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 72bf1e7f4213c2eb3a180107dd0eba793a5697f4 Mon Sep 17 00:00:00 2001
From: Andy Moreton <amoreton@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:35 +0100
Subject: [PATCH] net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes
[ upstream commit 42f235911a613b339b3b6597fd0b998321c2ce22 ]
This statistic should include 64byte and smaller frames.
Fix EF10 calculation to match Siena code.
Fixes: 8c7c723dfe7c ("net/sfc/base: import MAC statistics")
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/ef10_mac.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/ef10_mac.c b/drivers/net/sfc/base/ef10_mac.c
index 488633f56..b7dd12d6c 100644
--- a/drivers/net/sfc/base/ef10_mac.c
+++ b/drivers/net/sfc/base/ef10_mac.c
@@ -612,7 +612,7 @@ ef10_mac_stats_update(
EF10_MAC_STAT_READ(esmp, MC_CMD_MAC_TX_LT64_PKTS, &value);
EFSYS_STAT_SET_QWORD(&(stat[EFX_MAC_TX_LE_64_PKTS]), &value);
EF10_MAC_STAT_READ(esmp, MC_CMD_MAC_TX_64_PKTS, &value);
- EFSYS_STAT_SET_QWORD(&(stat[EFX_MAC_TX_LE_64_PKTS]), &value);
+ EFSYS_STAT_INCR_QWORD(&(stat[EFX_MAC_TX_LE_64_PKTS]), &value);
EF10_MAC_STAT_READ(esmp, MC_CMD_MAC_TX_65_TO_127_PKTS, &value);
EFSYS_STAT_SET_QWORD(&(stat[EFX_MAC_TX_65_TO_127_PKTS]), &value);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.249994173 -0800
+++ 0022-net-sfc-base-fix-MAC-Tx-stats-for-less-or-equal-to-6.patch 2018-11-29 15:01:45.016960000 -0800
@@ -1,13 +1,14 @@
-From 42f235911a613b339b3b6597fd0b998321c2ce22 Mon Sep 17 00:00:00 2001
+From 72bf1e7f4213c2eb3a180107dd0eba793a5697f4 Mon Sep 17 00:00:00 2001
From: Andy Moreton <amoreton@solarflare.com>
Date: Mon, 10 Sep 2018 10:33:35 +0100
Subject: [PATCH] net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes
+[ upstream commit 42f235911a613b339b3b6597fd0b998321c2ce22 ]
+
This statistic should include 64byte and smaller frames.
Fix EF10 calculation to match Siena code.
Fixes: 8c7c723dfe7c ("net/sfc/base: import MAC statistics")
-Cc: stable@dpdk.org
Signed-off-by: Andy Moreton <amoreton@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -16,10 +17,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/ef10_mac.c b/drivers/net/sfc/base/ef10_mac.c
-index a4a6d9ec8..ab73828f1 100644
+index 488633f56..b7dd12d6c 100644
--- a/drivers/net/sfc/base/ef10_mac.c
+++ b/drivers/net/sfc/base/ef10_mac.c
-@@ -650,7 +650,7 @@ ef10_mac_stats_update(
+@@ -612,7 +612,7 @@ ef10_mac_stats_update(
EF10_MAC_STAT_READ(esmp, MC_CMD_MAC_TX_LT64_PKTS, &value);
EFSYS_STAT_SET_QWORD(&(stat[EFX_MAC_TX_LE_64_PKTS]), &value);
EF10_MAC_STAT_READ(esmp, MC_CMD_MAC_TX_64_PKTS, &value);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc: fix an Rx queue double release possibility' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (20 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: fix a Tx " Yongseok Koh
` (104 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Igor Romanov; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From b77430c4425710cd34910a3509bf12251ec2714d Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Fri, 14 Sep 2018 08:31:35 +0100
Subject: [PATCH] net/sfc: fix an Rx queue double release possibility
[ upstream commit 7eb7588c99ab5fd0f31032b29cac74b57e1de2ff ]
There are two function that call sfc_rx_qfini():
sfc_rx_fini_queues() and sfc_rx_queue_release(). But only
sfc_rx_queue_release() sets rx_queues pointer of the device data to NULL.
It may lead to the scenario in which a queue is destroyed by
sfc_rx_fini_queues() and after the queue is attempted to be destroyed again
by sfc_rx_queue_release().
Move NULL assignment to sfc_rx_qfini().
Fixes: ce35b05c635e ("net/sfc: implement Rx queue setup release operations")
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/sfc_ethdev.c | 2 --
drivers/net/sfc/sfc_rx.c | 1 +
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index 1b160b5e9..ba08d615a 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -458,8 +458,6 @@ sfc_rx_queue_release(void *queue)
sfc_log_init(sa, "RxQ=%u", sw_index);
- sa->eth_dev->data->rx_queues[sw_index] = NULL;
-
sfc_rx_qfini(sa, sw_index);
sfc_adapter_unlock(sa);
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
index 8fc93d682..4497d5f48 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
@@ -1028,6 +1028,7 @@ sfc_rx_qfini(struct sfc_adapter *sa, unsigned int sw_index)
struct sfc_rxq *rxq;
SFC_ASSERT(sw_index < sa->rxq_count);
+ sa->eth_dev->data->rx_queues[sw_index] = NULL;
rxq_info = &sa->rxq_info[sw_index];
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.291784762 -0800
+++ 0023-net-sfc-fix-an-Rx-queue-double-release-possibility.patch 2018-11-29 15:01:45.019966000 -0800
@@ -1,8 +1,10 @@
-From 7eb7588c99ab5fd0f31032b29cac74b57e1de2ff Mon Sep 17 00:00:00 2001
+From b77430c4425710cd34910a3509bf12251ec2714d Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Fri, 14 Sep 2018 08:31:35 +0100
Subject: [PATCH] net/sfc: fix an Rx queue double release possibility
+[ upstream commit 7eb7588c99ab5fd0f31032b29cac74b57e1de2ff ]
+
There are two function that call sfc_rx_qfini():
sfc_rx_fini_queues() and sfc_rx_queue_release(). But only
sfc_rx_queue_release() sets rx_queues pointer of the device data to NULL.
@@ -13,7 +15,6 @@
Move NULL assignment to sfc_rx_qfini().
Fixes: ce35b05c635e ("net/sfc: implement Rx queue setup release operations")
-Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -23,10 +24,10 @@
2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
-index 435bde67f..23778c9f3 100644
+index 1b160b5e9..ba08d615a 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
-@@ -444,8 +444,6 @@ sfc_rx_queue_release(void *queue)
+@@ -458,8 +458,6 @@ sfc_rx_queue_release(void *queue)
sfc_log_init(sa, "RxQ=%u", sw_index);
@@ -36,10 +37,10 @@
sfc_adapter_unlock(sa);
diff --git a/drivers/net/sfc/sfc_rx.c b/drivers/net/sfc/sfc_rx.c
-index 338184dda..58c57acfe 100644
+index 8fc93d682..4497d5f48 100644
--- a/drivers/net/sfc/sfc_rx.c
+++ b/drivers/net/sfc/sfc_rx.c
-@@ -1103,6 +1103,7 @@ sfc_rx_qfini(struct sfc_adapter *sa, unsigned int sw_index)
+@@ -1028,6 +1028,7 @@ sfc_rx_qfini(struct sfc_adapter *sa, unsigned int sw_index)
struct sfc_rxq *rxq;
SFC_ASSERT(sw_index < sa->rxq_count);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc: fix a Tx queue double release possibility' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (21 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: fix an Rx queue double release possibility' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: fix Rx slave fairness' " Yongseok Koh
` (103 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Igor Romanov; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8a9fe070659b061a70b0dd21913d219cc6aaa8f2 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Fri, 14 Sep 2018 08:31:36 +0100
Subject: [PATCH] net/sfc: fix a Tx queue double release possibility
[ upstream commit 5d138ef92d47b34af589e49f505fb1bf6db5f09b ]
There are two function that call sfc_tx_qfini():
sfc_tx_fini_queues() and sfc_tx_queue_release(). But only
sfc_tx_queue_release() sets tx_queues pointer of the device data to NULL.
It may lead to the scenario in which a queue is destroyed by
sfc_tx_fini_queues() and after the queue is attempted to be destroyed again
by sfc_tx_queue_release().
Move NULL assignment to sfc_tx_qfini().
Fixes: b1b7ad933b39 ("net/sfc: set up and release Tx queues")
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/sfc_ethdev.c | 3 ---
drivers/net/sfc/sfc_tx.c | 2 ++
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
index ba08d615a..94e7c7924 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
@@ -512,9 +512,6 @@ sfc_tx_queue_release(void *queue)
sfc_adapter_lock(sa);
- SFC_ASSERT(sw_index < sa->eth_dev->data->nb_tx_queues);
- sa->eth_dev->data->tx_queues[sw_index] = NULL;
-
sfc_tx_qfini(sa, sw_index);
sfc_adapter_unlock(sa);
diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
index d1320f462..9b1e6541e 100644
--- a/drivers/net/sfc/sfc_tx.c
+++ b/drivers/net/sfc/sfc_tx.c
@@ -239,6 +239,8 @@ sfc_tx_qfini(struct sfc_adapter *sa, unsigned int sw_index)
sfc_log_init(sa, "TxQ = %u", sw_index);
SFC_ASSERT(sw_index < sa->txq_count);
+ sa->eth_dev->data->tx_queues[sw_index] = NULL;
+
txq_info = &sa->txq_info[sw_index];
txq = txq_info->txq;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.334116293 -0800
+++ 0024-net-sfc-fix-a-Tx-queue-double-release-possibility.patch 2018-11-29 15:01:45.023962000 -0800
@@ -1,8 +1,10 @@
-From 5d138ef92d47b34af589e49f505fb1bf6db5f09b Mon Sep 17 00:00:00 2001
+From 8a9fe070659b061a70b0dd21913d219cc6aaa8f2 Mon Sep 17 00:00:00 2001
From: Igor Romanov <igor.romanov@oktetlabs.ru>
Date: Fri, 14 Sep 2018 08:31:36 +0100
Subject: [PATCH] net/sfc: fix a Tx queue double release possibility
+[ upstream commit 5d138ef92d47b34af589e49f505fb1bf6db5f09b ]
+
There are two function that call sfc_tx_qfini():
sfc_tx_fini_queues() and sfc_tx_queue_release(). But only
sfc_tx_queue_release() sets tx_queues pointer of the device data to NULL.
@@ -13,7 +15,6 @@
Move NULL assignment to sfc_tx_qfini().
Fixes: b1b7ad933b39 ("net/sfc: set up and release Tx queues")
-Cc: stable@dpdk.org
Signed-off-by: Igor Romanov <igor.romanov@oktetlabs.ru>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -23,10 +24,10 @@
2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/net/sfc/sfc_ethdev.c b/drivers/net/sfc/sfc_ethdev.c
-index 23778c9f3..93bfecc4e 100644
+index ba08d615a..94e7c7924 100644
--- a/drivers/net/sfc/sfc_ethdev.c
+++ b/drivers/net/sfc/sfc_ethdev.c
-@@ -498,9 +498,6 @@ sfc_tx_queue_release(void *queue)
+@@ -512,9 +512,6 @@ sfc_tx_queue_release(void *queue)
sfc_adapter_lock(sa);
@@ -37,10 +38,10 @@
sfc_adapter_unlock(sa);
diff --git a/drivers/net/sfc/sfc_tx.c b/drivers/net/sfc/sfc_tx.c
-index 8af08b37c..12665d813 100644
+index d1320f462..9b1e6541e 100644
--- a/drivers/net/sfc/sfc_tx.c
+++ b/drivers/net/sfc/sfc_tx.c
-@@ -233,6 +233,8 @@ sfc_tx_qfini(struct sfc_adapter *sa, unsigned int sw_index)
+@@ -239,6 +239,8 @@ sfc_tx_qfini(struct sfc_adapter *sa, unsigned int sw_index)
sfc_log_init(sa, "TxQ = %u", sw_index);
SFC_ASSERT(sw_index < sa->txq_count);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bonding: fix Rx slave fairness' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (22 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: fix a Tx " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: remove not supported multicast MAC filter' " Yongseok Koh
` (102 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Chas Williams; +Cc: Luca Boccassi, Matan Azrad, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From d3fdcdcdec876a082d9e5df17b60077fbe32b927 Mon Sep 17 00:00:00 2001
From: Chas Williams <chas3@att.com>
Date: Thu, 20 Sep 2018 08:52:26 -0400
Subject: [PATCH] net/bonding: fix Rx slave fairness
[ upstream commit e1110e97764873de0af28e6fa11dcd9c170d4e53 ]
Some PMDs, especially ones with vector receives, require a minimum number
of receive buffers in order to receive any packets. If the first slave
read leaves less than this number available, a read from the next slave
may return 0 implying that the slave doesn't have any packets which
results in skipping over that slave as the next active slave.
To fix this, implement round robin for the slaves during receive that
is only advanced to the next slave at the end of each receive burst.
This is also done to provide some additional fairness in processing in
other bonding RX burst routines as well.
Fixes: 2efb58cbab6e ("bond: new link bonding library")
Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Luca Boccassi <bluca@debian.org>
Acked-by: Matan Azrad <matan@mellanox.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 53 ++++++++++++++++++++++------------
1 file changed, 34 insertions(+), 19 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 9ff898724..608b3ebc7 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -85,28 +85,34 @@ bond_ethdev_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
{
struct bond_dev_private *internals;
- uint16_t num_rx_slave = 0;
uint16_t num_rx_total = 0;
-
+ uint16_t slave_count;
+ uint16_t active_slave;
int i;
/* Cast to structure, containing bonded device's port id and queue id */
struct bond_rx_queue *bd_rx_q = (struct bond_rx_queue *)queue;
-
internals = bd_rx_q->dev_private;
+ slave_count = internals->active_slave_count;
+ active_slave = internals->active_slave;
+ for (i = 0; i < slave_count && nb_pkts; i++) {
+ uint16_t num_rx_slave;
- for (i = 0; i < internals->active_slave_count && nb_pkts; i++) {
/* Offset of pointer to *bufs increases as packets are received
* from other slaves */
- num_rx_slave = rte_eth_rx_burst(internals->active_slaves[i],
- bd_rx_q->queue_id, bufs + num_rx_total, nb_pkts);
- if (num_rx_slave) {
- num_rx_total += num_rx_slave;
- nb_pkts -= num_rx_slave;
- }
+ num_rx_slave =
+ rte_eth_rx_burst(internals->active_slaves[active_slave],
+ bd_rx_q->queue_id,
+ bufs + num_rx_total, nb_pkts);
+ num_rx_total += num_rx_slave;
+ nb_pkts -= num_rx_slave;
+ if (++active_slave == slave_count)
+ active_slave = 0;
}
+ if (++internals->active_slave == slave_count)
+ internals->active_slave = 0;
return num_rx_total;
}
@@ -285,25 +291,32 @@ bond_ethdev_rx_burst_8023ad_fast_queue(void *queue, struct rte_mbuf **bufs,
uint16_t num_rx_total = 0; /* Total number of received packets */
uint16_t slaves[RTE_MAX_ETHPORTS];
uint16_t slave_count;
-
- uint16_t i, idx;
+ uint16_t active_slave;
+ uint16_t i;
/* Copy slave list to protect against slave up/down changes during tx
* bursting */
slave_count = internals->active_slave_count;
+ active_slave = internals->active_slave;
memcpy(slaves, internals->active_slaves,
sizeof(internals->active_slaves[0]) * slave_count);
- for (i = 0, idx = internals->active_slave;
- i < slave_count && num_rx_total < nb_pkts; i++, idx++) {
- idx = idx % slave_count;
+ for (i = 0; i < slave_count && nb_pkts; i++) {
+ uint16_t num_rx_slave;
/* Read packets from this slave */
- num_rx_total += rte_eth_rx_burst(slaves[idx], bd_rx_q->queue_id,
- &bufs[num_rx_total], nb_pkts - num_rx_total);
+ num_rx_slave = rte_eth_rx_burst(slaves[active_slave],
+ bd_rx_q->queue_id,
+ bufs + num_rx_total, nb_pkts);
+ num_rx_total += num_rx_slave;
+ nb_pkts -= num_rx_slave;
+
+ if (++active_slave == slave_count)
+ active_slave = 0;
}
- internals->active_slave = idx;
+ if (++internals->active_slave == slave_count)
+ internals->active_slave = 0;
return num_rx_total;
}
@@ -481,7 +494,9 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
idx = 0;
}
- internals->active_slave = idx;
+ if (++internals->active_slave == slave_count)
+ internals->active_slave = 0;
+
return num_rx_total;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.375596432 -0800
+++ 0025-net-bonding-fix-Rx-slave-fairness.patch 2018-11-29 15:01:45.026962000 -0800
@@ -1,8 +1,10 @@
-From e1110e97764873de0af28e6fa11dcd9c170d4e53 Mon Sep 17 00:00:00 2001
+From d3fdcdcdec876a082d9e5df17b60077fbe32b927 Mon Sep 17 00:00:00 2001
From: Chas Williams <chas3@att.com>
Date: Thu, 20 Sep 2018 08:52:26 -0400
Subject: [PATCH] net/bonding: fix Rx slave fairness
+[ upstream commit e1110e97764873de0af28e6fa11dcd9c170d4e53 ]
+
Some PMDs, especially ones with vector receives, require a minimum number
of receive buffers in order to receive any packets. If the first slave
read leaves less than this number available, a read from the next slave
@@ -15,7 +17,6 @@
other bonding RX burst routines as well.
Fixes: 2efb58cbab6e ("bond: new link bonding library")
-Cc: stable@dpdk.org
Signed-off-by: Chas Williams <chas3@att.com>
Acked-by: Luca Boccassi <bluca@debian.org>
@@ -25,10 +26,10 @@
1 file changed, 34 insertions(+), 19 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
-index 7814258f2..86e78bde8 100644
+index 9ff898724..608b3ebc7 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
-@@ -58,28 +58,34 @@ bond_ethdev_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
+@@ -85,28 +85,34 @@ bond_ethdev_rx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
{
struct bond_dev_private *internals;
@@ -73,7 +74,7 @@
return num_rx_total;
}
-@@ -258,25 +264,32 @@ bond_ethdev_rx_burst_8023ad_fast_queue(void *queue, struct rte_mbuf **bufs,
+@@ -285,25 +291,32 @@ bond_ethdev_rx_burst_8023ad_fast_queue(void *queue, struct rte_mbuf **bufs,
uint16_t num_rx_total = 0; /* Total number of received packets */
uint16_t slaves[RTE_MAX_ETHPORTS];
uint16_t slave_count;
@@ -114,7 +115,7 @@
return num_rx_total;
}
-@@ -459,7 +472,9 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
+@@ -481,7 +494,9 @@ bond_ethdev_rx_burst_8023ad(void *queue, struct rte_mbuf **bufs,
idx = 0;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/failsafe: remove not supported multicast MAC filter' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (23 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: fix Rx slave fairness' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: make last byte of module information available' " Yongseok Koh
` (101 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Evgeny Im; +Cc: Andrew Rybchenko, Gaetan Rivet, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6f582fb58f25ffa05bc7f3784bb9f889685e34c4 Mon Sep 17 00:00:00 2001
From: Evgeny Im <evgeny.im@oktetlabs.com>
Date: Fri, 21 Sep 2018 16:36:21 +0100
Subject: [PATCH] net/failsafe: remove not supported multicast MAC filter
[ upstream commit 4d7c9382490376b295077d445a60763a8e5b0518 ]
set_mc_addr_list method is not implemented by the driver yet.
Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
Signed-off-by: Evgeny Im <evgeny.im@oktetlabs.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
doc/guides/nics/features/failsafe.ini | 1 -
1 file changed, 1 deletion(-)
diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini
index a42e344a7..dc824107d 100644
--- a/doc/guides/nics/features/failsafe.ini
+++ b/doc/guides/nics/features/failsafe.ini
@@ -11,7 +11,6 @@ Jumbo frame = Y
Promiscuous mode = Y
Allmulticast mode = Y
Unicast MAC filter = Y
-Multicast MAC filter = Y
VLAN filter = Y
Flow control = Y
Flow API = Y
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.418434588 -0800
+++ 0026-net-failsafe-remove-not-supported-multicast-MAC-filt.patch 2018-11-29 15:01:45.027964000 -0800
@@ -1,12 +1,13 @@
-From 4d7c9382490376b295077d445a60763a8e5b0518 Mon Sep 17 00:00:00 2001
+From 6f582fb58f25ffa05bc7f3784bb9f889685e34c4 Mon Sep 17 00:00:00 2001
From: Evgeny Im <evgeny.im@oktetlabs.com>
Date: Fri, 21 Sep 2018 16:36:21 +0100
Subject: [PATCH] net/failsafe: remove not supported multicast MAC filter
+[ upstream commit 4d7c9382490376b295077d445a60763a8e5b0518 ]
+
set_mc_addr_list method is not implemented by the driver yet.
Fixes: a46f8d584eb8 ("net/failsafe: add fail-safe PMD")
-Cc: stable@dpdk.org
Signed-off-by: Evgeny Im <evgeny.im@oktetlabs.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -16,10 +17,10 @@
1 file changed, 1 deletion(-)
diff --git a/doc/guides/nics/features/failsafe.ini b/doc/guides/nics/features/failsafe.ini
-index e3c4c08f2..89e253df3 100644
+index a42e344a7..dc824107d 100644
--- a/doc/guides/nics/features/failsafe.ini
+++ b/doc/guides/nics/features/failsafe.ini
-@@ -15,7 +15,6 @@ Jumbo frame = Y
+@@ -11,7 +11,6 @@ Jumbo frame = Y
Promiscuous mode = Y
Allmulticast mode = Y
Unicast MAC filter = Y
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc/base: make last byte of module information available' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (24 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: remove not supported multicast MAC filter' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'ethdev: fix doxygen comment to be with structure' " Yongseok Koh
` (100 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Richard Houldsworth; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 4ac9b30b1f1f68219ee9fb5472b9768798c004aa Mon Sep 17 00:00:00 2001
From: Richard Houldsworth <rhouldsworth@solarflare.com>
Date: Mon, 24 Sep 2018 14:50:20 +0100
Subject: [PATCH] net/sfc/base: make last byte of module information available
[ upstream commit 7624c9442df3b87aac77c6923b59740299866c43 ]
Adjust bounds so the interface supports reading
the last available byte of data.
Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
drivers/net/sfc/base/efx_phy.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/efx_phy.c b/drivers/net/sfc/base/efx_phy.c
index 752cd52e6..af1ad9817 100644
--- a/drivers/net/sfc/base/efx_phy.c
+++ b/drivers/net/sfc/base/efx_phy.c
@@ -309,7 +309,7 @@ efx_phy_module_get_info(
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
EFSYS_ASSERT(data != NULL);
- if ((uint32_t)offset + len > 0xff) {
+ if ((uint32_t)offset + len > 0x100) {
rc = EINVAL;
goto fail1;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.459223161 -0800
+++ 0027-net-sfc-base-make-last-byte-of-module-information-av.patch 2018-11-29 15:01:45.028968000 -0800
@@ -1,13 +1,14 @@
-From 7624c9442df3b87aac77c6923b59740299866c43 Mon Sep 17 00:00:00 2001
+From 4ac9b30b1f1f68219ee9fb5472b9768798c004aa Mon Sep 17 00:00:00 2001
From: Richard Houldsworth <rhouldsworth@solarflare.com>
Date: Mon, 24 Sep 2018 14:50:20 +0100
Subject: [PATCH] net/sfc/base: make last byte of module information available
+[ upstream commit 7624c9442df3b87aac77c6923b59740299866c43 ]
+
Adjust bounds so the interface supports reading
the last available byte of data.
Fixes: 19b64c6ac35f ("net/sfc/base: import libefx base")
-Cc: stable@dpdk.org
Signed-off-by: Richard Houldsworth <rhouldsworth@solarflare.com>
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -16,10 +17,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/sfc/base/efx_phy.c b/drivers/net/sfc/base/efx_phy.c
-index 25059dfe1..e78d6efcb 100644
+index 752cd52e6..af1ad9817 100644
--- a/drivers/net/sfc/base/efx_phy.c
+++ b/drivers/net/sfc/base/efx_phy.c
-@@ -297,7 +297,7 @@ efx_phy_module_get_info(
+@@ -309,7 +309,7 @@ efx_phy_module_get_info(
EFSYS_ASSERT3U(enp->en_magic, ==, EFX_NIC_MAGIC);
EFSYS_ASSERT(data != NULL);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'ethdev: fix doxygen comment to be with structure' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (25 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: make last byte of module information available' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: stop and deactivate slaves on stop' " Yongseok Koh
` (99 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Paul M Stillwell Jr; +Cc: Thomas Monjalon, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 3779a3466f6026750904ab585e07c6b4d4405b9f Mon Sep 17 00:00:00 2001
From: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Date: Tue, 25 Sep 2018 15:31:09 +0100
Subject: [PATCH] ethdev: fix doxygen comment to be with structure
[ upstream commit cb0ad8fa267010e5558c0ffe89a3b3229b1e9b8d ]
The doxygen comment describing the rte_eth_dev_info structure
was separated from the structure itself so move the comment
back to be with the structure.
Fixes: 7238e63bce52 ("ethdev: add support for device offload capabilities")
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
lib/librte_ether/rte_ethdev.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
index 47e37a6fa..c4f68d1b9 100644
--- a/lib/librte_ether/rte_ethdev.h
+++ b/lib/librte_ether/rte_ethdev.h
@@ -944,12 +944,6 @@ struct rte_eth_conf {
};
/**
- * A structure used to retrieve the contextual information of
- * an Ethernet device, such as the controlling driver of the device,
- * its PCI context, etc...
- */
-
-/**
* RX offload capabilities of a device.
*/
#define DEV_RX_OFFLOAD_VLAN_STRIP 0x00000001
@@ -1010,6 +1004,12 @@ struct rte_pci_device;
/**
* Ethernet device information
*/
+
+/**
+ * A structure used to retrieve the contextual information of
+ * an Ethernet device, such as the controlling driver of the
+ * device, etc...
+ */
struct rte_eth_dev_info {
struct rte_pci_device *pci_dev; /**< Device PCI information. */
const char *driver_name; /**< Device Driver name. */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.500194850 -0800
+++ 0028-ethdev-fix-doxygen-comment-to-be-with-structure.patch 2018-11-29 15:01:45.033960000 -0800
@@ -1,26 +1,27 @@
-From cb0ad8fa267010e5558c0ffe89a3b3229b1e9b8d Mon Sep 17 00:00:00 2001
+From 3779a3466f6026750904ab585e07c6b4d4405b9f Mon Sep 17 00:00:00 2001
From: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Date: Tue, 25 Sep 2018 15:31:09 +0100
Subject: [PATCH] ethdev: fix doxygen comment to be with structure
+[ upstream commit cb0ad8fa267010e5558c0ffe89a3b3229b1e9b8d ]
+
The doxygen comment describing the rte_eth_dev_info structure
was separated from the structure itself so move the comment
back to be with the structure.
Fixes: 7238e63bce52 ("ethdev: add support for device offload capabilities")
-Cc: stable@dpdk.org
Signed-off-by: Paul M Stillwell Jr <paul.m.stillwell.jr@intel.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
- lib/librte_ethdev/rte_ethdev.h | 12 ++++++------
+ lib/librte_ether/rte_ethdev.h | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
-diff --git a/lib/librte_ethdev/rte_ethdev.h b/lib/librte_ethdev/rte_ethdev.h
-index 44b4fb33f..012577b0a 100644
---- a/lib/librte_ethdev/rte_ethdev.h
-+++ b/lib/librte_ethdev/rte_ethdev.h
-@@ -870,12 +870,6 @@ struct rte_eth_conf {
+diff --git a/lib/librte_ether/rte_ethdev.h b/lib/librte_ether/rte_ethdev.h
+index 47e37a6fa..c4f68d1b9 100644
+--- a/lib/librte_ether/rte_ethdev.h
++++ b/lib/librte_ether/rte_ethdev.h
+@@ -944,12 +944,6 @@ struct rte_eth_conf {
};
/**
@@ -33,7 +34,7 @@
* RX offload capabilities of a device.
*/
#define DEV_RX_OFFLOAD_VLAN_STRIP 0x00000001
-@@ -1005,6 +999,12 @@ struct rte_eth_switch_info {
+@@ -1010,6 +1004,12 @@ struct rte_pci_device;
/**
* Ethernet device information
*/
@@ -44,7 +45,7 @@
+ * device, etc...
+ */
struct rte_eth_dev_info {
- struct rte_device *device; /** Generic device information */
+ struct rte_pci_device *pci_dev; /**< Device PCI information. */
const char *driver_name; /**< Device Driver name. */
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bonding: stop and deactivate slaves on stop' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (26 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'ethdev: fix doxygen comment to be with structure' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix check for auth key' " Yongseok Koh
` (98 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Radu Nicolau; +Cc: Declan Doherty, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 099f4cd0d934eb9748436f865f06568938bb1dcd Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Wed, 1 Aug 2018 14:18:43 +0100
Subject: [PATCH] net/bonding: stop and deactivate slaves on stop
[ upstream commit 7486331308f6c18b3f84bb2c19b8ffe1808a32f5 ]
When a bonding port is stopped also stop and deactivate all slaves.
Otherwise slaves will be still listed as active.
Fixes: 2efb58cbab6e ("bond: new link bonding library")
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index 608b3ebc7..d4b37d183 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2063,12 +2063,15 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
tlb_last_obytets[internals->active_slaves[i]] = 0;
}
- internals->link_status_polling_enabled = 0;
- for (i = 0; i < internals->slave_count; i++)
- internals->slaves[i].last_link_status = 0;
-
eth_dev->data->dev_link.link_status = ETH_LINK_DOWN;
eth_dev->data->dev_started = 0;
+
+ internals->link_status_polling_enabled = 0;
+ for (i = 0; i < internals->slave_count; i++) {
+ internals->slaves[i].last_link_status = 0;
+ rte_eth_dev_stop(internals->slaves[i].port_id);
+ deactivate_slave(eth_dev, internals->slaves[i].port_id);
+ }
}
void
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.543490315 -0800
+++ 0029-net-bonding-stop-and-deactivate-slaves-on-stop.patch 2018-11-29 15:01:45.036960000 -0800
@@ -1,13 +1,14 @@
-From 7486331308f6c18b3f84bb2c19b8ffe1808a32f5 Mon Sep 17 00:00:00 2001
+From 099f4cd0d934eb9748436f865f06568938bb1dcd Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Wed, 1 Aug 2018 14:18:43 +0100
Subject: [PATCH] net/bonding: stop and deactivate slaves on stop
+[ upstream commit 7486331308f6c18b3f84bb2c19b8ffe1808a32f5 ]
+
When a bonding port is stopped also stop and deactivate all slaves.
Otherwise slaves will be still listed as active.
Fixes: 2efb58cbab6e ("bond: new link bonding library")
-Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Declan Doherty <declan.doherty@intel.com>
@@ -16,10 +17,10 @@
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
-index 4df0e8407..1d6245aa5 100644
+index 608b3ebc7..d4b37d183 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
-@@ -2174,12 +2174,15 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
+@@ -2063,12 +2063,15 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
tlb_last_obytets[internals->active_slaves[i]] = 0;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/test-crypto-perf: fix check for auth key' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (27 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: stop and deactivate slaves on stop' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix check for cipher IV' " Yongseok Koh
` (97 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Anoob Joseph; +Cc: Ayuj Verma, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 845486a3a80fe6e8bc1ae9a7049a3b483e6fe124 Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Date: Fri, 14 Sep 2018 14:54:47 +0530
Subject: [PATCH] app/test-crypto-perf: fix check for auth key
[ upstream commit c864167ce97d91ed95c68f8f85cf2dbaaae212d3 ]
Authentication key is not required for all algorithms. Making sure the
null check is done only when 'auth_key_sz' is non-zero.
Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Signed-off-by: Ayuj Verma <ayuj.verma@caviumnetworks.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
app/test-crypto-perf/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
index 13e012188..fb5d6ebe3 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
@@ -339,7 +339,9 @@ cperf_check_test_vector(struct cperf_options *opts,
return -1;
if (test_vec->plaintext.length < opts->max_buffer_size)
return -1;
- if (test_vec->auth_key.data == NULL)
+ /* Auth key is only required for some algorithms */
+ if (opts->auth_key_sz &&
+ test_vec->auth_key.data == NULL)
return -1;
if (test_vec->auth_key.length != opts->auth_key_sz)
return -1;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.586179694 -0800
+++ 0030-app-test-crypto-perf-fix-check-for-auth-key.patch 2018-11-29 15:01:45.037966000 -0800
@@ -1,13 +1,14 @@
-From c864167ce97d91ed95c68f8f85cf2dbaaae212d3 Mon Sep 17 00:00:00 2001
+From 845486a3a80fe6e8bc1ae9a7049a3b483e6fe124 Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Date: Fri, 14 Sep 2018 14:54:47 +0530
Subject: [PATCH] app/test-crypto-perf: fix check for auth key
+[ upstream commit c864167ce97d91ed95c68f8f85cf2dbaaae212d3 ]
+
Authentication key is not required for all algorithms. Making sure the
null check is done only when 'auth_key_sz' is non-zero.
Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
-Cc: stable@dpdk.org
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Signed-off-by: Ayuj Verma <ayuj.verma@caviumnetworks.com>
@@ -17,10 +18,10 @@
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
-index c9f99a76d..55d97c26b 100644
+index 13e012188..fb5d6ebe3 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
-@@ -357,7 +357,9 @@ cperf_check_test_vector(struct cperf_options *opts,
+@@ -339,7 +339,9 @@ cperf_check_test_vector(struct cperf_options *opts,
return -1;
if (test_vec->plaintext.length < opts->max_buffer_size)
return -1;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/test-crypto-perf: fix check for cipher IV' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (28 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix check for auth key' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix double allocation of memory' " Yongseok Koh
` (96 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Anoob Joseph; +Cc: Akash Saxena, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 5f0d2c5b838bf1371cb5732ae22425062e95229d Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Date: Fri, 14 Sep 2018 14:54:48 +0530
Subject: [PATCH] app/test-crypto-perf: fix check for cipher IV
[ upstream commit 3c78812b5082146f23af45784a04c37be9b90190 ]
IV is not required for all ciphers. Making sure the null check is done
only when 'cipher_iv_sz' is non-zero.
Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
Signed-off-by: Akash Saxena <akash.saxena@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
app/test-crypto-perf/main.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
index fb5d6ebe3..be861cc0f 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
@@ -324,7 +324,9 @@ cperf_check_test_vector(struct cperf_options *opts,
return -1;
if (test_vec->ciphertext.length < opts->max_buffer_size)
return -1;
- if (test_vec->cipher_iv.data == NULL)
+ /* Cipher IV is only required for some algorithms */
+ if (opts->cipher_iv_sz &&
+ test_vec->cipher_iv.data == NULL)
return -1;
if (test_vec->cipher_iv.length != opts->cipher_iv_sz)
return -1;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.626698969 -0800
+++ 0031-app-test-crypto-perf-fix-check-for-cipher-IV.patch 2018-11-29 15:01:45.038966000 -0800
@@ -1,13 +1,14 @@
-From 3c78812b5082146f23af45784a04c37be9b90190 Mon Sep 17 00:00:00 2001
+From 5f0d2c5b838bf1371cb5732ae22425062e95229d Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Date: Fri, 14 Sep 2018 14:54:48 +0530
Subject: [PATCH] app/test-crypto-perf: fix check for cipher IV
+[ upstream commit 3c78812b5082146f23af45784a04c37be9b90190 ]
+
IV is not required for all ciphers. Making sure the null check is done
only when 'cipher_iv_sz' is non-zero.
Fixes: f8be1786b1b8 ("app/crypto-perf: introduce performance test application")
-Cc: stable@dpdk.org
Signed-off-by: Akash Saxena <akash.saxena@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
@@ -17,10 +18,10 @@
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/app/test-crypto-perf/main.c b/app/test-crypto-perf/main.c
-index 55d97c26b..953e058c9 100644
+index fb5d6ebe3..be861cc0f 100644
--- a/app/test-crypto-perf/main.c
+++ b/app/test-crypto-perf/main.c
-@@ -342,7 +342,9 @@ cperf_check_test_vector(struct cperf_options *opts,
+@@ -324,7 +324,9 @@ cperf_check_test_vector(struct cperf_options *opts,
return -1;
if (test_vec->ciphertext.length < opts->max_buffer_size)
return -1;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/test-crypto-perf: fix double allocation of memory' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (29 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix check for cipher IV' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'crypto/aesni_mb: fix possible array overrun' " Yongseok Koh
` (95 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Anoob Joseph; +Cc: Akash Saxena, Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6d518e3eba2cf8a67f6e88be56a91ee25219be33 Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Date: Mon, 10 Sep 2018 12:10:58 +0530
Subject: [PATCH] app/test-crypto-perf: fix double allocation of memory
[ upstream commit c61518ed86a02118322c9250be1797a58e3974ba ]
The field, 'cipher_iv.data' is allocated twice when cipher is not null.
Ideally the allocation should depend only on the field
'cperf_options.cipher_iv_sz'. This will make sure this code path gets
valid for ciphers which doesn't require IV.
Fixes: 0fbd75a99fc9 ("cryptodev: move IV parameters to session")
Signed-off-by: Akash Saxena <akash.saxena@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
app/test-crypto-perf/cperf_test_vectors.c | 22 +++++++++-------------
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/app/test-crypto-perf/cperf_test_vectors.c b/app/test-crypto-perf/cperf_test_vectors.c
index fa911ff69..c048652df 100644
--- a/app/test-crypto-perf/cperf_test_vectors.c
+++ b/app/test-crypto-perf/cperf_test_vectors.c
@@ -447,13 +447,19 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
t_vec->cipher_key.length = 0;
t_vec->ciphertext.data = plaintext;
t_vec->cipher_key.data = NULL;
- t_vec->cipher_iv.data = NULL;
} else {
t_vec->cipher_key.length = options->cipher_key_sz;
t_vec->ciphertext.data = ciphertext;
t_vec->cipher_key.data = cipher_key;
- t_vec->cipher_iv.data = rte_malloc(NULL, options->cipher_iv_sz,
- 16);
+ }
+
+ /* Init IV data ptr */
+ t_vec->cipher_iv.data = NULL;
+
+ if (options->cipher_iv_sz != 0) {
+ /* Set IV parameters */
+ t_vec->cipher_iv.data = rte_malloc(NULL,
+ options->cipher_iv_sz, 16);
if (t_vec->cipher_iv.data == NULL) {
rte_free(t_vec);
return NULL;
@@ -461,17 +467,7 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
memcpy(t_vec->cipher_iv.data, iv, options->cipher_iv_sz);
}
t_vec->ciphertext.length = options->max_buffer_size;
-
- /* Set IV parameters */
- t_vec->cipher_iv.data = rte_malloc(NULL, options->cipher_iv_sz,
- 16);
- if (options->cipher_iv_sz && t_vec->cipher_iv.data == NULL) {
- rte_free(t_vec);
- return NULL;
- }
- memcpy(t_vec->cipher_iv.data, iv, options->cipher_iv_sz);
t_vec->cipher_iv.length = options->cipher_iv_sz;
-
t_vec->data.cipher_offset = 0;
t_vec->data.cipher_length = options->max_buffer_size;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.666163887 -0800
+++ 0032-app-test-crypto-perf-fix-double-allocation-of-memory.patch 2018-11-29 15:01:45.040968000 -0800
@@ -1,15 +1,16 @@
-From c61518ed86a02118322c9250be1797a58e3974ba Mon Sep 17 00:00:00 2001
+From 6d518e3eba2cf8a67f6e88be56a91ee25219be33 Mon Sep 17 00:00:00 2001
From: Anoob Joseph <anoob.joseph@caviumnetworks.com>
Date: Mon, 10 Sep 2018 12:10:58 +0530
Subject: [PATCH] app/test-crypto-perf: fix double allocation of memory
+[ upstream commit c61518ed86a02118322c9250be1797a58e3974ba ]
+
The field, 'cipher_iv.data' is allocated twice when cipher is not null.
Ideally the allocation should depend only on the field
'cperf_options.cipher_iv_sz'. This will make sure this code path gets
valid for ciphers which doesn't require IV.
Fixes: 0fbd75a99fc9 ("cryptodev: move IV parameters to session")
-Cc: stable@dpdk.org
Signed-off-by: Akash Saxena <akash.saxena@caviumnetworks.com>
Signed-off-by: Anoob Joseph <anoob.joseph@caviumnetworks.com>
@@ -19,10 +20,10 @@
1 file changed, 9 insertions(+), 13 deletions(-)
diff --git a/app/test-crypto-perf/cperf_test_vectors.c b/app/test-crypto-perf/cperf_test_vectors.c
-index 907a995cc..1af952499 100644
+index fa911ff69..c048652df 100644
--- a/app/test-crypto-perf/cperf_test_vectors.c
+++ b/app/test-crypto-perf/cperf_test_vectors.c
-@@ -419,13 +419,19 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
+@@ -447,13 +447,19 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
t_vec->cipher_key.length = 0;
t_vec->ciphertext.data = plaintext;
t_vec->cipher_key.data = NULL;
@@ -45,7 +46,7 @@
if (t_vec->cipher_iv.data == NULL) {
rte_free(t_vec);
return NULL;
-@@ -433,17 +439,7 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
+@@ -461,17 +467,7 @@ cperf_test_vector_get_dummy(struct cperf_options *options)
memcpy(t_vec->cipher_iv.data, iv, options->cipher_iv_sz);
}
t_vec->ciphertext.length = options->max_buffer_size;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'crypto/aesni_mb: fix possible array overrun' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (30 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix double allocation of memory' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'test/crypto: fix number of queue pairs' " Yongseok Koh
` (94 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Pablo de Lara; +Cc: Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a215e63fca05d81655ab402b147c530b67613862 Mon Sep 17 00:00:00 2001
From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Date: Thu, 2 Aug 2018 05:49:40 +0100
Subject: [PATCH] crypto/aesni_mb: fix possible array overrun
[ upstream commit 95978a85a410e7fa1a03d4f3b90c8770f7f29e72 ]
In order to process crypto operations in the AESNI MB PMD,
they need to be sent to the buffer manager of the Multi-buffer library,
through the "job" structure.
Currently, it is checked if there are outstanding operations to process
in the ring, before getting a new job. However, if there are no available
jobs in the manager, a flush operation needs to take place, freeing some
of the jobs, so it can be used for the outstanding operation.
In order to avoid leaving the dequeued operation without being processed,
the maximum number of operations that can be flushed is the remaining
operations to return, which is the maximum number of operations that can
be return minus the number of operations ready to be returned
(nb_ops - processed_jobs), minus 1 (for the new operation).
The problem comes when (nb_ops - processed_jobs) is 1 (last operation to
dequeue). In that case, flush_mb_mgr is called with maximum number of
operations equal to 0, which is wrong, causing a potential overrun in the
"ops" array.
Besides, the operation dequeued from the ring will be leaked, as no more
operations can be returned.
The solution is to first check if there are jobs available in the manager.
If there are not, flush operation gets called, and if enough operations
are returned from the manager, then no more outstanding operations get
dequeued from the ring, avoiding both the memory leak and the array
overrun.
If there are enough jobs, PMD tries to dequeue an operation from the ring.
If there are no operations in the ring, the new job pointer is not used,
and it will be used in the next get_next_job call, so no memory leak
happens.
Fixes: 0f548b50a160 ("crypto/aesni_mb: process crypto op on dequeue")
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c | 20 ++++++++++++++------
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
index 700438978..f5bb6aa91 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
@@ -663,22 +663,30 @@ aesni_mb_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
uint8_t digest_idx = qp->digest_idx;
do {
- /* Get next operation to process from ingress queue */
- retval = rte_ring_dequeue(qp->ingress_queue, (void **)&op);
- if (retval < 0)
- break;
-
/* Get next free mb job struct from mb manager */
job = (*qp->op_fns->job.get_next)(&qp->mb_mgr);
if (unlikely(job == NULL)) {
/* if no free mb job structs we need to flush mb_mgr */
processed_jobs += flush_mb_mgr(qp,
&ops[processed_jobs],
- (nb_ops - processed_jobs) - 1);
+ nb_ops - processed_jobs);
+
+ if (nb_ops == processed_jobs)
+ break;
job = (*qp->op_fns->job.get_next)(&qp->mb_mgr);
}
+ /*
+ * Get next operation to process from ingress queue.
+ * There is no need to return the job to the MB_MGR
+ * if there are no more operations to process, since the MB_MGR
+ * can use that pointer again in next get_next calls.
+ */
+ retval = rte_ring_dequeue(qp->ingress_queue, (void **)&op);
+ if (retval < 0)
+ break;
+
retval = set_mb_job_params(job, qp, op, &digest_idx);
if (unlikely(retval != 0)) {
qp->stats.dequeue_err_count++;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.711303920 -0800
+++ 0033-crypto-aesni_mb-fix-possible-array-overrun.patch 2018-11-29 15:01:45.042968000 -0800
@@ -1,8 +1,10 @@
-From 95978a85a410e7fa1a03d4f3b90c8770f7f29e72 Mon Sep 17 00:00:00 2001
+From a215e63fca05d81655ab402b147c530b67613862 Mon Sep 17 00:00:00 2001
From: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Date: Thu, 2 Aug 2018 05:49:40 +0100
Subject: [PATCH] crypto/aesni_mb: fix possible array overrun
+[ upstream commit 95978a85a410e7fa1a03d4f3b90c8770f7f29e72 ]
+
In order to process crypto operations in the AESNI MB PMD,
they need to be sent to the buffer manager of the Multi-buffer library,
through the "job" structure.
@@ -36,7 +38,6 @@
happens.
Fixes: 0f548b50a160 ("crypto/aesni_mb: process crypto op on dequeue")
-Cc: stable@dpdk.org
Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
@@ -45,10 +46,10 @@
1 file changed, 14 insertions(+), 6 deletions(-)
diff --git a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
-index 93dc7a443..e2dd834f0 100644
+index 700438978..f5bb6aa91 100644
--- a/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
+++ b/drivers/crypto/aesni_mb/rte_aesni_mb_pmd.c
-@@ -833,22 +833,30 @@ aesni_mb_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
+@@ -663,22 +663,30 @@ aesni_mb_pmd_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,
uint8_t digest_idx = qp->digest_idx;
do {
@@ -58,7 +59,7 @@
- break;
-
/* Get next free mb job struct from mb manager */
- job = (*qp->op_fns->job.get_next)(qp->mb_mgr);
+ job = (*qp->op_fns->job.get_next)(&qp->mb_mgr);
if (unlikely(job == NULL)) {
/* if no free mb job structs we need to flush mb_mgr */
processed_jobs += flush_mb_mgr(qp,
@@ -69,7 +70,7 @@
+ if (nb_ops == processed_jobs)
+ break;
- job = (*qp->op_fns->job.get_next)(qp->mb_mgr);
+ job = (*qp->op_fns->job.get_next)(&qp->mb_mgr);
}
+ /*
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'test/crypto: fix number of queue pairs' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (31 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'crypto/aesni_mb: fix possible array overrun' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'event/sw: fix cq index check for unlink usecases' " Yongseok Koh
` (93 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Fiona Trahe; +Cc: Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c958eab0dc095ed1930ef25f7eaac0847be4112f Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Sat, 22 Sep 2018 14:33:36 +0100
Subject: [PATCH] test/crypto: fix number of queue pairs
[ upstream commit 738ad7b42b63fc5067419bf609296f2c4a6a0cb0 ]
Some of the tests use a QAT-specific value (2) for
maximum nr of queue pairs to create valid/invalid test cases.
This has accidentally worked ok as default max_qps for all PMDs
is larger. It is incorrect however and would fail if a device
had a max lower than the QAT value.
Instead use the value returned by the PMD in the
rte_cryptodev_get_info query, this value is stored in the ts_params.
Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
test/test/test_cryptodev.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
index 28f982f42..5136daf93 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
@@ -608,7 +608,7 @@ test_device_configure_invalid_queue_pair_ids(void)
/* valid - max value queue pairs */
- ts_params->conf.nb_queue_pairs = MAX_NUM_QPS_PER_QAT_DEVICE;
+ ts_params->conf.nb_queue_pairs = orig_nb_qps;
TEST_ASSERT_SUCCESS(rte_cryptodev_configure(ts_params->valid_devs[0],
&ts_params->conf),
@@ -640,7 +640,7 @@ test_device_configure_invalid_queue_pair_ids(void)
/* invalid - max value + 1 queue pairs */
- ts_params->conf.nb_queue_pairs = MAX_NUM_QPS_PER_QAT_DEVICE + 1;
+ ts_params->conf.nb_queue_pairs = orig_nb_qps + 1;
TEST_ASSERT_FAIL(rte_cryptodev_configure(ts_params->valid_devs[0],
&ts_params->conf),
@@ -792,7 +792,7 @@ test_queue_pair_descriptor_setup(void)
/* test invalid queue pair id */
qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT; /*valid */
- qp_id = DEFAULT_NUM_QPS_PER_QAT_DEVICE; /*invalid */
+ qp_id = ts_params->conf.nb_queue_pairs; /*invalid */
TEST_ASSERT_FAIL(rte_cryptodev_queue_pair_setup(
ts_params->valid_devs[0],
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.752188762 -0800
+++ 0034-test-crypto-fix-number-of-queue-pairs.patch 2018-11-29 15:01:45.050959000 -0800
@@ -1,8 +1,10 @@
-From 738ad7b42b63fc5067419bf609296f2c4a6a0cb0 Mon Sep 17 00:00:00 2001
+From c958eab0dc095ed1930ef25f7eaac0847be4112f Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Sat, 22 Sep 2018 14:33:36 +0100
Subject: [PATCH] test/crypto: fix number of queue pairs
+[ upstream commit 738ad7b42b63fc5067419bf609296f2c4a6a0cb0 ]
+
Some of the tests use a QAT-specific value (2) for
maximum nr of queue pairs to create valid/invalid test cases.
This has accidentally worked ok as default max_qps for all PMDs
@@ -12,7 +14,6 @@
rte_cryptodev_get_info query, this value is stored in the ts_params.
Fixes: 202d375c60bc ("app/test: add cryptodev unit and performance tests")
-Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
@@ -21,10 +22,10 @@
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/test/test/test_cryptodev.c b/test/test/test_cryptodev.c
-index a6044b261..c63662d91 100644
+index 28f982f42..5136daf93 100644
--- a/test/test/test_cryptodev.c
+++ b/test/test/test_cryptodev.c
-@@ -635,7 +635,7 @@ test_device_configure_invalid_queue_pair_ids(void)
+@@ -608,7 +608,7 @@ test_device_configure_invalid_queue_pair_ids(void)
/* valid - max value queue pairs */
@@ -33,7 +34,7 @@
TEST_ASSERT_SUCCESS(rte_cryptodev_configure(ts_params->valid_devs[0],
&ts_params->conf),
-@@ -667,7 +667,7 @@ test_device_configure_invalid_queue_pair_ids(void)
+@@ -640,7 +640,7 @@ test_device_configure_invalid_queue_pair_ids(void)
/* invalid - max value + 1 queue pairs */
@@ -42,7 +43,7 @@
TEST_ASSERT_FAIL(rte_cryptodev_configure(ts_params->valid_devs[0],
&ts_params->conf),
-@@ -819,7 +819,7 @@ test_queue_pair_descriptor_setup(void)
+@@ -792,7 +792,7 @@ test_queue_pair_descriptor_setup(void)
/* test invalid queue pair id */
qp_conf.nb_descriptors = DEFAULT_NUM_OPS_INFLIGHT; /*valid */
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'event/sw: fix cq index check for unlink usecases' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (32 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'test/crypto: fix number of queue pairs' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'test/event: check burst mode capability' " Yongseok Koh
` (92 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Harry van Haaren; +Cc: Matias Elo, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a49935d1c7f2553097b031cee7c9023d06e50bc3 Mon Sep 17 00:00:00 2001
From: Harry van Haaren <harry.van.haaren@intel.com>
Date: Fri, 21 Sep 2018 11:25:10 +0100
Subject: [PATCH] event/sw: fix cq index check for unlink usecases
[ upstream commit 733fc6ca0b48e4bdf2717a8723243f93a3864bb4 ]
This commit fixes the cq index checks when unlinking
ports/queues while the scheduler core is running.
Previously, the == comparison could be "skipped" if
in particular corner cases. With the check being changed
to >= this is resolved as the cq idx gets reset to zero.
Bugzilla ID: 60
Fixes: 617995dfc5b2 ("event/sw: add scheduling logic")
Suggested-by: Matias Elo <matias.elo@nokia.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
---
drivers/event/sw/sw_evdev_scheduler.c | 13 ++++++++-----
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/event/sw/sw_evdev_scheduler.c b/drivers/event/sw/sw_evdev_scheduler.c
index 8a2c9d4f9..2d25cf0b3 100644
--- a/drivers/event/sw/sw_evdev_scheduler.c
+++ b/drivers/event/sw/sw_evdev_scheduler.c
@@ -79,9 +79,11 @@ sw_schedule_atomic_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
int cq = fid->cq;
if (cq < 0) {
- uint32_t cq_idx = qid->cq_next_tx++;
- if (qid->cq_next_tx == qid->cq_num_mapped_cqs)
+ uint32_t cq_idx;
+ if (qid->cq_next_tx >= qid->cq_num_mapped_cqs)
qid->cq_next_tx = 0;
+ cq_idx = qid->cq_next_tx++;
+
cq = qid->cq_map[cq_idx];
/* find least used */
@@ -168,9 +170,10 @@ sw_schedule_parallel_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
do {
if (++cq_check_count > qid->cq_num_mapped_cqs)
goto exit;
- cq = qid->cq_map[cq_idx];
- if (++cq_idx == qid->cq_num_mapped_cqs)
+ if (cq_idx >= qid->cq_num_mapped_cqs)
cq_idx = 0;
+ cq = qid->cq_map[cq_idx++];
+
} while (rte_event_ring_free_count(
sw->ports[cq].cq_worker_ring) == 0 ||
sw->ports[cq].inflights == SW_PORT_HIST_LIST);
@@ -248,7 +251,7 @@ sw_schedule_qid_to_cq(struct sw_evdev *sw)
int iq_num = PKT_MASK_TO_IQ(qid->iq_pkt_mask);
/* zero mapped CQs indicates directed */
- if (iq_num >= SW_IQS_MAX)
+ if (iq_num >= SW_IQS_MAX || qid->cq_num_mapped_cqs == 0)
continue;
uint32_t pkts_done = 0;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.799937892 -0800
+++ 0035-event-sw-fix-cq-index-check-for-unlink-usecases.patch 2018-11-29 15:01:45.052962000 -0800
@@ -1,8 +1,10 @@
-From 733fc6ca0b48e4bdf2717a8723243f93a3864bb4 Mon Sep 17 00:00:00 2001
+From a49935d1c7f2553097b031cee7c9023d06e50bc3 Mon Sep 17 00:00:00 2001
From: Harry van Haaren <harry.van.haaren@intel.com>
Date: Fri, 21 Sep 2018 11:25:10 +0100
Subject: [PATCH] event/sw: fix cq index check for unlink usecases
+[ upstream commit 733fc6ca0b48e4bdf2717a8723243f93a3864bb4 ]
+
This commit fixes the cq index checks when unlinking
ports/queues while the scheduler core is running.
Previously, the == comparison could be "skipped" if
@@ -11,7 +13,6 @@
Bugzilla ID: 60
Fixes: 617995dfc5b2 ("event/sw: add scheduling logic")
-Cc: stable@dpdk.org
Suggested-by: Matias Elo <matias.elo@nokia.com>
Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
@@ -20,10 +21,10 @@
1 file changed, 8 insertions(+), 5 deletions(-)
diff --git a/drivers/event/sw/sw_evdev_scheduler.c b/drivers/event/sw/sw_evdev_scheduler.c
-index e3a41e02f..fb5d44630 100644
+index 8a2c9d4f9..2d25cf0b3 100644
--- a/drivers/event/sw/sw_evdev_scheduler.c
+++ b/drivers/event/sw/sw_evdev_scheduler.c
-@@ -51,9 +51,11 @@ sw_schedule_atomic_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
+@@ -79,9 +79,11 @@ sw_schedule_atomic_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
int cq = fid->cq;
if (cq < 0) {
@@ -37,7 +38,7 @@
cq = qid->cq_map[cq_idx];
/* find least used */
-@@ -140,9 +142,10 @@ sw_schedule_parallel_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
+@@ -168,9 +170,10 @@ sw_schedule_parallel_to_cq(struct sw_evdev *sw, struct sw_qid * const qid,
do {
if (++cq_check_count > qid->cq_num_mapped_cqs)
goto exit;
@@ -50,7 +51,7 @@
} while (rte_event_ring_free_count(
sw->ports[cq].cq_worker_ring) == 0 ||
sw->ports[cq].inflights == SW_PORT_HIST_LIST);
-@@ -220,7 +223,7 @@ sw_schedule_qid_to_cq(struct sw_evdev *sw)
+@@ -248,7 +251,7 @@ sw_schedule_qid_to_cq(struct sw_evdev *sw)
int iq_num = PKT_MASK_TO_IQ(qid->iq_pkt_mask);
/* zero mapped CQs indicates directed */
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'test/event: check burst mode capability' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (33 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'event/sw: fix cq index check for unlink usecases' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'mem: fix undefined behavior in NUMA-aware mapping' " Yongseok Koh
` (91 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Pavan Nikhilesh; +Cc: Jerin Jacob, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 4f414cb7c85d75c4791ff889bbe60d45be6f2485 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Date: Wed, 5 Sep 2018 19:53:31 +0530
Subject: [PATCH] test/event: check burst mode capability
[ upstream commit 6fe63a3d7ccc2e2376182f663251f42add77ec40 ]
Enqueue, dequeue depths are only valid for event devs that have burst
mode capability. Check event dev capability before testing depth
boundary.
Fixes: f8f9d233ea0e ("test/eventdev: add unit tests")
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
test/test/test_eventdev.c | 21 ++++++++++++---------
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/test/test/test_eventdev.c b/test/test/test_eventdev.c
index 1ed2a1ddd..d51f94c3f 100644
--- a/test/test/test_eventdev.c
+++ b/test/test/test_eventdev.c
@@ -218,15 +218,18 @@ test_eventdev_configure(void)
"Config negative test failed");
TEST_ASSERT_EQUAL(-EINVAL,
test_ethdev_config_run(&dev_conf, &info, max_event_queue_flows),
- "Config negative test failed");
- TEST_ASSERT_EQUAL(-EINVAL,
- test_ethdev_config_run(&dev_conf, &info,
- max_event_port_dequeue_depth),
- "Config negative test failed");
- TEST_ASSERT_EQUAL(-EINVAL,
- test_ethdev_config_run(&dev_conf, &info,
- max_event_port_enqueue_depth),
- "Config negative test failed");
+ "Config negative test failed");
+
+ if (info.event_dev_cap & RTE_EVENT_DEV_CAP_BURST_MODE) {
+ TEST_ASSERT_EQUAL(-EINVAL,
+ test_ethdev_config_run(&dev_conf, &info,
+ max_event_port_dequeue_depth),
+ "Config negative test failed");
+ TEST_ASSERT_EQUAL(-EINVAL,
+ test_ethdev_config_run(&dev_conf, &info,
+ max_event_port_enqueue_depth),
+ "Config negative test failed");
+ }
/* Positive case */
devconf_set_default_sane_values(&dev_conf, &info);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.841019957 -0800
+++ 0036-test-event-check-burst-mode-capability.patch 2018-11-29 15:01:45.054961000 -0800
@@ -1,14 +1,15 @@
-From 6fe63a3d7ccc2e2376182f663251f42add77ec40 Mon Sep 17 00:00:00 2001
+From 4f414cb7c85d75c4791ff889bbe60d45be6f2485 Mon Sep 17 00:00:00 2001
From: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Date: Wed, 5 Sep 2018 19:53:31 +0530
Subject: [PATCH] test/event: check burst mode capability
+[ upstream commit 6fe63a3d7ccc2e2376182f663251f42add77ec40 ]
+
Enqueue, dequeue depths are only valid for event devs that have burst
mode capability. Check event dev capability before testing depth
boundary.
Fixes: f8f9d233ea0e ("test/eventdev: add unit tests")
-Cc: stable@dpdk.org
Signed-off-by: Pavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
@@ -17,10 +18,10 @@
1 file changed, 12 insertions(+), 9 deletions(-)
diff --git a/test/test/test_eventdev.c b/test/test/test_eventdev.c
-index 04bdc6b6c..00d73275c 100644
+index 1ed2a1ddd..d51f94c3f 100644
--- a/test/test/test_eventdev.c
+++ b/test/test/test_eventdev.c
-@@ -190,15 +190,18 @@ test_eventdev_configure(void)
+@@ -218,15 +218,18 @@ test_eventdev_configure(void)
"Config negative test failed");
TEST_ASSERT_EQUAL(-EINVAL,
test_ethdev_config_run(&dev_conf, &info, max_event_queue_flows),
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'mem: fix undefined behavior in NUMA-aware mapping' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (34 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'test/event: check burst mode capability' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'igb_uio: fix refcount if open returns error' " Yongseok Koh
` (90 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: Ilya Maximets, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From df37e777d07eff975fbf500dc5f3313ddc756ae5 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Fri, 21 Sep 2018 10:27:22 +0100
Subject: [PATCH] mem: fix undefined behavior in NUMA-aware mapping
[ upstream commit b1621823eacbe4669a4b581d6c420db08f9e6505 ]
When NUMA-aware hugepages config option is set, we rely on
libnuma to tell the kernel to allocate hugepages on a specific
NUMA node. However, we allocate node mask before we check if
NUMA is available in the first place, which, according to
the manpage [1], causes undefined behaviour.
Fix by only using nodemask when we have NUMA available.
[1] https://linux.die.net/man/3/numa_alloc_onnode
Bugzilla ID: 20
Fixes: 1b72605d2416 ("mem: balanced allocation of hugepages")
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ilya Maximets <i.maximets@samsung.com>
---
lib/librte_eal/linuxapp/eal/eal_memory.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
index 0675809b7..8d0456b56 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
@@ -396,7 +396,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
int node_id = -1;
int essential_prev = 0;
int oldpolicy;
- struct bitmask *oldmask = numa_allocate_nodemask();
+ struct bitmask *oldmask = NULL;
bool have_numa = true;
unsigned long maxnode = 0;
@@ -408,6 +408,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
if (orig && have_numa) {
RTE_LOG(DEBUG, EAL, "Trying to obtain current memory policy.\n");
+ oldmask = numa_allocate_nodemask();
if (get_mempolicy(&oldpolicy, oldmask->maskp,
oldmask->size + 1, 0, 0) < 0) {
RTE_LOG(ERR, EAL,
@@ -603,7 +604,8 @@ out:
numa_set_localalloc();
}
}
- numa_free_cpumask(oldmask);
+ if (oldmask != NULL)
+ numa_free_cpumask(oldmask);
#endif
return i;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.882720528 -0800
+++ 0037-mem-fix-undefined-behavior-in-NUMA-aware-mapping.patch 2018-11-29 15:01:45.055965000 -0800
@@ -1,8 +1,10 @@
-From b1621823eacbe4669a4b581d6c420db08f9e6505 Mon Sep 17 00:00:00 2001
+From df37e777d07eff975fbf500dc5f3313ddc756ae5 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Fri, 21 Sep 2018 10:27:22 +0100
Subject: [PATCH] mem: fix undefined behavior in NUMA-aware mapping
+[ upstream commit b1621823eacbe4669a4b581d6c420db08f9e6505 ]
+
When NUMA-aware hugepages config option is set, we rely on
libnuma to tell the kernel to allocate hugepages on a specific
NUMA node. However, we allocate node mask before we check if
@@ -15,7 +17,6 @@
Bugzilla ID: 20
Fixes: 1b72605d2416 ("mem: balanced allocation of hugepages")
-Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ilya Maximets <i.maximets@samsung.com>
@@ -24,10 +25,10 @@
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
-index e3ac24815..78bfa2241 100644
+index 0675809b7..8d0456b56 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
-@@ -264,7 +264,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
+@@ -396,7 +396,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
int node_id = -1;
int essential_prev = 0;
int oldpolicy;
@@ -36,15 +37,15 @@
bool have_numa = true;
unsigned long maxnode = 0;
-@@ -276,6 +276,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
+@@ -408,6 +408,7 @@ map_all_hugepages(struct hugepage_file *hugepg_tbl, struct hugepage_info *hpi,
- if (have_numa) {
+ if (orig && have_numa) {
RTE_LOG(DEBUG, EAL, "Trying to obtain current memory policy.\n");
+ oldmask = numa_allocate_nodemask();
if (get_mempolicy(&oldpolicy, oldmask->maskp,
oldmask->size + 1, 0, 0) < 0) {
RTE_LOG(ERR, EAL,
-@@ -403,7 +404,8 @@ out:
+@@ -603,7 +604,8 @@ out:
numa_set_localalloc();
}
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'igb_uio: fix refcount if open returns error' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (35 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'mem: fix undefined behavior in NUMA-aware mapping' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e: fix send admin queue command before init' " Yongseok Koh
` (89 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From cd1c4b525915170d1138331e1b2a041c0d21f648 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 14 Sep 2018 08:30:19 -0700
Subject: [PATCH] igb_uio: fix refcount if open returns error
[ upstream commit ab856f2947ef0af523eb4d22f4aa8347bbf07391 ]
This fixes the problem of reference count leak if
igbuio_pci_enable_interrupts fails.
Also, replace mutex and integer with a kernel atomic counter.
This is standard pattern for kernel devices.
Fixes: 19685d5aa79c ("igb_uio: allow multi-process access")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 33 +++++++++++--------------------
1 file changed, 11 insertions(+), 22 deletions(-)
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index 1826adbac..45d70272d 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -45,8 +45,7 @@ struct rte_uio_pci_dev {
struct uio_info info;
struct pci_dev *pdev;
enum rte_intr_mode mode;
- struct mutex lock;
- int refcnt;
+ atomic_t refcnt;
};
static char *intr_mode;
@@ -338,23 +337,19 @@ igbuio_pci_open(struct uio_info *info, struct inode *inode)
struct pci_dev *dev = udev->pdev;
int err;
- mutex_lock(&udev->lock);
- if (++udev->refcnt > 1) {
- mutex_unlock(&udev->lock);
+ if (atomic_inc_return(&udev->refcnt) != 1)
return 0;
- }
/* set bus master, which was cleared by the reset function */
pci_set_master(dev);
/* enable interrupts */
err = igbuio_pci_enable_interrupts(udev);
- mutex_unlock(&udev->lock);
if (err) {
+ atomic_dec(&udev->refcnt);
dev_err(&dev->dev, "Enable interrupt fails\n");
- return err;
}
- return 0;
+ return err;
}
static int
@@ -363,19 +358,14 @@ igbuio_pci_release(struct uio_info *info, struct inode *inode)
struct rte_uio_pci_dev *udev = info->priv;
struct pci_dev *dev = udev->pdev;
- mutex_lock(&udev->lock);
- if (--udev->refcnt > 0) {
- mutex_unlock(&udev->lock);
- return 0;
- }
-
- /* disable interrupts */
- igbuio_pci_disable_interrupts(udev);
+ if (atomic_dec_and_test(&udev->refcnt)) {
+ /* disable interrupts */
+ igbuio_pci_disable_interrupts(udev);
- /* stop the device from further DMA */
- pci_clear_master(dev);
+ /* stop the device from further DMA */
+ pci_clear_master(dev);
+ }
- mutex_unlock(&udev->lock);
return 0;
}
@@ -496,7 +486,6 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
if (!udev)
return -ENOMEM;
- mutex_init(&udev->lock);
/*
* enable device: ask low-level code to enable I/O and
* memory
@@ -536,6 +525,7 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
udev->info.release = igbuio_pci_release;
udev->info.priv = udev;
udev->pdev = dev;
+ atomic_set(&udev->refcnt, 0);
err = sysfs_create_group(&dev->dev.kobj, &dev_attr_grp);
if (err != 0)
@@ -587,7 +577,6 @@ igbuio_pci_remove(struct pci_dev *dev)
{
struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
- mutex_destroy(&udev->lock);
sysfs_remove_group(&dev->dev.kobj, &dev_attr_grp);
uio_unregister_device(&udev->info);
igbuio_pci_release_iomem(&udev->info);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.924573535 -0800
+++ 0038-igb_uio-fix-refcount-if-open-returns-error.patch 2018-11-29 15:01:45.057966000 -0800
@@ -1,8 +1,10 @@
-From ab856f2947ef0af523eb4d22f4aa8347bbf07391 Mon Sep 17 00:00:00 2001
+From cd1c4b525915170d1138331e1b2a041c0d21f648 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 14 Sep 2018 08:30:19 -0700
Subject: [PATCH] igb_uio: fix refcount if open returns error
+[ upstream commit ab856f2947ef0af523eb4d22f4aa8347bbf07391 ]
+
This fixes the problem of reference count leak if
igbuio_pci_enable_interrupts fails.
@@ -10,19 +12,18 @@
This is standard pattern for kernel devices.
Fixes: 19685d5aa79c ("igb_uio: allow multi-process access")
-Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
- kernel/linux/igb_uio/igb_uio.c | 33 +++++++++++----------------------
+ lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 33 +++++++++++--------------------
1 file changed, 11 insertions(+), 22 deletions(-)
-diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
-index 3398eacd3..fede66cf2 100644
---- a/kernel/linux/igb_uio/igb_uio.c
-+++ b/kernel/linux/igb_uio/igb_uio.c
-@@ -26,8 +26,7 @@ struct rte_uio_pci_dev {
+diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+index 1826adbac..45d70272d 100644
+--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
++++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+@@ -45,8 +45,7 @@ struct rte_uio_pci_dev {
struct uio_info info;
struct pci_dev *pdev;
enum rte_intr_mode mode;
@@ -31,8 +32,8 @@
+ atomic_t refcnt;
};
- static int wc_activate;
-@@ -320,23 +319,19 @@ igbuio_pci_open(struct uio_info *info, struct inode *inode)
+ static char *intr_mode;
+@@ -338,23 +337,19 @@ igbuio_pci_open(struct uio_info *info, struct inode *inode)
struct pci_dev *dev = udev->pdev;
int err;
@@ -59,7 +60,7 @@
}
static int
-@@ -345,19 +340,14 @@ igbuio_pci_release(struct uio_info *info, struct inode *inode)
+@@ -363,19 +358,14 @@ igbuio_pci_release(struct uio_info *info, struct inode *inode)
struct rte_uio_pci_dev *udev = info->priv;
struct pci_dev *dev = udev->pdev;
@@ -85,7 +86,7 @@
return 0;
}
-@@ -489,7 +479,6 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
+@@ -496,7 +486,6 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
if (!udev)
return -ENOMEM;
@@ -93,7 +94,7 @@
/*
* enable device: ask low-level code to enable I/O and
* memory
-@@ -529,6 +518,7 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
+@@ -536,6 +525,7 @@ igbuio_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
udev->info.release = igbuio_pci_release;
udev->info.priv = udev;
udev->pdev = dev;
@@ -101,7 +102,7 @@
err = sysfs_create_group(&dev->dev.kobj, &dev_attr_grp);
if (err != 0)
-@@ -580,7 +570,6 @@ igbuio_pci_remove(struct pci_dev *dev)
+@@ -587,7 +577,6 @@ igbuio_pci_remove(struct pci_dev *dev)
{
struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e: fix send admin queue command before init' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (36 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'igb_uio: fix refcount if open returns error' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: properly clean resources' " Yongseok Koh
` (88 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Qi Zhang; +Cc: Anand Rawat, Beilei Xing, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From e0794e91afa05bd2c22e99dedb8fcf7870a69ace Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Fri, 28 Sep 2018 11:20:01 +0800
Subject: [PATCH] net/i40e: fix send admin queue command before init
[ upstream commit 0a1b657838c2c0546ebc6469ed2840c5a9a796f4 ]
We should not issue Admin Queue command before Admin Queue is initialized.
But this happened in i40e_hw_init and i40e_filter_input_set_init.
The patch fixes the issue by proper reordering.
Fixes: b6a0ec418274 ("i40e: use AQ for Rx control register read/write")
Reported-by: Anand Rawat <anand.rawat@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 34 +++++++++++++++++-----------------
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 711c6e7b6..9d99e841e 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -1224,9 +1224,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
/* Make sure all is clean before doing PF reset */
i40e_clear_hw(hw);
- /* Initialize the hardware */
- i40e_hw_init(dev);
-
/* Reset here to make sure all is clean for each PF */
ret = i40e_pf_reset(hw);
if (ret) {
@@ -1241,6 +1238,23 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
return ret;
}
+ /* Initialize the parameters for adminq */
+ i40e_init_adminq_parameter(hw);
+ ret = i40e_init_adminq(hw);
+ if (ret != I40E_SUCCESS) {
+ PMD_INIT_LOG(ERR, "Failed to init adminq: %d", ret);
+ return -EIO;
+ }
+ PMD_INIT_LOG(INFO, "FW %d.%d API %d.%d NVM %02d.%02d.%02d eetrack %04x",
+ hw->aq.fw_maj_ver, hw->aq.fw_min_ver,
+ hw->aq.api_maj_ver, hw->aq.api_min_ver,
+ ((hw->nvm.version >> 12) & 0xf),
+ ((hw->nvm.version >> 4) & 0xff),
+ (hw->nvm.version & 0xf), hw->nvm.eetrack);
+
+ /* Initialize the hardware */
+ i40e_hw_init(dev);
+
i40e_config_automask(pf);
i40e_set_default_pctype_table(dev);
@@ -1257,20 +1271,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
/* Initialize the input set for filters (hash and fd) to default value */
i40e_filter_input_set_init(pf);
- /* Initialize the parameters for adminq */
- i40e_init_adminq_parameter(hw);
- ret = i40e_init_adminq(hw);
- if (ret != I40E_SUCCESS) {
- PMD_INIT_LOG(ERR, "Failed to init adminq: %d", ret);
- return -EIO;
- }
- PMD_INIT_LOG(INFO, "FW %d.%d API %d.%d NVM %02d.%02d.%02d eetrack %04x",
- hw->aq.fw_maj_ver, hw->aq.fw_min_ver,
- hw->aq.api_maj_ver, hw->aq.api_min_ver,
- ((hw->nvm.version >> 12) & 0xf),
- ((hw->nvm.version >> 4) & 0xff),
- (hw->nvm.version & 0xf), hw->nvm.eetrack);
-
/* initialise the L3_MAP register */
if (!pf->support_multi_driver) {
ret = i40e_aq_debug_write_register(hw, I40E_GLQF_L3_MAP(40),
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:46.965643032 -0800
+++ 0039-net-i40e-fix-send-admin-queue-command-before-init.patch 2018-11-29 15:01:45.068959000 -0800
@@ -1,15 +1,16 @@
-From 0a1b657838c2c0546ebc6469ed2840c5a9a796f4 Mon Sep 17 00:00:00 2001
+From e0794e91afa05bd2c22e99dedb8fcf7870a69ace Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Fri, 28 Sep 2018 11:20:01 +0800
Subject: [PATCH] net/i40e: fix send admin queue command before init
+[ upstream commit 0a1b657838c2c0546ebc6469ed2840c5a9a796f4 ]
+
We should not issue Admin Queue command before Admin Queue is initialized.
But this happened in i40e_hw_init and i40e_filter_input_set_init.
The patch fixes the issue by proper reordering.
Fixes: b6a0ec418274 ("i40e: use AQ for Rx control register read/write")
-Cc: stable@dpdk.org
Reported-by: Anand Rawat <anand.rawat@intel.com>
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -19,10 +20,10 @@
1 file changed, 17 insertions(+), 17 deletions(-)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
-index de25de650..9225333d0 100644
+index 711c6e7b6..9d99e841e 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
-@@ -1332,9 +1332,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
+@@ -1224,9 +1224,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
/* Make sure all is clean before doing PF reset */
i40e_clear_hw(hw);
@@ -32,7 +33,7 @@
/* Reset here to make sure all is clean for each PF */
ret = i40e_pf_reset(hw);
if (ret) {
-@@ -1349,6 +1346,23 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
+@@ -1241,6 +1238,23 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
return ret;
}
@@ -56,7 +57,7 @@
i40e_config_automask(pf);
i40e_set_default_pctype_table(dev);
-@@ -1364,20 +1378,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused)
+@@ -1257,20 +1271,6 @@ eth_i40e_dev_init(struct rte_eth_dev *dev)
/* Initialize the input set for filters (hash and fd) to default value */
i40e_filter_input_set_init(pf);
@@ -76,7 +77,7 @@
-
/* initialise the L3_MAP register */
if (!pf->support_multi_driver) {
- ret = i40e_aq_debug_write_global_register(hw,
+ ret = i40e_aq_debug_write_register(hw, I40E_GLQF_L3_MAP(40),
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e/base: properly clean resources' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (37 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e: fix send admin queue command before init' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: gracefully clean the " Yongseok Koh
` (87 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Qi Zhang; +Cc: Beilei Xing, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 5879bb92ad80486eb8f51ea9bee0eeb9485ee9ce Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 25 Sep 2018 10:34:31 +0800
Subject: [PATCH] net/i40e/base: properly clean resources
[ upstream commit 02016804ed5e6a46f9162737bcdc78a3780332f5 ]
Allocated resources were not freed in the event of a failure in
i40e_init_lan_hmc function. This patch gracefully handles the fail
case after initializing the lan hmc.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
drivers/net/i40e/base/i40e_lan_hmc.c | 15 ++++++++++-----
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/net/i40e/base/i40e_lan_hmc.c b/drivers/net/i40e/base/i40e_lan_hmc.c
index f03f38133..52c5f8100 100644
--- a/drivers/net/i40e/base/i40e_lan_hmc.c
+++ b/drivers/net/i40e/base/i40e_lan_hmc.c
@@ -143,7 +143,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: Tx context: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
txq_num, obj->max_cnt, ret_code);
- goto init_lan_hmc_out;
+ goto free_hmc_out;
}
/* aggregate values into the full LAN object for later */
@@ -166,7 +166,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: Rx context: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
rxq_num, obj->max_cnt, ret_code);
- goto init_lan_hmc_out;
+ goto free_hmc_out;
}
/* aggregate values into the full LAN object for later */
@@ -189,7 +189,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: FCoE context: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
fcoe_cntx_num, obj->max_cnt, ret_code);
- goto init_lan_hmc_out;
+ goto free_hmc_out;
}
/* aggregate values into the full LAN object for later */
@@ -212,7 +212,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: FCoE filter: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
fcoe_filt_num, obj->max_cnt, ret_code);
- goto init_lan_hmc_out;
+ goto free_hmc_out;
}
/* aggregate values into the full LAN object for later */
@@ -233,7 +233,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
(sizeof(struct i40e_hmc_sd_entry) *
hw->hmc.sd_table.sd_cnt));
if (ret_code)
- goto init_lan_hmc_out;
+ goto free_hmc_out;
hw->hmc.sd_table.sd_entry =
(struct i40e_hmc_sd_entry *)hw->hmc.sd_table.addr.va;
}
@@ -242,6 +242,11 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
init_lan_hmc_out:
return ret_code;
+free_hmc_out:
+ if (hw->hmc.hmc_obj_virt_mem.va)
+ i40e_free_virt_mem(hw, &hw->hmc.hmc_obj_virt_mem);
+
+ return ret_code;
}
/**
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.013980449 -0800
+++ 0040-net-i40e-base-properly-clean-resources.patch 2018-11-29 15:01:45.073965000 -0800
@@ -1,14 +1,14 @@
-From 02016804ed5e6a46f9162737bcdc78a3780332f5 Mon Sep 17 00:00:00 2001
+From 5879bb92ad80486eb8f51ea9bee0eeb9485ee9ce Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 25 Sep 2018 10:34:31 +0800
Subject: [PATCH] net/i40e/base: properly clean resources
+[ upstream commit 02016804ed5e6a46f9162737bcdc78a3780332f5 ]
+
Allocated resources were not freed in the event of a failure in
i40e_init_lan_hmc function. This patch gracefully handles the fail
case after initializing the lan hmc.
-Cc: stable@dpdk.org
-
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
@@ -16,10 +16,10 @@
1 file changed, 10 insertions(+), 5 deletions(-)
diff --git a/drivers/net/i40e/base/i40e_lan_hmc.c b/drivers/net/i40e/base/i40e_lan_hmc.c
-index 510c11826..0afee49b1 100644
+index f03f38133..52c5f8100 100644
--- a/drivers/net/i40e/base/i40e_lan_hmc.c
+++ b/drivers/net/i40e/base/i40e_lan_hmc.c
-@@ -114,7 +114,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
+@@ -143,7 +143,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: Tx context: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
txq_num, obj->max_cnt, ret_code);
@@ -28,7 +28,7 @@
}
/* aggregate values into the full LAN object for later */
-@@ -137,7 +137,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
+@@ -166,7 +166,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: Rx context: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
rxq_num, obj->max_cnt, ret_code);
@@ -37,7 +37,7 @@
}
/* aggregate values into the full LAN object for later */
-@@ -160,7 +160,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
+@@ -189,7 +189,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: FCoE context: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
fcoe_cntx_num, obj->max_cnt, ret_code);
@@ -46,7 +46,7 @@
}
/* aggregate values into the full LAN object for later */
-@@ -183,7 +183,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
+@@ -212,7 +212,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
ret_code = I40E_ERR_INVALID_HMC_OBJ_COUNT;
DEBUGOUT3("i40e_init_lan_hmc: FCoE filter: asks for 0x%x but max allowed is 0x%x, returns error %d\n",
fcoe_filt_num, obj->max_cnt, ret_code);
@@ -55,7 +55,7 @@
}
/* aggregate values into the full LAN object for later */
-@@ -204,7 +204,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
+@@ -233,7 +233,7 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
(sizeof(struct i40e_hmc_sd_entry) *
hw->hmc.sd_table.sd_cnt));
if (ret_code)
@@ -64,7 +64,7 @@
hw->hmc.sd_table.sd_entry =
(struct i40e_hmc_sd_entry *)hw->hmc.sd_table.addr.va;
}
-@@ -213,6 +213,11 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
+@@ -242,6 +242,11 @@ enum i40e_status_code i40e_init_lan_hmc(struct i40e_hw *hw, u32 txq_num,
init_lan_hmc_out:
return ret_code;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e/base: gracefully clean the resources' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (38 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: properly clean resources' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: correct global reset timeout calculation' " Yongseok Koh
` (86 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Qi Zhang; +Cc: Beilei Xing, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 33d65adf97a88cd64767cf8a69882e9337cf7a5b Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 25 Sep 2018 10:34:32 +0800
Subject: [PATCH] net/i40e/base: gracefully clean the resources
[ upstream commit 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 ]
Allocated resources were not freed in the event of failure in
i40e_init_asq function. This patch gracefully handles all failures.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
drivers/net/i40e/base/i40e_adminq.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/i40e/base/i40e_adminq.c b/drivers/net/i40e/base/i40e_adminq.c
index 8cc8c5eca..4cf641b4a 100644
--- a/drivers/net/i40e/base/i40e_adminq.c
+++ b/drivers/net/i40e/base/i40e_adminq.c
@@ -126,6 +126,7 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
**/
void i40e_free_adminq_asq(struct i40e_hw *hw)
{
+ i40e_free_virt_mem(hw, &hw->aq.asq.cmd_buf);
i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf);
}
@@ -433,7 +434,7 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
/* initialize base registers */
ret_code = i40e_config_asq_regs(hw);
if (ret_code != I40E_SUCCESS)
- goto init_adminq_free_rings;
+ goto init_config_regs;
/* success! */
hw->aq.asq.count = hw->aq.num_asq_entries;
@@ -441,6 +442,10 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
init_adminq_free_rings:
i40e_free_adminq_asq(hw);
+ return ret_code;
+
+init_config_regs:
+ i40e_free_asq_bufs(hw);
init_adminq_exit:
return ret_code;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.055079289 -0800
+++ 0041-net-i40e-base-gracefully-clean-the-resources.patch 2018-11-29 15:01:45.075968000 -0800
@@ -1,13 +1,13 @@
-From 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 Mon Sep 17 00:00:00 2001
+From 33d65adf97a88cd64767cf8a69882e9337cf7a5b Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 25 Sep 2018 10:34:32 +0800
Subject: [PATCH] net/i40e/base: gracefully clean the resources
+[ upstream commit 49ea51605be46b48b12c2267b7c2a12d5ed1ed07 ]
+
Allocated resources were not freed in the event of failure in
i40e_init_asq function. This patch gracefully handles all failures.
-Cc: stable@dpdk.org
-
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
@@ -15,10 +15,10 @@
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/drivers/net/i40e/base/i40e_adminq.c b/drivers/net/i40e/base/i40e_adminq.c
-index 5736e0cb3..bb4c5c61e 100644
+index 8cc8c5eca..4cf641b4a 100644
--- a/drivers/net/i40e/base/i40e_adminq.c
+++ b/drivers/net/i40e/base/i40e_adminq.c
-@@ -97,6 +97,7 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
+@@ -126,6 +126,7 @@ enum i40e_status_code i40e_alloc_adminq_arq_ring(struct i40e_hw *hw)
**/
void i40e_free_adminq_asq(struct i40e_hw *hw)
{
@@ -26,7 +26,7 @@
i40e_free_dma_mem(hw, &hw->aq.asq.desc_buf);
}
-@@ -404,7 +405,7 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
+@@ -433,7 +434,7 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
/* initialize base registers */
ret_code = i40e_config_asq_regs(hw);
if (ret_code != I40E_SUCCESS)
@@ -35,7 +35,7 @@
/* success! */
hw->aq.asq.count = hw->aq.num_asq_entries;
-@@ -412,6 +413,10 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
+@@ -441,6 +442,10 @@ enum i40e_status_code i40e_init_asq(struct i40e_hw *hw)
init_adminq_free_rings:
i40e_free_adminq_asq(hw);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e/base: correct global reset timeout calculation' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (39 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: gracefully clean the " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/ixgbe: wait longer for link after fiber MAC setup' " Yongseok Koh
` (85 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Qi Zhang; +Cc: Beilei Xing, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From f4d9663254efed6689a82c7282ac1c0883678fff Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 25 Sep 2018 10:34:33 +0800
Subject: [PATCH] net/i40e/base: correct global reset timeout calculation
[ upstream commit 92451d9039ddddeddf59208a988393a6d44b2b9b ]
The wait time for Global Reset Ready steady state is calculated based on
the GLGEN_RSTCTL.GRSTDEL value. However, current impelementation multiplied
that value by 20 as a workaround for an issue in SOC platforms.
This resulted in the maximum GLGEN_RSTCTL.GRSTDEL timeout of 6.5 seconds
becoming 130 seconds, which is so long that the VMkernel watchdog thinks
the kernel is frozen and triggers a PSOD.
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
drivers/net/i40e/base/i40e_common.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c
index 900d379ca..21102fcb6 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
@@ -1346,7 +1346,7 @@ enum i40e_status_code i40e_pf_reset(struct i40e_hw *hw)
I40E_GLGEN_RSTCTL_GRSTDEL_MASK) >>
I40E_GLGEN_RSTCTL_GRSTDEL_SHIFT;
- grst_del = grst_del * 20;
+ grst_del = min(grst_del * 20, 160U);
for (cnt = 0; cnt < grst_del; cnt++) {
reg = rd32(hw, I40E_GLGEN_RSTAT);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.095312230 -0800
+++ 0042-net-i40e-base-correct-global-reset-timeout-calculati.patch 2018-11-29 15:01:45.083959000 -0800
@@ -1,8 +1,10 @@
-From 92451d9039ddddeddf59208a988393a6d44b2b9b Mon Sep 17 00:00:00 2001
+From f4d9663254efed6689a82c7282ac1c0883678fff Mon Sep 17 00:00:00 2001
From: Qi Zhang <qi.z.zhang@intel.com>
Date: Tue, 25 Sep 2018 10:34:33 +0800
Subject: [PATCH] net/i40e/base: correct global reset timeout calculation
+[ upstream commit 92451d9039ddddeddf59208a988393a6d44b2b9b ]
+
The wait time for Global Reset Ready steady state is calculated based on
the GLGEN_RSTCTL.GRSTDEL value. However, current impelementation multiplied
that value by 20 as a workaround for an issue in SOC platforms.
@@ -10,8 +12,6 @@
becoming 130 seconds, which is so long that the VMkernel watchdog thinks
the kernel is frozen and triggers a PSOD.
-Cc: stable@dpdk.org
-
Signed-off-by: Qi Zhang <qi.z.zhang@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
@@ -19,10 +19,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/i40e/base/i40e_common.c b/drivers/net/i40e/base/i40e_common.c
-index 0affa98ac..0eb369ff6 100644
+index 900d379ca..21102fcb6 100644
--- a/drivers/net/i40e/base/i40e_common.c
+++ b/drivers/net/i40e/base/i40e_common.c
-@@ -1342,7 +1342,7 @@ enum i40e_status_code i40e_pf_reset(struct i40e_hw *hw)
+@@ -1346,7 +1346,7 @@ enum i40e_status_code i40e_pf_reset(struct i40e_hw *hw)
I40E_GLGEN_RSTCTL_GRSTDEL_MASK) >>
I40E_GLGEN_RSTCTL_GRSTDEL_SHIFT;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/ixgbe: wait longer for link after fiber MAC setup' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (40 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: correct global reset timeout calculation' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: do not use non-standard integer types' " Yongseok Koh
` (84 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Matthew Smith; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6c6e6b58d18352d4c1de1660367b083ea018ad1e Mon Sep 17 00:00:00 2001
From: Matthew Smith <mgsmith@netgate.com>
Date: Mon, 16 Jul 2018 11:36:04 -0500
Subject: [PATCH] net/ixgbe: wait longer for link after fiber MAC setup
[ upstream commit 64f1c8539c8ce99214b9eb1fb728a2c6745f3300 ]
After setting up the link on a fiber port, the maximum wait time for
the link to come up is 500 ms in ixgbe_setup_mac_link_multispeed_fiber().
On an x550 SFP+ port, this is often not sufficiently long for the link
to come up. This can result in never being able to retrieve accurate
link status for the port using rte_eth_link_get_nowait().
Increase the maximum wait time in ixgbe_setup_mac_link_multispeed_fiber()
to 1 s.
Bugzilla ID: 69
Fixes: f3430431abaf ("ixgbe/base: add SFP+ dual-speed support")
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Acked-by: Qi Zhang <qi.z.zhang@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 5e6ad9526..4fd954116 100644
--- a/drivers/net/ixgbe/base/ixgbe_common.c
+++ b/drivers/net/ixgbe/base/ixgbe_common.c
@@ -5150,7 +5150,7 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
* Section 73.10.2, we may have to wait up to 500ms if KR is
* attempted. 82599 uses the same timing for 10g SFI.
*/
- for (i = 0; i < 5; i++) {
+ for (i = 0; i < 10; i++) {
/* Wait for the link partner to also set speed */
msec_delay(100);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.140986409 -0800
+++ 0043-net-ixgbe-wait-longer-for-link-after-fiber-MAC-setup.patch 2018-11-29 15:01:45.087959000 -0800
@@ -1,8 +1,10 @@
-From 64f1c8539c8ce99214b9eb1fb728a2c6745f3300 Mon Sep 17 00:00:00 2001
+From 6c6e6b58d18352d4c1de1660367b083ea018ad1e Mon Sep 17 00:00:00 2001
From: Matthew Smith <mgsmith@netgate.com>
Date: Mon, 16 Jul 2018 11:36:04 -0500
Subject: [PATCH] net/ixgbe: wait longer for link after fiber MAC setup
+[ upstream commit 64f1c8539c8ce99214b9eb1fb728a2c6745f3300 ]
+
After setting up the link on a fiber port, the maximum wait time for
the link to come up is 500 ms in ixgbe_setup_mac_link_multispeed_fiber().
On an x550 SFP+ port, this is often not sufficiently long for the link
@@ -14,7 +16,6 @@
Bugzilla ID: 69
Fixes: f3430431abaf ("ixgbe/base: add SFP+ dual-speed support")
-Cc: stable@dpdk.org
Signed-off-by: Matthew Smith <mgsmith@netgate.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -23,10 +24,10 @@
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 b4a0d7003..21f973e5e 100644
+index 5e6ad9526..4fd954116 100644
--- a/drivers/net/ixgbe/base/ixgbe_common.c
+++ b/drivers/net/ixgbe/base/ixgbe_common.c
-@@ -5262,7 +5262,7 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
+@@ -5150,7 +5150,7 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
* Section 73.10.2, we may have to wait up to 500ms if KR is
* attempted. 82599 uses the same timing for 10g SFI.
*/
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/enic: do not use non-standard integer types' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (41 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/ixgbe: wait longer for link after fiber MAC setup' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: set Rx VLAN offload flag for non-stripped packets' " Yongseok Koh
` (83 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Hyong Youb Kim; +Cc: John Daley, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 07bccff33a53ddcb5ed083177150e5cc3377d5b8 Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Tue, 25 Sep 2018 19:54:17 -0700
Subject: [PATCH] net/enic: do not use non-standard integer types
[ upstream commit 329380b3a13fe00f97465a5e27bb9535157bbe33 ]
Bugzilla ID: 39
Fixes: 9913fbb91df0 ("enic/base: common code")
Fixes: 322b355f2183 ("net/enic/base: bring NIC interface functions up to date")
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
---
drivers/net/enic/base/vnic_devcmd.h | 16 ++++++++--------
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/enic/base/vnic_devcmd.h b/drivers/net/enic/base/vnic_devcmd.h
index 05d87b919..4d7a85d66 100644
--- a/drivers/net/enic/base/vnic_devcmd.h
+++ b/drivers/net/enic/base/vnic_devcmd.h
@@ -880,7 +880,7 @@ struct filter_action_v2 {
u32 rq_idx;
u32 flags; /* use FILTER_ACTION_XXX_FLAG defines */
u16 filter_id;
- u_int8_t reserved[32]; /* for future expansion */
+ uint8_t reserved[32]; /* for future expansion */
} __attribute__((packed));
/* Specifies the filter type. */
@@ -946,9 +946,9 @@ enum {
};
struct filter_tlv {
- u_int32_t type;
- u_int32_t length;
- u_int32_t val[0];
+ uint32_t type;
+ uint32_t length;
+ uint32_t val[0];
};
/* Data for CMD_ADD_FILTER is 2 TLV and filter + action structs */
@@ -962,10 +962,10 @@ struct filter_tlv {
* drivers should use this instead of "sizeof (struct filter_v2)" when
* computing length for TLV.
*/
-static inline u_int32_t
+static inline uint32_t
vnic_filter_size(struct filter_v2 *fp)
{
- u_int32_t size;
+ uint32_t size;
switch (fp->type) {
case FILTER_USNIC_ID:
@@ -1004,10 +1004,10 @@ enum {
* drivers should use this instead of "sizeof (struct filter_action_v2)"
* when computing length for TLV.
*/
-static inline u_int32_t
+static inline uint32_t
vnic_action_size(struct filter_action_v2 *fap)
{
- u_int32_t size;
+ uint32_t size;
switch (fap->type) {
case FILTER_ACTION_RQ_STEERING:
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.184182414 -0800
+++ 0044-net-enic-do-not-use-non-standard-integer-types.patch 2018-11-29 15:01:45.090960000 -0800
@@ -1,12 +1,13 @@
-From 329380b3a13fe00f97465a5e27bb9535157bbe33 Mon Sep 17 00:00:00 2001
+From 07bccff33a53ddcb5ed083177150e5cc3377d5b8 Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Tue, 25 Sep 2018 19:54:17 -0700
Subject: [PATCH] net/enic: do not use non-standard integer types
+[ upstream commit 329380b3a13fe00f97465a5e27bb9535157bbe33 ]
+
Bugzilla ID: 39
Fixes: 9913fbb91df0 ("enic/base: common code")
Fixes: 322b355f2183 ("net/enic/base: bring NIC interface functions up to date")
-Cc: stable@dpdk.org
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
@@ -15,10 +16,10 @@
1 file changed, 8 insertions(+), 8 deletions(-)
diff --git a/drivers/net/enic/base/vnic_devcmd.h b/drivers/net/enic/base/vnic_devcmd.h
-index a22d8a76c..fffe307e0 100644
+index 05d87b919..4d7a85d66 100644
--- a/drivers/net/enic/base/vnic_devcmd.h
+++ b/drivers/net/enic/base/vnic_devcmd.h
-@@ -875,7 +875,7 @@ struct filter_action_v2 {
+@@ -880,7 +880,7 @@ struct filter_action_v2 {
u32 rq_idx;
u32 flags; /* use FILTER_ACTION_XXX_FLAG defines */
u16 filter_id;
@@ -27,7 +28,7 @@
} __attribute__((packed));
/* Specifies the filter type. */
-@@ -941,9 +941,9 @@ enum {
+@@ -946,9 +946,9 @@ enum {
};
struct filter_tlv {
@@ -40,7 +41,7 @@
};
/* Data for CMD_ADD_FILTER is 2 TLV and filter + action structs */
-@@ -957,10 +957,10 @@ struct filter_tlv {
+@@ -962,10 +962,10 @@ struct filter_tlv {
* drivers should use this instead of "sizeof (struct filter_v2)" when
* computing length for TLV.
*/
@@ -53,7 +54,7 @@
switch (fp->type) {
case FILTER_USNIC_ID:
-@@ -999,10 +999,10 @@ enum {
+@@ -1004,10 +1004,10 @@ enum {
* drivers should use this instead of "sizeof (struct filter_action_v2)"
* when computing length for TLV.
*/
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/enic: set Rx VLAN offload flag for non-stripped packets' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (42 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: do not use non-standard integer types' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/nfp: fix RSS' " Yongseok Koh
` (82 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Hyong Youb Kim; +Cc: John Daley, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 9a22a39b269525ab585f51d4b358a2075f3fd4f8 Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Tue, 25 Sep 2018 19:54:19 -0700
Subject: [PATCH] net/enic: set Rx VLAN offload flag for non-stripped packets
[ upstream commit fe5383d133f484d7cb2ad385bbf1e43ad7078682 ]
The NIC indicates VLAN TCI to the driver even when VLAN stripping is
disabled. The driver sets mbuf's vlan_tci but not PKT_RX_VLAN. Set
PKT_RX_VLAN to indicate that vlan_tci is valid.
Fixes: c6f455507411 ("net/enic: add ethernet VLAN packet type")
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
---
drivers/net/enic/enic_rxtx.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c
index 831c90a1c..f8dd09c35 100644
--- a/drivers/net/enic/enic_rxtx.c
+++ b/drivers/net/enic/enic_rxtx.c
@@ -246,10 +246,12 @@ enic_cq_rx_to_pkt_flags(struct cq_desc *cqd, struct rte_mbuf *mbuf)
pkt_flags |= PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED;
mbuf->packet_type |= RTE_PTYPE_L2_ETHER;
} else {
- if (vlan_tci != 0)
+ if (vlan_tci != 0) {
+ pkt_flags |= PKT_RX_VLAN;
mbuf->packet_type |= RTE_PTYPE_L2_ETHER_VLAN;
- else
+ } else {
mbuf->packet_type |= RTE_PTYPE_L2_ETHER;
+ }
}
mbuf->vlan_tci = vlan_tci;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.226240479 -0800
+++ 0045-net-enic-set-Rx-VLAN-offload-flag-for-non-stripped-p.patch 2018-11-29 15:01:45.091968000 -0800
@@ -1,14 +1,15 @@
-From fe5383d133f484d7cb2ad385bbf1e43ad7078682 Mon Sep 17 00:00:00 2001
+From 9a22a39b269525ab585f51d4b358a2075f3fd4f8 Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Tue, 25 Sep 2018 19:54:19 -0700
Subject: [PATCH] net/enic: set Rx VLAN offload flag for non-stripped packets
+[ upstream commit fe5383d133f484d7cb2ad385bbf1e43ad7078682 ]
+
The NIC indicates VLAN TCI to the driver even when VLAN stripping is
disabled. The driver sets mbuf's vlan_tci but not PKT_RX_VLAN. Set
PKT_RX_VLAN to indicate that vlan_tci is valid.
Fixes: c6f455507411 ("net/enic: add ethernet VLAN packet type")
-Cc: stable@dpdk.org
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
@@ -17,10 +18,10 @@
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/drivers/net/enic/enic_rxtx.c b/drivers/net/enic/enic_rxtx.c
-index 7129e1217..0eb113d75 100644
+index 831c90a1c..f8dd09c35 100644
--- a/drivers/net/enic/enic_rxtx.c
+++ b/drivers/net/enic/enic_rxtx.c
-@@ -233,10 +233,12 @@ enic_cq_rx_to_pkt_flags(struct cq_desc *cqd, struct rte_mbuf *mbuf)
+@@ -246,10 +246,12 @@ enic_cq_rx_to_pkt_flags(struct cq_desc *cqd, struct rte_mbuf *mbuf)
pkt_flags |= PKT_RX_VLAN | PKT_RX_VLAN_STRIPPED;
mbuf->packet_type |= RTE_PTYPE_L2_ETHER;
} else {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/nfp: fix RSS' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (43 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: set Rx VLAN offload flag for non-stripped packets' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnx2x: fix to disable further interrupts' " Yongseok Koh
` (81 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Alejandro Lucero; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From eb2fd8681b6df35676d123d96d0e06cf20192dfa Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Wed, 26 Sep 2018 14:45:50 +0100
Subject: [PATCH] net/nfp: fix RSS
[ upstream commit f14a51689894dc226f6af4ab39f7439e4384a06b ]
Three problems are fixed in this patch:
- RSS capabilities not advertised properly
- RSS configuration just done for some RSS types
- RSS hash match reported for just some RSS types
Fixes: 934e4c60fbff ("nfp: add RSS")
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
drivers/net/nfp/nfp_net.c | 36 +++++++++++++++++++++++++++++-------
1 file changed, 29 insertions(+), 7 deletions(-)
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
index db6f3f465..cf9d345c0 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
@@ -1236,8 +1236,10 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
ETH_TXQ_FLAGS_NOOFFLOADS,
};
- dev_info->flow_type_rss_offloads = ETH_RSS_NONFRAG_IPV4_TCP |
+ dev_info->flow_type_rss_offloads = ETH_RSS_IPV4 |
+ ETH_RSS_NONFRAG_IPV4_TCP |
ETH_RSS_NONFRAG_IPV4_UDP |
+ ETH_RSS_IPV6 |
ETH_RSS_NONFRAG_IPV6_TCP |
ETH_RSS_NONFRAG_IPV6_UDP;
@@ -1919,6 +1921,18 @@ nfp_net_set_hash(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
case NFP_NET_RSS_IPV6_EX:
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
break;
+ case NFP_NET_RSS_IPV4_TCP:
+ mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
+ break;
+ case NFP_NET_RSS_IPV6_TCP:
+ mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
+ break;
+ case NFP_NET_RSS_IPV4_UDP:
+ mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
+ break;
+ case NFP_NET_RSS_IPV6_UDP:
+ mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
+ break;
default:
mbuf->packet_type |= RTE_PTYPE_INNER_L4_MASK;
}
@@ -2494,14 +2508,22 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,
}
if (rss_hf & ETH_RSS_IPV4)
- cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4 |
- NFP_NET_CFG_RSS_IPV4_TCP |
- NFP_NET_CFG_RSS_IPV4_UDP;
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4;
+
+ if (rss_hf & ETH_RSS_NONFRAG_IPV4_TCP)
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4_TCP;
+
+ if (rss_hf & ETH_RSS_NONFRAG_IPV4_UDP)
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4_UDP;
if (rss_hf & ETH_RSS_IPV6)
- cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6 |
- NFP_NET_CFG_RSS_IPV6_TCP |
- NFP_NET_CFG_RSS_IPV6_UDP;
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6;
+
+ if (rss_hf & ETH_RSS_NONFRAG_IPV6_TCP)
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6_TCP;
+
+ if (rss_hf & ETH_RSS_NONFRAG_IPV6_UDP)
+ cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV6_UDP;
cfg_rss_ctrl |= NFP_NET_CFG_RSS_MASK;
cfg_rss_ctrl |= NFP_NET_CFG_RSS_TOEPLITZ;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.266576787 -0800
+++ 0046-net-nfp-fix-RSS.patch 2018-11-29 15:01:45.094961000 -0800
@@ -1,8 +1,10 @@
-From f14a51689894dc226f6af4ab39f7439e4384a06b Mon Sep 17 00:00:00 2001
+From eb2fd8681b6df35676d123d96d0e06cf20192dfa Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Wed, 26 Sep 2018 14:45:50 +0100
Subject: [PATCH] net/nfp: fix RSS
+[ upstream commit f14a51689894dc226f6af4ab39f7439e4384a06b ]
+
Three problems are fixed in this patch:
- RSS capabilities not advertised properly
@@ -10,7 +12,6 @@
- RSS hash match reported for just some RSS types
Fixes: 934e4c60fbff ("nfp: add RSS")
-Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
---
@@ -18,11 +19,11 @@
1 file changed, 29 insertions(+), 7 deletions(-)
diff --git a/drivers/net/nfp/nfp_net.c b/drivers/net/nfp/nfp_net.c
-index 170b5d611..4d6a797b0 100644
+index db6f3f465..cf9d345c0 100644
--- a/drivers/net/nfp/nfp_net.c
+++ b/drivers/net/nfp/nfp_net.c
-@@ -1198,8 +1198,10 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
- .tx_rs_thresh = DEFAULT_TX_RSBIT_THRESH,
+@@ -1236,8 +1236,10 @@ nfp_net_infos_get(struct rte_eth_dev *dev, struct rte_eth_dev_info *dev_info)
+ ETH_TXQ_FLAGS_NOOFFLOADS,
};
- dev_info->flow_type_rss_offloads = ETH_RSS_NONFRAG_IPV4_TCP |
@@ -33,7 +34,7 @@
ETH_RSS_NONFRAG_IPV6_TCP |
ETH_RSS_NONFRAG_IPV6_UDP;
-@@ -1876,6 +1878,18 @@ nfp_net_set_hash(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
+@@ -1919,6 +1921,18 @@ nfp_net_set_hash(struct nfp_net_rxq *rxq, struct nfp_net_rx_desc *rxd,
case NFP_NET_RSS_IPV6_EX:
mbuf->packet_type |= RTE_PTYPE_INNER_L3_IPV6_EXT;
break;
@@ -52,8 +53,8 @@
default:
mbuf->packet_type |= RTE_PTYPE_INNER_L4_MASK;
}
-@@ -2457,14 +2471,22 @@ nfp_net_rss_hash_write(struct rte_eth_dev *dev,
- rss_hf = rss_conf->rss_hf;
+@@ -2494,14 +2508,22 @@ nfp_net_rss_hash_update(struct rte_eth_dev *dev,
+ }
if (rss_hf & ETH_RSS_IPV4)
- cfg_rss_ctrl |= NFP_NET_CFG_RSS_IPV4 |
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bnx2x: fix to disable further interrupts' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (44 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/nfp: fix RSS' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnx2x: fix call to link handling periodic function' " Yongseok Koh
` (80 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Rasesh Mody; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c49f6996b64ce9ce197ef031056f0e1a2da63720 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 29 Sep 2018 05:42:39 +0000
Subject: [PATCH] net/bnx2x: fix to disable further interrupts
[ upstream commit 29822ca5cce2613e6de5b0972fc340e856f201c5 ]
Fix to disable further fastpath/slowpath interrupts. These will be
enabled again by their respective handlers
Fixes: 540a211084a7 ("bnx2x: driver core")
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
drivers/net/bnx2x/bnx2x.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
index e58684d6c..ddc3dc931 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
@@ -4545,12 +4545,18 @@ int bnx2x_intr_legacy(struct bnx2x_softc *sc, int scan_fp)
fp = &sc->fp[i];
mask = (0x2 << (fp->index + CNIC_SUPPORT(sc)));
if (status & mask) {
+ /* acknowledge and disable further fastpath interrupts */
+ bnx2x_ack_sb(sc, fp->igu_sb_id, USTORM_ID,
+ 0, IGU_INT_DISABLE, 0);
bnx2x_handle_fp_tq(fp, scan_fp);
status &= ~mask;
}
}
if (unlikely(status & 0x1)) {
+ /* acknowledge and disable further slowpath interrupts */
+ bnx2x_ack_sb(sc, sc->igu_dsb_id, USTORM_ID,
+ 0, IGU_INT_DISABLE, 0);
rc = bnx2x_handle_sp_tq(sc);
status &= ~0x1;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.307890372 -0800
+++ 0047-net-bnx2x-fix-to-disable-further-interrupts.patch 2018-11-29 15:01:45.104961000 -0800
@@ -1,13 +1,14 @@
-From 29822ca5cce2613e6de5b0972fc340e856f201c5 Mon Sep 17 00:00:00 2001
+From c49f6996b64ce9ce197ef031056f0e1a2da63720 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 29 Sep 2018 05:42:39 +0000
Subject: [PATCH] net/bnx2x: fix to disable further interrupts
+[ upstream commit 29822ca5cce2613e6de5b0972fc340e856f201c5 ]
+
Fix to disable further fastpath/slowpath interrupts. These will be
enabled again by their respective handlers
Fixes: 540a211084a7 ("bnx2x: driver core")
-Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
@@ -15,10 +16,10 @@
1 file changed, 6 insertions(+)
diff --git a/drivers/net/bnx2x/bnx2x.c b/drivers/net/bnx2x/bnx2x.c
-index 93f8586b5..0225bea9a 100644
+index e58684d6c..ddc3dc931 100644
--- a/drivers/net/bnx2x/bnx2x.c
+++ b/drivers/net/bnx2x/bnx2x.c
-@@ -4553,12 +4553,18 @@ int bnx2x_intr_legacy(struct bnx2x_softc *sc, int scan_fp)
+@@ -4545,12 +4545,18 @@ int bnx2x_intr_legacy(struct bnx2x_softc *sc, int scan_fp)
fp = &sc->fp[i];
mask = (0x2 << (fp->index + CNIC_SUPPORT(sc)));
if (status & mask) {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bnx2x: fix call to link handling periodic function' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (45 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnx2x: fix to disable further interrupts' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: fix flow API memory leak' " Yongseok Koh
` (79 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Rasesh Mody; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 2718f06b6c823596c41592a71fe5a583471c1978 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 29 Sep 2018 05:42:40 +0000
Subject: [PATCH] net/bnx2x: fix call to link handling periodic function
[ upstream commit 0f6ebeee2402441b20e45ea27f0ff2a4fc2c165f ]
If link handling periodic function is allowed to be called in interrupt
context, the periodic function can get called too frequently and exhaust
the retry credits to check link status.
This change makes sure link handling periodic function is not called in
interrupt context.
Fixes: 540a211084a7 ("bnx2x: driver core")
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
drivers/net/bnx2x/bnx2x_ethdev.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
index 650d6ce60..bf176d80e 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
@@ -188,7 +188,9 @@ bnx2x_interrupt_handler(void *param)
PMD_DEBUG_PERIODIC_LOG(INFO, "Interrupt handled");
+ atomic_store_rel_long(&sc->periodic_flags, PERIODIC_STOP);
bnx2x_interrupt_action(dev);
+ atomic_store_rel_long(&sc->periodic_flags, PERIODIC_GO);
rte_intr_enable(&sc->pci_dev->intr_handle);
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.355917433 -0800
+++ 0048-net-bnx2x-fix-call-to-link-handling-periodic-functio.patch 2018-11-29 15:01:45.106962000 -0800
@@ -1,8 +1,10 @@
-From 0f6ebeee2402441b20e45ea27f0ff2a4fc2c165f Mon Sep 17 00:00:00 2001
+From 2718f06b6c823596c41592a71fe5a583471c1978 Mon Sep 17 00:00:00 2001
From: Rasesh Mody <rasesh.mody@cavium.com>
Date: Sat, 29 Sep 2018 05:42:40 +0000
Subject: [PATCH] net/bnx2x: fix call to link handling periodic function
+[ upstream commit 0f6ebeee2402441b20e45ea27f0ff2a4fc2c165f ]
+
If link handling periodic function is allowed to be called in interrupt
context, the periodic function can get called too frequently and exhaust
the retry credits to check link status.
@@ -11,7 +13,6 @@
interrupt context.
Fixes: 540a211084a7 ("bnx2x: driver core")
-Cc: stable@dpdk.org
Signed-off-by: Rasesh Mody <rasesh.mody@cavium.com>
---
@@ -19,12 +20,12 @@
1 file changed, 2 insertions(+)
diff --git a/drivers/net/bnx2x/bnx2x_ethdev.c b/drivers/net/bnx2x/bnx2x_ethdev.c
-index ae2e60a06..0057843b5 100644
+index 650d6ce60..bf176d80e 100644
--- a/drivers/net/bnx2x/bnx2x_ethdev.c
+++ b/drivers/net/bnx2x/bnx2x_ethdev.c
-@@ -131,7 +131,9 @@ bnx2x_interrupt_handler(void *param)
+@@ -188,7 +188,9 @@ bnx2x_interrupt_handler(void *param)
- PMD_DEBUG_PERIODIC_LOG(INFO, sc, "Interrupt handled");
+ PMD_DEBUG_PERIODIC_LOG(INFO, "Interrupt handled");
+ atomic_store_rel_long(&sc->periodic_flags, PERIODIC_STOP);
bnx2x_interrupt_action(dev);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/enic: fix flow API memory leak' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (46 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnx2x: fix call to link handling periodic function' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: fix uninitialized pointer access in Tx' " Yongseok Koh
` (78 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: John Daley; +Cc: Hyong Youb Kim, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From d9188be44d286a3731ae039b210060336a9b5288 Mon Sep 17 00:00:00 2001
From: John Daley <johndale@cisco.com>
Date: Thu, 27 Sep 2018 20:08:36 -0700
Subject: [PATCH] net/enic: fix flow API memory leak
[ upstream commit 85b0ccec381d217ad6fb1698317b863a31fdd8af ]
rte_flow structures were not being freed when destroyed or flushed.
Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled")
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Signed-off-by: John Daley <johndale@cisco.com>
---
drivers/net/enic/enic_flow.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
index a728d0777..407b36e22 100644
--- a/drivers/net/enic/enic_flow.c
+++ b/drivers/net/enic/enic_flow.c
@@ -1503,6 +1503,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
enic_flow_del_filter(enic, flow->enic_filter_id, error);
LIST_REMOVE(flow, next);
rte_spinlock_unlock(&enic->flows_lock);
+ rte_free(flow);
return 0;
}
@@ -1526,6 +1527,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
flow = LIST_FIRST(&enic->flows);
enic_flow_del_filter(enic, flow->enic_filter_id, error);
LIST_REMOVE(flow, next);
+ rte_free(flow);
}
rte_spinlock_unlock(&enic->flows_lock);
return 0;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.396620851 -0800
+++ 0049-net-enic-fix-flow-API-memory-leak.patch 2018-11-29 15:01:45.108962000 -0800
@@ -1,12 +1,13 @@
-From 85b0ccec381d217ad6fb1698317b863a31fdd8af Mon Sep 17 00:00:00 2001
+From d9188be44d286a3731ae039b210060336a9b5288 Mon Sep 17 00:00:00 2001
From: John Daley <johndale@cisco.com>
Date: Thu, 27 Sep 2018 20:08:36 -0700
Subject: [PATCH] net/enic: fix flow API memory leak
+[ upstream commit 85b0ccec381d217ad6fb1698317b863a31fdd8af ]
+
rte_flow structures were not being freed when destroyed or flushed.
Fixes: 6ced137607d0 ("net/enic: flow API for NICs with advanced filters enabled")
-Cc: stable@dpdk.org
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Signed-off-by: John Daley <johndale@cisco.com>
@@ -15,10 +16,10 @@
1 file changed, 2 insertions(+)
diff --git a/drivers/net/enic/enic_flow.c b/drivers/net/enic/enic_flow.c
-index 0cf04aefd..9b612f1d5 100644
+index a728d0777..407b36e22 100644
--- a/drivers/net/enic/enic_flow.c
+++ b/drivers/net/enic/enic_flow.c
-@@ -1532,6 +1532,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
+@@ -1503,6 +1503,7 @@ enic_flow_destroy(struct rte_eth_dev *dev, struct rte_flow *flow,
enic_flow_del_filter(enic, flow->enic_filter_id, error);
LIST_REMOVE(flow, next);
rte_spinlock_unlock(&enic->flows_lock);
@@ -26,7 +27,7 @@
return 0;
}
-@@ -1555,6 +1556,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
+@@ -1526,6 +1527,7 @@ enic_flow_flush(struct rte_eth_dev *dev, struct rte_flow_error *error)
flow = LIST_FIRST(&enic->flows);
enic_flow_del_filter(enic, flow->enic_filter_id, error);
LIST_REMOVE(flow, next);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bnxt: fix uninitialized pointer access in Tx' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (47 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: fix flow API memory leak' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: fix registration of VF async event completion ring' " Yongseok Koh
` (77 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Somnath Kotur; +Cc: Ajit Khaparde, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From fcc2c10e4b0c1e8154198305bbf9417bd6186ac9 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Fri, 28 Sep 2018 18:59:53 -0700
Subject: [PATCH] net/bnxt: fix uninitialized pointer access in Tx
[ upstream commit 63d086a52f0120523f3a33878d3ca0072b2de879 ]
bnxt_start_xmit() was attempting to access an uninitialized ptr - txbd1
which would lead to segmentation fault.
Fix to initialize ptr to NULL and check for the same before access.
Fixes: f10258e39ec2 ("net/bnxt: fix HW Tx checksum offload check")
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_txr.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
index f5ed03f1b..e558413e3 100644
--- a/drivers/net/bnxt/bnxt_txr.c
+++ b/drivers/net/bnxt/bnxt_txr.c
@@ -146,7 +146,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
{
struct bnxt_tx_ring_info *txr = txq->tx_ring;
struct tx_bd_long *txbd;
- struct tx_bd_long_hi *txbd1;
+ struct tx_bd_long_hi *txbd1 = NULL;
uint32_t vlan_tag_flags, cfa_action;
bool long_bd = false;
uint16_t last_prod = 0;
@@ -314,7 +314,8 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
}
txbd->flags_type |= TX_BD_LONG_FLAGS_PACKET_END;
- txbd1->lflags = rte_cpu_to_le_32(txbd1->lflags);
+ if (txbd1)
+ txbd1->lflags = rte_cpu_to_le_32(txbd1->lflags);
txr->tx_prod = RING_NEXT(txr->tx_ring_struct, txr->tx_prod);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.439258881 -0800
+++ 0050-net-bnxt-fix-uninitialized-pointer-access-in-Tx.patch 2018-11-29 15:01:45.109963000 -0800
@@ -1,14 +1,15 @@
-From 63d086a52f0120523f3a33878d3ca0072b2de879 Mon Sep 17 00:00:00 2001
+From fcc2c10e4b0c1e8154198305bbf9417bd6186ac9 Mon Sep 17 00:00:00 2001
From: Somnath Kotur <somnath.kotur@broadcom.com>
Date: Fri, 28 Sep 2018 18:59:53 -0700
Subject: [PATCH] net/bnxt: fix uninitialized pointer access in Tx
+[ upstream commit 63d086a52f0120523f3a33878d3ca0072b2de879 ]
+
bnxt_start_xmit() was attempting to access an uninitialized ptr - txbd1
which would lead to segmentation fault.
Fix to initialize ptr to NULL and check for the same before access.
Fixes: f10258e39ec2 ("net/bnxt: fix HW Tx checksum offload check")
-Cc: stable@dpdk.org
Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
@@ -17,10 +18,10 @@
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_txr.c b/drivers/net/bnxt/bnxt_txr.c
-index 67bb35e06..39be7bdfa 100644
+index f5ed03f1b..e558413e3 100644
--- a/drivers/net/bnxt/bnxt_txr.c
+++ b/drivers/net/bnxt/bnxt_txr.c
-@@ -120,7 +120,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
+@@ -146,7 +146,7 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
{
struct bnxt_tx_ring_info *txr = txq->tx_ring;
struct tx_bd_long *txbd;
@@ -29,7 +30,7 @@
uint32_t vlan_tag_flags, cfa_action;
bool long_bd = false;
uint16_t last_prod = 0;
-@@ -295,7 +295,8 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
+@@ -314,7 +314,8 @@ static uint16_t bnxt_start_xmit(struct rte_mbuf *tx_pkt,
}
txbd->flags_type |= TX_BD_LONG_FLAGS_PACKET_END;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bnxt: fix registration of VF async event completion ring' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (48 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: fix uninitialized pointer access in Tx' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: set MAC filtering as outer for non tunnel frames' " Yongseok Koh
` (76 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Yongping Zhang; +Cc: Ajit Khaparde, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From db8802d754ce932c1aef911d991b49390d34c4cb Mon Sep 17 00:00:00 2001
From: Yongping Zhang <yongping.zhang@broadcom.com>
Date: Fri, 28 Sep 2018 19:00:01 -0700
Subject: [PATCH] net/bnxt: fix registration of VF async event completion ring
[ upstream commit 5f267bae3ee6da6ee158276055255b6ef5287caf ]
While registering vf's event completion ring to FW, use the wrong
macro, FW doesn't set up the event completion ring successfully,
VF can't receive any async event.
Fixes: 4535cad39515 ("net/bnxt: handle VF/PF initialization appropriately")
Signed-off-by: Yongping Zhang <yongping.zhang@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@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 db3222f4e..3cadfc341 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -2744,7 +2744,7 @@ int bnxt_hwrm_vf_func_cfg_def_cp(struct bnxt *bp)
HWRM_PREP(req, FUNC_VF_CFG);
req.enables = rte_cpu_to_le_32(
- HWRM_FUNC_CFG_INPUT_ENABLES_ASYNC_EVENT_CR);
+ HWRM_FUNC_VF_CFG_INPUT_ENABLES_ASYNC_EVENT_CR);
req.async_event_cr = rte_cpu_to_le_16(
bp->def_cp_ring->cp_ring_struct->fw_ring_id);
rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.480975275 -0800
+++ 0051-net-bnxt-fix-registration-of-VF-async-event-completi.patch 2018-11-29 15:01:45.113959000 -0800
@@ -1,14 +1,15 @@
-From 5f267bae3ee6da6ee158276055255b6ef5287caf Mon Sep 17 00:00:00 2001
+From db8802d754ce932c1aef911d991b49390d34c4cb Mon Sep 17 00:00:00 2001
From: Yongping Zhang <yongping.zhang@broadcom.com>
Date: Fri, 28 Sep 2018 19:00:01 -0700
Subject: [PATCH] net/bnxt: fix registration of VF async event completion ring
+[ upstream commit 5f267bae3ee6da6ee158276055255b6ef5287caf ]
+
While registering vf's event completion ring to FW, use the wrong
macro, FW doesn't set up the event completion ring successfully,
VF can't receive any async event.
Fixes: 4535cad39515 ("net/bnxt: handle VF/PF initialization appropriately")
-Cc: stable@dpdk.org
Signed-off-by: Yongping Zhang <yongping.zhang@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
@@ -17,18 +18,18 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
-index 62da254b9..51fe3a4c2 100644
+index db3222f4e..3cadfc341 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
-@@ -3001,7 +3001,7 @@ int bnxt_hwrm_vf_func_cfg_def_cp(struct bnxt *bp)
- HWRM_PREP(req, FUNC_VF_CFG, BNXT_USE_CHIMP_MB);
+@@ -2744,7 +2744,7 @@ int bnxt_hwrm_vf_func_cfg_def_cp(struct bnxt *bp)
+ HWRM_PREP(req, FUNC_VF_CFG);
req.enables = rte_cpu_to_le_32(
- HWRM_FUNC_CFG_INPUT_ENABLES_ASYNC_EVENT_CR);
+ HWRM_FUNC_VF_CFG_INPUT_ENABLES_ASYNC_EVENT_CR);
req.async_event_cr = rte_cpu_to_le_16(
bp->def_cp_ring->cp_ring_struct->fw_ring_id);
- rc = bnxt_hwrm_send_message(bp, &req, sizeof(req), BNXT_USE_CHIMP_MB);
+ rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bnxt: set MAC filtering as outer for non tunnel frames' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (49 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: fix registration of VF async event completion ring' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: set VLAN strip mode before default VNIC cfg' " Yongseok Koh
` (75 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Ajit Khaparde; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6d9f45fe4047f1a1a8ab302b95e1d8c56c23bbf0 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Fri, 28 Sep 2018 19:00:02 -0700
Subject: [PATCH] net/bnxt: set MAC filtering as outer for non tunnel frames
[ upstream commit 50d3c51baecc5906cd72de549cc99b5c283aee96 ]
We need to set HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_OUTERMOST bit in
L2_FILTER_ALLOC for filtering non-tunnel packets based on outermost MAC.
Fixes: f92735db1e4c ("net/bnxt: add L2 filter alloc/init/free")
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_hwrm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index 3cadfc341..815bad97b 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -396,6 +396,8 @@ int bnxt_hwrm_set_l2_filter(struct bnxt *bp,
HWRM_PREP(req, CFA_L2_FILTER_ALLOC);
req.flags = rte_cpu_to_le_32(filter->flags);
+ req.flags |=
+ rte_cpu_to_le_32(HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_OUTERMOST);
enables = filter->enables |
HWRM_CFA_L2_FILTER_ALLOC_INPUT_ENABLES_DST_ID;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.523493155 -0800
+++ 0052-net-bnxt-set-MAC-filtering-as-outer-for-non-tunnel-f.patch 2018-11-29 15:01:45.115959000 -0800
@@ -1,13 +1,14 @@
-From 50d3c51baecc5906cd72de549cc99b5c283aee96 Mon Sep 17 00:00:00 2001
+From 6d9f45fe4047f1a1a8ab302b95e1d8c56c23bbf0 Mon Sep 17 00:00:00 2001
From: Ajit Khaparde <ajit.khaparde@broadcom.com>
Date: Fri, 28 Sep 2018 19:00:02 -0700
Subject: [PATCH] net/bnxt: set MAC filtering as outer for non tunnel frames
+[ upstream commit 50d3c51baecc5906cd72de549cc99b5c283aee96 ]
+
We need to set HWRM_CFA_L2_FILTER_ALLOC_INPUT_FLAGS_OUTERMOST bit in
L2_FILTER_ALLOC for filtering non-tunnel packets based on outermost MAC.
Fixes: f92735db1e4c ("net/bnxt: add L2 filter alloc/init/free")
-Cc: stable@dpdk.org
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
@@ -15,11 +16,11 @@
1 file changed, 2 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
-index 51fe3a4c2..b605659ed 100644
+index 3cadfc341..815bad97b 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
-@@ -383,6 +383,8 @@ int bnxt_hwrm_set_l2_filter(struct bnxt *bp,
- HWRM_PREP(req, CFA_L2_FILTER_ALLOC, BNXT_USE_CHIMP_MB);
+@@ -396,6 +396,8 @@ int bnxt_hwrm_set_l2_filter(struct bnxt *bp,
+ HWRM_PREP(req, CFA_L2_FILTER_ALLOC);
req.flags = rte_cpu_to_le_32(filter->flags);
+ req.flags |=
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bnxt: set VLAN strip mode before default VNIC cfg' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (50 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: set MAC filtering as outer for non tunnel frames' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix csum parse-tunnel command invocation' " Yongseok Koh
` (74 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Bei Sun; +Cc: Ajit Khaparde, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From d58e3cd8c34b45c19f6256363c73879466260169 Mon Sep 17 00:00:00 2001
From: Bei Sun <bei.sun@broadcom.com>
Date: Fri, 28 Sep 2018 19:00:04 -0700
Subject: [PATCH] net/bnxt: set VLAN strip mode before default VNIC cfg
[ upstream commit 3153ec8bd1eedbc6d34671b0e2b51bf97896caa3 ]
Firmware sets pf pair in default VNIC cfg. If the VLAN strip
setting is not available at this time, it will not be
configured correctly in the CFA.
Set the desired VLAN strip mode before default VNIC configuration.
Fixes: 7fe5668d2ea3 ("net/bnxt: support VLAN filter and strip")
Signed-off-by: Bei Sun <bei.sun@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
---
drivers/net/bnxt/bnxt_ethdev.c | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
index 7466a642e..109112142 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
@@ -204,7 +204,9 @@ static int bnxt_init_chip(struct bnxt *bp)
unsigned int i, rss_idx, fw_idx;
struct rte_eth_link new;
struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(bp->eth_dev);
+ struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
struct rte_intr_handle *intr_handle = &pci_dev->intr_handle;
+ uint64_t rx_offloads = dev_conf->rxmode.offloads;
uint32_t intr_vector = 0;
uint32_t queue_id, base = BNXT_MISC_VEC_ID;
uint32_t vec = BNXT_MISC_VEC_ID;
@@ -275,6 +277,16 @@ static int bnxt_init_chip(struct bnxt *bp)
goto err_out;
}
+ /*
+ * Firmware sets pf pair in default vnic cfg. If the VLAN strip
+ * setting is not available at this time, it will not be
+ * configured correctly in the CFA.
+ */
+ if (rx_offloads & DEV_RX_OFFLOAD_VLAN_STRIP)
+ vnic->vlan_strip = true;
+ else
+ vnic->vlan_strip = false;
+
rc = bnxt_hwrm_vnic_cfg(bp, vnic);
if (rc) {
RTE_LOG(ERR, PMD, "HWRM vnic %d cfg failure rc: %x\n",
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.573529556 -0800
+++ 0053-net-bnxt-set-VLAN-strip-mode-before-default-VNIC-cfg.patch 2018-11-29 15:01:45.118959000 -0800
@@ -1,15 +1,16 @@
-From 3153ec8bd1eedbc6d34671b0e2b51bf97896caa3 Mon Sep 17 00:00:00 2001
+From d58e3cd8c34b45c19f6256363c73879466260169 Mon Sep 17 00:00:00 2001
From: Bei Sun <bei.sun@broadcom.com>
Date: Fri, 28 Sep 2018 19:00:04 -0700
Subject: [PATCH] net/bnxt: set VLAN strip mode before default VNIC cfg
+[ upstream commit 3153ec8bd1eedbc6d34671b0e2b51bf97896caa3 ]
+
Firmware sets pf pair in default VNIC cfg. If the VLAN strip
setting is not available at this time, it will not be
configured correctly in the CFA.
Set the desired VLAN strip mode before default VNIC configuration.
Fixes: 7fe5668d2ea3 ("net/bnxt: support VLAN filter and strip")
-Cc: stable@dpdk.org
Signed-off-by: Bei Sun <bei.sun@broadcom.com>
Signed-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
@@ -18,11 +19,11 @@
1 file changed, 12 insertions(+)
diff --git a/drivers/net/bnxt/bnxt_ethdev.c b/drivers/net/bnxt/bnxt_ethdev.c
-index 0bc8c5004..88e026c7d 100644
+index 7466a642e..109112142 100644
--- a/drivers/net/bnxt/bnxt_ethdev.c
+++ b/drivers/net/bnxt/bnxt_ethdev.c
-@@ -202,7 +202,9 @@ static int bnxt_init_chip(struct bnxt *bp)
- struct bnxt_rx_queue *rxq;
+@@ -204,7 +204,9 @@ static int bnxt_init_chip(struct bnxt *bp)
+ unsigned int i, rss_idx, fw_idx;
struct rte_eth_link new;
struct rte_pci_device *pci_dev = RTE_ETH_DEV_TO_PCI(bp->eth_dev);
+ struct rte_eth_conf *dev_conf = &bp->eth_dev->data->dev_conf;
@@ -31,8 +32,8 @@
uint32_t intr_vector = 0;
uint32_t queue_id, base = BNXT_MISC_VEC_ID;
uint32_t vec = BNXT_MISC_VEC_ID;
-@@ -283,6 +285,16 @@ static int bnxt_init_chip(struct bnxt *bp)
- }
+@@ -275,6 +277,16 @@ static int bnxt_init_chip(struct bnxt *bp)
+ goto err_out;
}
+ /*
@@ -47,7 +48,7 @@
+
rc = bnxt_hwrm_vnic_cfg(bp, vnic);
if (rc) {
- PMD_DRV_LOG(ERR, "HWRM vnic %d cfg failure rc: %x\n",
+ RTE_LOG(ERR, PMD, "HWRM vnic %d cfg failure rc: %x\n",
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix csum parse-tunnel command invocation' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (51 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: set VLAN strip mode before default VNIC cfg' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: receive prepared packets even in Rx exception case' " Yongseok Koh
` (73 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Bernard Iremonger, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From fca21d69713378d55f1e9826b82fbef12eab3bab Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 2 Oct 2018 19:05:47 +0530
Subject: [PATCH] app/testpmd: fix csum parse-tunnel command invocation
[ upstream commit 5b48cd159536b70a943ae8246c2f717183818b19 ]
Based on the documentation and help print, the sub command
for csum suppose to be "parse-tunnel" instead of "parse_tunnel".
Fixes: 64fc36064dc3 ("app/testpmd: add csum parse-tunnel command")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
app/test-pmd/cmdline.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 77c11b841..209e64e22 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -3796,7 +3796,7 @@ cmdline_parse_token_string_t cmd_csum_tunnel_csum =
csum, "csum");
cmdline_parse_token_string_t cmd_csum_tunnel_parse =
TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
- parse, "parse_tunnel");
+ parse, "parse-tunnel");
cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
onoff, "on#off");
@@ -3807,7 +3807,7 @@ cmdline_parse_token_num_t cmd_csum_tunnel_portid =
cmdline_parse_inst_t cmd_csum_tunnel = {
.f = cmd_csum_tunnel_parsed,
.data = NULL,
- .help_str = "csum parse_tunnel on|off <port_id>: "
+ .help_str = "csum parse-tunnel on|off <port_id>: "
"Enable/Disable parsing of tunnels for csum engine",
.tokens = {
(void *)&cmd_csum_tunnel_csum,
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.616645928 -0800
+++ 0054-app-testpmd-fix-csum-parse-tunnel-command-invocation.patch 2018-11-29 15:01:45.131958000 -0800
@@ -1,13 +1,14 @@
-From 5b48cd159536b70a943ae8246c2f717183818b19 Mon Sep 17 00:00:00 2001
+From fca21d69713378d55f1e9826b82fbef12eab3bab Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 2 Oct 2018 19:05:47 +0530
Subject: [PATCH] app/testpmd: fix csum parse-tunnel command invocation
+[ upstream commit 5b48cd159536b70a943ae8246c2f717183818b19 ]
+
Based on the documentation and help print, the sub command
for csum suppose to be "parse-tunnel" instead of "parse_tunnel".
Fixes: 64fc36064dc3 ("app/testpmd: add csum parse-tunnel command")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
@@ -16,10 +17,10 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
-index 0c5399dc4..3376a665c 100644
+index 77c11b841..209e64e22 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
-@@ -4367,7 +4367,7 @@ cmdline_parse_token_string_t cmd_csum_tunnel_csum =
+@@ -3796,7 +3796,7 @@ cmdline_parse_token_string_t cmd_csum_tunnel_csum =
csum, "csum");
cmdline_parse_token_string_t cmd_csum_tunnel_parse =
TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
@@ -28,7 +29,7 @@
cmdline_parse_token_string_t cmd_csum_tunnel_onoff =
TOKEN_STRING_INITIALIZER(struct cmd_csum_tunnel_result,
onoff, "on#off");
-@@ -4378,7 +4378,7 @@ cmdline_parse_token_num_t cmd_csum_tunnel_portid =
+@@ -3807,7 +3807,7 @@ cmdline_parse_token_num_t cmd_csum_tunnel_portid =
cmdline_parse_inst_t cmd_csum_tunnel = {
.f = cmd_csum_tunnel_parsed,
.data = NULL,
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/sfc: receive prepared packets even in Rx exception case' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (52 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix csum parse-tunnel command invocation' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'mbuf: fix Tx offload mask' " Yongseok Koh
` (72 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Andrew Rybchenko; +Cc: Ivan Malov, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6cbe58f994f9e35d86d5e37427bc2cdcf14ab266 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 3 Oct 2018 10:03:48 +0100
Subject: [PATCH] net/sfc: receive prepared packets even in Rx exception case
[ upstream commit f609ee3f2a32806689e0f1d9d841c97e0409bf55 ]
Make sure that number of prepared packets, completed and added
Rx ring pointers are reset to zeros on queue purge at stop.
Fixes: 638bddc99faa ("net/sfc: implement EF10 native Rx datapath")
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
---
drivers/net/sfc/sfc_ef10_rx.c | 16 +++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
index bd2cbd096..7069c534e 100644
--- a/drivers/net/sfc/sfc_ef10_rx.c
+++ b/drivers/net/sfc/sfc_ef10_rx.c
@@ -489,11 +489,11 @@ sfc_ef10_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
uint16_t n_rx_pkts;
efx_qword_t rx_ev;
+ n_rx_pkts = sfc_ef10_rx_prepared(rxq, rx_pkts, nb_pkts);
+
if (unlikely(rxq->flags &
(SFC_EF10_RXQ_NOT_RUNNING | SFC_EF10_RXQ_EXCEPTION)))
- return 0;
-
- n_rx_pkts = sfc_ef10_rx_prepared(rxq, rx_pkts, nb_pkts);
+ goto done;
evq_old_read_ptr = rxq->evq_read_ptr;
while (n_rx_pkts != nb_pkts && sfc_ef10_rx_get_event(rxq, &rx_ev)) {
@@ -513,6 +513,7 @@ sfc_ef10_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
/* It is not a problem if we refill in the case of exception */
sfc_ef10_rx_qrefill(rxq);
+done:
return n_rx_pkts;
}
@@ -646,8 +647,9 @@ sfc_ef10_rx_qstart(struct sfc_dp_rxq *dp_rxq, unsigned int evq_read_ptr)
{
struct sfc_ef10_rxq *rxq = sfc_ef10_rxq_by_dp_rxq(dp_rxq);
- rxq->prepared = 0;
- rxq->completed = rxq->added = 0;
+ SFC_ASSERT(rxq->prepared == 0);
+ SFC_ASSERT(rxq->completed == 0);
+ SFC_ASSERT(rxq->added == 0);
sfc_ef10_rx_qrefill(rxq);
@@ -694,12 +696,16 @@ sfc_ef10_rx_qpurge(struct sfc_dp_rxq *dp_rxq)
unsigned int i;
struct sfc_ef10_rx_sw_desc *rxd;
+ rxq->prepared = 0;
+
for (i = rxq->completed; i != rxq->added; ++i) {
rxd = &rxq->sw_ring[i & rxq->ptr_mask];
rte_mempool_put(rxq->refill_mb_pool, rxd->mbuf);
rxd->mbuf = NULL;
}
+ rxq->completed = rxq->added = 0;
+
rxq->flags &= ~SFC_EF10_RXQ_STARTED;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.669160581 -0800
+++ 0055-net-sfc-receive-prepared-packets-even-in-Rx-exceptio.patch 2018-11-29 15:01:45.132965000 -0800
@@ -1,13 +1,14 @@
-From f609ee3f2a32806689e0f1d9d841c97e0409bf55 Mon Sep 17 00:00:00 2001
+From 6cbe58f994f9e35d86d5e37427bc2cdcf14ab266 Mon Sep 17 00:00:00 2001
From: Andrew Rybchenko <arybchenko@solarflare.com>
Date: Wed, 3 Oct 2018 10:03:48 +0100
Subject: [PATCH] net/sfc: receive prepared packets even in Rx exception case
+[ upstream commit f609ee3f2a32806689e0f1d9d841c97e0409bf55 ]
+
Make sure that number of prepared packets, completed and added
Rx ring pointers are reset to zeros on queue purge at stop.
Fixes: 638bddc99faa ("net/sfc: implement EF10 native Rx datapath")
-Cc: stable@dpdk.org
Signed-off-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Ivan Malov <ivan.malov@oktetlabs.ru>
@@ -16,10 +17,10 @@
1 file changed, 11 insertions(+), 5 deletions(-)
diff --git a/drivers/net/sfc/sfc_ef10_rx.c b/drivers/net/sfc/sfc_ef10_rx.c
-index 6a5052b93..5c0152d01 100644
+index bd2cbd096..7069c534e 100644
--- a/drivers/net/sfc/sfc_ef10_rx.c
+++ b/drivers/net/sfc/sfc_ef10_rx.c
-@@ -359,11 +359,11 @@ sfc_ef10_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
+@@ -489,11 +489,11 @@ sfc_ef10_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
uint16_t n_rx_pkts;
efx_qword_t rx_ev;
@@ -34,7 +35,7 @@
evq_old_read_ptr = rxq->evq_read_ptr;
while (n_rx_pkts != nb_pkts && sfc_ef10_rx_get_event(rxq, &rx_ev)) {
-@@ -383,6 +383,7 @@ sfc_ef10_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
+@@ -513,6 +513,7 @@ sfc_ef10_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)
/* It is not a problem if we refill in the case of exception */
sfc_ef10_rx_qrefill(rxq);
@@ -42,7 +43,7 @@
return n_rx_pkts;
}
-@@ -594,8 +595,9 @@ sfc_ef10_rx_qstart(struct sfc_dp_rxq *dp_rxq, unsigned int evq_read_ptr)
+@@ -646,8 +647,9 @@ sfc_ef10_rx_qstart(struct sfc_dp_rxq *dp_rxq, unsigned int evq_read_ptr)
{
struct sfc_ef10_rxq *rxq = sfc_ef10_rxq_by_dp_rxq(dp_rxq);
@@ -54,7 +55,7 @@
sfc_ef10_rx_qrefill(rxq);
-@@ -642,12 +644,16 @@ sfc_ef10_rx_qpurge(struct sfc_dp_rxq *dp_rxq)
+@@ -694,12 +696,16 @@ sfc_ef10_rx_qpurge(struct sfc_dp_rxq *dp_rxq)
unsigned int i;
struct sfc_ef10_rx_sw_desc *rxd;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'mbuf: fix Tx offload mask' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (53 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: receive prepared packets even in Rx exception case' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: clarify L3 Tx checksum prerequisite' " Yongseok Koh
` (71 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, Jiayu Hu, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 4723642f5ff2bcbf8b46e70e4fffbc72518a855d Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 2 Oct 2018 16:21:42 +0530
Subject: [PATCH] mbuf: fix Tx offload mask
[ backported from upstream commit 1037ed842c378e15db85f1b2451c21d2b46a8698 ]
Fixes missing PKT_TX_UDP_SEG, PKT_TX_OUTER_IPV6,PKT_TX_OUTER_IPV4,
PKT_TX_IPV6 and PKT_TX_IPV4 values in PKT_TX_OFFLOAD_MASK.
Also sort them in bit wise order to recognize missing items later.
Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
Fixes: 1c3b7c33e977 ("mbuf: add Tx offloading flags for tunnels")
Fixes: 711ba9e23e68 ("mbuf: remove aliasing of Tx offloading flags with Rx ones")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
---
lib/librte_mbuf/rte_mbuf.h | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
index 807a8d419..e5697614f 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
@@ -322,13 +322,17 @@ extern "C" {
* which can be set for packet.
*/
#define PKT_TX_OFFLOAD_MASK ( \
+ PKT_TX_OUTER_IPV6 | \
+ PKT_TX_OUTER_IPV4 | \
+ PKT_TX_OUTER_IP_CKSUM | \
+ PKT_TX_VLAN_PKT | \
+ PKT_TX_IPV6 | \
+ PKT_TX_IPV4 | \
PKT_TX_IP_CKSUM | \
PKT_TX_L4_MASK | \
- PKT_TX_OUTER_IP_CKSUM | \
- PKT_TX_TCP_SEG | \
PKT_TX_IEEE1588_TMST | \
+ PKT_TX_TCP_SEG | \
PKT_TX_QINQ_PKT | \
- PKT_TX_VLAN_PKT | \
PKT_TX_TUNNEL_MASK | \
PKT_TX_MACSEC | \
PKT_TX_SEC_OFFLOAD)
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.710006282 -0800
+++ 0056-mbuf-fix-Tx-offload-mask.patch 2018-11-29 15:01:45.135959000 -0800
@@ -1,8 +1,10 @@
-From 1037ed842c378e15db85f1b2451c21d2b46a8698 Mon Sep 17 00:00:00 2001
+From 4723642f5ff2bcbf8b46e70e4fffbc72518a855d Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 2 Oct 2018 16:21:42 +0530
Subject: [PATCH] mbuf: fix Tx offload mask
+[ backported from upstream commit 1037ed842c378e15db85f1b2451c21d2b46a8698 ]
+
Fixes missing PKT_TX_UDP_SEG, PKT_TX_OUTER_IPV6,PKT_TX_OUTER_IPV4,
PKT_TX_IPV6 and PKT_TX_IPV4 values in PKT_TX_OFFLOAD_MASK.
@@ -11,20 +13,19 @@
Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
Fixes: 1c3b7c33e977 ("mbuf: add Tx offloading flags for tunnels")
Fixes: 711ba9e23e68 ("mbuf: remove aliasing of Tx offloading flags with Rx ones")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Jiayu Hu <jiayu.hu@intel.com>
---
- lib/librte_mbuf/rte_mbuf.h | 13 +++++++++----
- 1 file changed, 9 insertions(+), 4 deletions(-)
+ lib/librte_mbuf/rte_mbuf.h | 10 +++++++---
+ 1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/lib/librte_mbuf/rte_mbuf.h b/lib/librte_mbuf/rte_mbuf.h
-index a09377a60..eb11779e7 100644
+index 807a8d419..e5697614f 100644
--- a/lib/librte_mbuf/rte_mbuf.h
+++ b/lib/librte_mbuf/rte_mbuf.h
-@@ -334,16 +334,21 @@ extern "C" {
+@@ -322,13 +322,17 @@ extern "C" {
* which can be set for packet.
*/
#define PKT_TX_OFFLOAD_MASK ( \
@@ -44,12 +45,7 @@
- PKT_TX_VLAN_PKT | \
PKT_TX_TUNNEL_MASK | \
PKT_TX_MACSEC | \
-- PKT_TX_SEC_OFFLOAD)
-+ PKT_TX_SEC_OFFLOAD | \
-+ PKT_TX_UDP_SEG)
-
- /**
- * Mbuf having an external buffer attached. shinfo in mbuf must be filled.
+ PKT_TX_SEC_OFFLOAD)
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: clarify L3 Tx checksum prerequisite' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (54 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'mbuf: fix Tx offload mask' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: clarify L4 " Yongseok Koh
` (70 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8c7d7a8b9824a2a9c534322b853ee7f621495b10 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 5 Oct 2018 10:16:04 +0530
Subject: [PATCH] doc: clarify L3 Tx checksum prerequisite
[ upstream commit 9713e32914a23780aac00fd5b6435aa72e87b377 ]
Based on PKT_TX_IP_CKSUM definition the user needs
to fill l2_len and l3_len mbuf fields before issuing
HW Tx checksum request.
Fixes: dad1ec72a377 ("doc: document NIC features")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
doc/guides/nics/features.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index d5bf38a21..9d63b91c1 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -577,6 +577,7 @@ Supports L3 checksum offload.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.
+* **[uses] mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.
* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_IP_CKSUM_UNKNOWN`` |
``PKT_RX_IP_CKSUM_BAD`` | ``PKT_RX_IP_CKSUM_GOOD`` |
``PKT_RX_IP_CKSUM_NONE``.
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.752715513 -0800
+++ 0057-doc-clarify-L3-Tx-checksum-prerequisite.patch 2018-11-29 15:01:45.136963000 -0800
@@ -1,14 +1,15 @@
-From 9713e32914a23780aac00fd5b6435aa72e87b377 Mon Sep 17 00:00:00 2001
+From 8c7d7a8b9824a2a9c534322b853ee7f621495b10 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 5 Oct 2018 10:16:04 +0530
Subject: [PATCH] doc: clarify L3 Tx checksum prerequisite
+[ upstream commit 9713e32914a23780aac00fd5b6435aa72e87b377 ]
+
Based on PKT_TX_IP_CKSUM definition the user needs
to fill l2_len and l3_len mbuf fields before issuing
HW Tx checksum request.
Fixes: dad1ec72a377 ("doc: document NIC features")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -17,10 +18,10 @@
1 file changed, 1 insertion(+)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
-index 4a946251a..a21146676 100644
+index d5bf38a21..9d63b91c1 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
-@@ -563,6 +563,7 @@ Supports L3 checksum offload.
+@@ -577,6 +577,7 @@ Supports L3 checksum offload.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_IPV4_CKSUM``.
* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IP_CKSUM``,
``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``.
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: clarify L4 Tx checksum prerequisite' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (55 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: clarify L3 Tx checksum prerequisite' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: use prefix for function' " Yongseok Koh
` (69 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8328cc06ada7337e23a208c97fceab951d8936ec Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 5 Oct 2018 10:16:05 +0530
Subject: [PATCH] doc: clarify L4 Tx checksum prerequisite
[ upstream commit 425f09300ea20ee95730b0c9cb1f95d0dc588541 ]
Based on PKT_TX_[TCP|UDP|SCTP]_CKSUM definition the user needs
to fill l2_len and l3_len mbuf fields before issuing HW Tx
checksum request.
Fixes: dad1ec72a377 ("doc: document NIC features")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
doc/guides/nics/features.rst | 1 +
1 file changed, 1 insertion(+)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index 9d63b91c1..69c579404 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -598,6 +598,7 @@ Supports L4 checksum offload.
* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``,
``mbuf.ol_flags:PKT_TX_L4_NO_CKSUM`` | ``PKT_TX_TCP_CKSUM`` |
``PKT_TX_SCTP_CKSUM`` | ``PKT_TX_UDP_CKSUM``.
+* **[uses] mbuf**: ``mbuf.l2_len``, ``mbuf.l3_len``.
* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_L4_CKSUM_UNKNOWN`` |
``PKT_RX_L4_CKSUM_BAD`` | ``PKT_RX_L4_CKSUM_GOOD`` |
``PKT_RX_L4_CKSUM_NONE``.
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.794112497 -0800
+++ 0058-doc-clarify-L4-Tx-checksum-prerequisite.patch 2018-11-29 15:01:45.138959000 -0800
@@ -1,14 +1,15 @@
-From 425f09300ea20ee95730b0c9cb1f95d0dc588541 Mon Sep 17 00:00:00 2001
+From 8328cc06ada7337e23a208c97fceab951d8936ec Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 5 Oct 2018 10:16:05 +0530
Subject: [PATCH] doc: clarify L4 Tx checksum prerequisite
+[ upstream commit 425f09300ea20ee95730b0c9cb1f95d0dc588541 ]
+
Based on PKT_TX_[TCP|UDP|SCTP]_CKSUM definition the user needs
to fill l2_len and l3_len mbuf fields before issuing HW Tx
checksum request.
Fixes: dad1ec72a377 ("doc: document NIC features")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Andrew Rybchenko <arybchenko@solarflare.com>
@@ -17,10 +18,10 @@
1 file changed, 1 insertion(+)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
-index a21146676..6c37e79fd 100644
+index 9d63b91c1..69c579404 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
-@@ -583,6 +583,7 @@ Supports L4 checksum offload.
+@@ -598,6 +598,7 @@ Supports L4 checksum offload.
* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_IPV4`` | ``PKT_TX_IPV6``,
``mbuf.ol_flags:PKT_TX_L4_NO_CKSUM`` | ``PKT_TX_TCP_CKSUM`` |
``PKT_TX_SCTP_CKSUM`` | ``PKT_TX_UDP_CKSUM``.
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/failsafe: use prefix for function' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (56 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: clarify L4 " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-12-20 0:17 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: add VFIO in ENA guide' " Yongseok Koh
` (68 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Gaetan Rivet, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 1e254728404576db680bf5e3e1ec99204aa0815f Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 8 Oct 2018 15:31:40 -0700
Subject: [PATCH] net/failsafe: use prefix for function
[ upstream commit 86123c2dfb94416b4fb17e07bf31d32172308623 ]
All other visible functions in failsafe driver have 'failsafe_'
prefix.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
drivers/net/failsafe/failsafe_ether.c | 2 +-
drivers/net/failsafe/failsafe_private.h | 4 ++--
drivers/net/failsafe/failsafe_rxtx.c | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/failsafe/failsafe_ether.c b/drivers/net/failsafe/failsafe_ether.c
index 5b5ac42ba..06aeea7ab 100644
--- a/drivers/net/failsafe/failsafe_ether.c
+++ b/drivers/net/failsafe/failsafe_ether.c
@@ -488,7 +488,7 @@ failsafe_eth_rmv_event_callback(uint16_t port_id __rte_unused,
/* Switch as soon as possible tx_dev. */
fs_switch_dev(sdev->fs_dev, sdev);
/* Use safe bursts in any case. */
- set_burst_fn(sdev->fs_dev, 1);
+ failsafe_set_burst_fn(sdev->fs_dev, 1);
/*
* Async removal, the sub-PMD will try to unregister
* the callback at the source of the current thread context.
diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h
index 40eabb784..c71baea38 100644
--- a/drivers/net/failsafe/failsafe_private.h
+++ b/drivers/net/failsafe/failsafe_private.h
@@ -164,7 +164,7 @@ int failsafe_hotplug_alarm_cancel(struct rte_eth_dev *dev);
/* RX / TX */
-void set_burst_fn(struct rte_eth_dev *dev, int force_safe);
+void failsafe_set_burst_fn(struct rte_eth_dev *dev, int force_safe);
uint16_t failsafe_rx_burst(void *rxq,
struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
@@ -376,7 +376,7 @@ fs_switch_dev(struct rte_eth_dev *dev,
} else {
return;
}
- set_burst_fn(dev, 0);
+ failsafe_set_burst_fn(dev, 0);
rte_wmb();
}
diff --git a/drivers/net/failsafe/failsafe_rxtx.c b/drivers/net/failsafe/failsafe_rxtx.c
index 178294c2e..4744702cd 100644
--- a/drivers/net/failsafe/failsafe_rxtx.c
+++ b/drivers/net/failsafe/failsafe_rxtx.c
@@ -57,7 +57,7 @@ fs_tx_unsafe(struct sub_device *sdev)
}
void
-set_burst_fn(struct rte_eth_dev *dev, int force_safe)
+failsafe_set_burst_fn(struct rte_eth_dev *dev, int force_safe)
{
struct sub_device *sdev;
uint8_t i;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.834705064 -0800
+++ 0059-net-failsafe-use-prefix-for-function.patch 2018-11-29 15:01:45.141959000 -0800
@@ -1,8 +1,10 @@
-From 86123c2dfb94416b4fb17e07bf31d32172308623 Mon Sep 17 00:00:00 2001
+From 1e254728404576db680bf5e3e1ec99204aa0815f Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Mon, 8 Oct 2018 15:31:40 -0700
Subject: [PATCH] net/failsafe: use prefix for function
+[ upstream commit 86123c2dfb94416b4fb17e07bf31d32172308623 ]
+
All other visible functions in failsafe driver have 'failsafe_'
prefix.
@@ -15,10 +17,10 @@
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/net/failsafe/failsafe_ether.c b/drivers/net/failsafe/failsafe_ether.c
-index 884b86882..178316521 100644
+index 5b5ac42ba..06aeea7ab 100644
--- a/drivers/net/failsafe/failsafe_ether.c
+++ b/drivers/net/failsafe/failsafe_ether.c
-@@ -570,7 +570,7 @@ failsafe_eth_rmv_event_callback(uint16_t port_id __rte_unused,
+@@ -488,7 +488,7 @@ failsafe_eth_rmv_event_callback(uint16_t port_id __rte_unused,
/* Switch as soon as possible tx_dev. */
fs_switch_dev(sdev->fs_dev, sdev);
/* Use safe bursts in any case. */
@@ -28,10 +30,10 @@
* Async removal, the sub-PMD will try to unregister
* the callback at the source of the current thread context.
diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h
-index b9d4608ab..442e6199f 100644
+index 40eabb784..c71baea38 100644
--- a/drivers/net/failsafe/failsafe_private.h
+++ b/drivers/net/failsafe/failsafe_private.h
-@@ -193,7 +193,7 @@ int failsafe_hotplug_alarm_cancel(struct rte_eth_dev *dev);
+@@ -164,7 +164,7 @@ int failsafe_hotplug_alarm_cancel(struct rte_eth_dev *dev);
/* RX / TX */
@@ -40,7 +42,7 @@
uint16_t failsafe_rx_burst(void *rxq,
struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
-@@ -473,7 +473,7 @@ fs_switch_dev(struct rte_eth_dev *dev,
+@@ -376,7 +376,7 @@ fs_switch_dev(struct rte_eth_dev *dev,
} else {
return;
}
@@ -50,10 +52,10 @@
}
diff --git a/drivers/net/failsafe/failsafe_rxtx.c b/drivers/net/failsafe/failsafe_rxtx.c
-index 7bd0f963e..034f47b87 100644
+index 178294c2e..4744702cd 100644
--- a/drivers/net/failsafe/failsafe_rxtx.c
+++ b/drivers/net/failsafe/failsafe_rxtx.c
-@@ -29,7 +29,7 @@ fs_tx_unsafe(struct sub_device *sdev)
+@@ -57,7 +57,7 @@ fs_tx_unsafe(struct sub_device *sdev)
}
void
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: add VFIO in ENA guide' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (57 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: use prefix for function' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix printf format in event callback' " Yongseok Koh
` (67 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Rafal Kozik; +Cc: Zorik Machulsky, Michal Krawczyk, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 0c520d2924c494d589ee2d06b36634f7ab0eb196 Mon Sep 17 00:00:00 2001
From: Rafal Kozik <rk@semihalf.com>
Date: Wed, 10 Oct 2018 14:08:15 +0200
Subject: [PATCH] doc: add VFIO in ENA guide
[ upstream commit 4d0155db76da10b4e549b5b8814962748bcf2192 ]
Add instruction how to bind ENA to VFIO-PCI driver.
Fixes: cf8a122c296a ("ena: introduce documentation")
Signed-off-by: Zorik Machulsky <zorik@amazon.com>
Signed-off-by: Rafal Kozik <rk@semihalf.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
---
doc/guides/nics/ena.rst | 15 ++++++++++++---
doc/guides/nics/features/ena.ini | 1 +
2 files changed, 13 insertions(+), 3 deletions(-)
diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst
index d19912e9b..695960d4c 100644
--- a/doc/guides/nics/ena.rst
+++ b/doc/guides/nics/ena.rst
@@ -187,11 +187,20 @@ Prerequisites
-------------
#. Prepare the system as recommended by DPDK suite. This includes environment
- variables, hugepages configuration, tool-chains and configuration
+ variables, hugepages configuration, tool-chains and configuration.
-#. Insert igb_uio kernel module using the command 'modprobe igb_uio'
+#. ENA PMD can operate with ``vfio-pci`` or ``igb_uio`` driver.
-#. Bind the intended ENA device to igb_uio module
+#. Insert ``vfio-pci`` or ``igb_uio`` kernel module using the command
+ ``modprobe vfio-pci`` or ``modprobe igb_uio`` respectively.
+
+#. For ``vfio-pci`` users only:
+ Please make sure that ``IOMMU`` is enabled in your system,
+ or use ``vfio`` driver in ``noiommu`` mode::
+
+ echo 1 > /sys/module/vfio/parameters/enable_unsafe_noiommu_mode
+
+#. Bind the intended ENA device to ``vfio-pci`` or ``igb_uio`` module.
At this point the system should be ready to run DPDK applications. Once the
diff --git a/doc/guides/nics/features/ena.ini b/doc/guides/nics/features/ena.ini
index 691c1e3d3..aa6f05a71 100644
--- a/doc/guides/nics/features/ena.ini
+++ b/doc/guides/nics/features/ena.ini
@@ -23,5 +23,6 @@ Inner L4 checksum = Y
Basic stats = Y
Extended stats = Y
Linux UIO = Y
+Linux VFIO = Y
x86-32 = Y
x86-64 = Y
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.877018828 -0800
+++ 0060-doc-add-VFIO-in-ENA-guide.patch 2018-11-29 15:01:45.143959000 -0800
@@ -1,12 +1,13 @@
-From 4d0155db76da10b4e549b5b8814962748bcf2192 Mon Sep 17 00:00:00 2001
+From 0c520d2924c494d589ee2d06b36634f7ab0eb196 Mon Sep 17 00:00:00 2001
From: Rafal Kozik <rk@semihalf.com>
Date: Wed, 10 Oct 2018 14:08:15 +0200
Subject: [PATCH] doc: add VFIO in ENA guide
+[ upstream commit 4d0155db76da10b4e549b5b8814962748bcf2192 ]
+
Add instruction how to bind ENA to VFIO-PCI driver.
Fixes: cf8a122c296a ("ena: introduce documentation")
-Cc: stable@dpdk.org
Signed-off-by: Zorik Machulsky <zorik@amazon.com>
Signed-off-by: Rafal Kozik <rk@semihalf.com>
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix printf format in event callback' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (58 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: add VFIO in ENA guide' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix duplicate exit' " Yongseok Koh
` (66 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Herakliusz Lipiec; +Cc: Bernard Iremonger, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 45b3ce42564424cc07c26379f53b42e52f74dfb8 Mon Sep 17 00:00:00 2001
From: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Date: Tue, 25 Sep 2018 12:23:00 +0100
Subject: [PATCH] app/testpmd: fix printf format in event callback
[ upstream commit f431e0104df89aa9f53b20448530baec18f3d39a ]
change PRIu8 -> PRIu16 for port_id in eth_event_callback
(portid_t is uint16_t)
Fixes: 76ad4a2d82d4 ("app/testpmd: add generic event handler")
Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
app/test-pmd/testpmd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 1b9f7cd27..7c4c5820d 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -2066,11 +2066,11 @@ eth_event_callback(portid_t port_id, enum rte_eth_event_type type, void *param,
RTE_SET_USED(ret_param);
if (type >= RTE_ETH_EVENT_MAX) {
- fprintf(stderr, "\nPort %" PRIu8 ": %s called upon invalid event %d\n",
+ fprintf(stderr, "\nPort %" PRIu16 ": %s called upon invalid event %d\n",
port_id, __func__, type);
fflush(stderr);
} else if (event_print_mask & (UINT32_C(1) << type)) {
- printf("\nPort %" PRIu8 ": %s event\n", port_id,
+ printf("\nPort %" PRIu16 ": %s event\n", port_id,
event_desc[type]);
fflush(stdout);
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.922228463 -0800
+++ 0061-app-testpmd-fix-printf-format-in-event-callback.patch 2018-11-29 15:01:45.152959000 -0800
@@ -1,13 +1,14 @@
-From f431e0104df89aa9f53b20448530baec18f3d39a Mon Sep 17 00:00:00 2001
+From 45b3ce42564424cc07c26379f53b42e52f74dfb8 Mon Sep 17 00:00:00 2001
From: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Date: Tue, 25 Sep 2018 12:23:00 +0100
Subject: [PATCH] app/testpmd: fix printf format in event callback
+[ upstream commit f431e0104df89aa9f53b20448530baec18f3d39a ]
+
change PRIu8 -> PRIu16 for port_id in eth_event_callback
(portid_t is uint16_t)
Fixes: 76ad4a2d82d4 ("app/testpmd: add generic event handler")
-Cc: stable@dpdk.org
Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
@@ -16,10 +17,10 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
-index 5e0b245f8..8a50ddeef 100644
+index 1b9f7cd27..7c4c5820d 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
-@@ -2506,11 +2506,11 @@ eth_event_callback(portid_t port_id, enum rte_eth_event_type type, void *param,
+@@ -2066,11 +2066,11 @@ eth_event_callback(portid_t port_id, enum rte_eth_event_type type, void *param,
RTE_SET_USED(ret_param);
if (type >= RTE_ETH_EVENT_MAX) {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix duplicate exit' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (59 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix printf format in event callback' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Yongseok Koh
` (65 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Brian Archbold; +Cc: Bernard Iremonger, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From f6535133e3e31fe14c4e540bc78e0ba477202865 Mon Sep 17 00:00:00 2001
From: Brian Archbold <brian.archbold@intel.com>
Date: Wed, 22 Aug 2018 07:05:06 +0100
Subject: [PATCH] app/testpmd: fix duplicate exit
[ upstream commit 27c7031e0b49abbaf13ea4c4a809a07b9282422d ]
In interactive mode, when the "quit" command is issued, pmd_test_exit()
is being called twice, once through the "quit" command and the other
after termination of prompt.
Remove duplicated exit routine by removing call from "quit" command.
Steps to reproduce:
- Run testpmd in interactive mode.
- type "quit".
Fixes: af75078fece3 ("first public release")
Signed-off-by: Brian Archbold <brian.archbold@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
---
app/test-pmd/cmdline.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
index 209e64e22..cad33579b 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
@@ -7052,7 +7052,6 @@ static void cmd_quit_parsed(__attribute__((unused)) void *parsed_result,
struct cmdline *cl,
__attribute__((unused)) void *data)
{
- pmd_test_exit();
cmdline_quit(cl);
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:47.964090388 -0800
+++ 0062-app-testpmd-fix-duplicate-exit.patch 2018-11-29 15:01:45.162958000 -0800
@@ -1,8 +1,10 @@
-From 27c7031e0b49abbaf13ea4c4a809a07b9282422d Mon Sep 17 00:00:00 2001
+From f6535133e3e31fe14c4e540bc78e0ba477202865 Mon Sep 17 00:00:00 2001
From: Brian Archbold <brian.archbold@intel.com>
Date: Wed, 22 Aug 2018 07:05:06 +0100
Subject: [PATCH] app/testpmd: fix duplicate exit
+[ upstream commit 27c7031e0b49abbaf13ea4c4a809a07b9282422d ]
+
In interactive mode, when the "quit" command is issued, pmd_test_exit()
is being called twice, once through the "quit" command and the other
after termination of prompt.
@@ -14,7 +16,6 @@
- type "quit".
Fixes: af75078fece3 ("first public release")
-Cc: stable@dpdk.org
Signed-off-by: Brian Archbold <brian.archbold@intel.com>
Acked-by: Bernard Iremonger <bernard.iremonger@intel.com>
@@ -23,10 +24,10 @@
1 file changed, 1 deletion(-)
diff --git a/app/test-pmd/cmdline.c b/app/test-pmd/cmdline.c
-index 1b40e3fa8..dd5616d35 100644
+index 209e64e22..cad33579b 100644
--- a/app/test-pmd/cmdline.c
+++ b/app/test-pmd/cmdline.c
-@@ -7670,7 +7670,6 @@ static void cmd_quit_parsed(__attribute__((unused)) void *parsed_result,
+@@ -7052,7 +7052,6 @@ static void cmd_quit_parsed(__attribute__((unused)) void *parsed_result,
struct cmdline *cl,
__attribute__((unused)) void *data)
{
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (60 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix duplicate exit' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Yongseok Koh
` (64 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Luca Boccassi; +Cc: Wei Zhao, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From ec3bc67500491d992901c0eef730a8df526a3f9c Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Fri, 27 Jul 2018 18:26:07 +0100
Subject: [PATCH] net/e1000: do not error out if Rx drop enable is set
[ upstream commit d7812ffd83588c724d2f291f2030c9994f9d1113 ]
rx_drop_en is an optimization that does nothing on single-queue
devices like e1000. Do not force applications that do not care to
select per-devices optimizations flags by returning an error, just
log it and carry on.
Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)")
Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
---
drivers/net/e1000/em_rxtx.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
index 1d8f0794d..a15ce222a 100644
--- a/drivers/net/e1000/em_rxtx.c
+++ b/drivers/net/e1000/em_rxtx.c
@@ -1369,12 +1369,13 @@ eth_em_rx_queue_setup(struct rte_eth_dev *dev,
}
/*
- * EM devices don't support drop_en functionality
+ * EM devices don't support drop_en functionality.
+ * It's an optimization that does nothing on single-queue devices,
+ * so just log the issue and carry on.
*/
if (rx_conf->rx_drop_en) {
- PMD_INIT_LOG(ERR, "drop_en functionality not supported by "
+ PMD_INIT_LOG(NOTICE, "drop_en functionality not supported by "
"device");
- return -EINVAL;
}
/* Free memory prior to re-allocation if needed. */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.015642762 -0800
+++ 0063-net-e1000-do-not-error-out-if-Rx-drop-enable-is-set.patch 2018-11-29 15:01:45.164964000 -0800
@@ -1,15 +1,16 @@
-From d7812ffd83588c724d2f291f2030c9994f9d1113 Mon Sep 17 00:00:00 2001
+From ec3bc67500491d992901c0eef730a8df526a3f9c Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Fri, 27 Jul 2018 18:26:07 +0100
Subject: [PATCH] net/e1000: do not error out if Rx drop enable is set
+[ upstream commit d7812ffd83588c724d2f291f2030c9994f9d1113 ]
+
rx_drop_en is an optimization that does nothing on single-queue
devices like e1000. Do not force applications that do not care to
select per-devices optimizations flags by returning an error, just
log it and carry on.
Fixes: 805803445a02 ("e1000: support EM devices (also known as e1000/e1000e)")
-Cc: stable@dpdk.org
Signed-off-by: Luca Boccassi <bluca@debian.org>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
@@ -18,10 +19,10 @@
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c
-index 087e68304..a9cd76518 100644
+index 1d8f0794d..a15ce222a 100644
--- a/drivers/net/e1000/em_rxtx.c
+++ b/drivers/net/e1000/em_rxtx.c
-@@ -1417,12 +1417,13 @@ eth_em_rx_queue_setup(struct rte_eth_dev *dev,
+@@ -1369,12 +1369,13 @@ eth_em_rx_queue_setup(struct rte_eth_dev *dev,
}
/*
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (61 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' " Yongseok Koh
` (63 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Vivek Sharma; +Cc: Cristian Dumitrescu, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 9099640794309a3d040051de3d9b3c72674e280a Mon Sep 17 00:00:00 2001
From: Vivek Sharma <vivek.sharma@caviumnetworks.com>
Date: Tue, 25 Sep 2018 09:53:06 +0000
Subject: [PATCH] eal: use correct data type for bitmap slab operations
[ upstream commit bed70e5deb1bc927c5adb375d15c1d32c6c137d8 ]
Currently, slab operations use unsigned long data type for 64-bit slab
related operations. On target 'i686-native-linuxapp-gcc', unsigned long
is 32-bit and thus, slab operations breaks on this target. Changing slab
operations to use unsigned long long for correct functioning on
all targets.
Fixes: de3cfa2c9823 ("sched: initial import")
Fixes: 693f715da45c ("remove extra parentheses in return statement")
Signed-off-by: Vivek Sharma <vivek.sharma@caviumnetworks.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
---
lib/librte_eal/common/include/rte_bitmap.h | 14 +++++++-------
test/test/test_bitmap.c | 18 ++++++++++++++++++
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/lib/librte_eal/common/include/rte_bitmap.h b/lib/librte_eal/common/include/rte_bitmap.h
index 13bfd9cbe..eb270b27c 100644
--- a/lib/librte_eal/common/include/rte_bitmap.h
+++ b/lib/librte_eal/common/include/rte_bitmap.h
@@ -117,7 +117,7 @@ __rte_bitmap_index1_inc(struct rte_bitmap *bmp)
static inline uint64_t
__rte_bitmap_mask1_get(struct rte_bitmap *bmp)
{
- return (~1lu) << bmp->offset1;
+ return (~1llu) << bmp->offset1;
}
static inline void
@@ -346,7 +346,7 @@ rte_bitmap_get(struct rte_bitmap *bmp, uint32_t pos)
index2 = pos >> RTE_BITMAP_SLAB_BIT_SIZE_LOG2;
offset2 = pos & RTE_BITMAP_SLAB_BIT_MASK;
slab2 = bmp->array2 + index2;
- return (*slab2) & (1lu << offset2);
+ return (*slab2) & (1llu << offset2);
}
/**
@@ -371,8 +371,8 @@ rte_bitmap_set(struct rte_bitmap *bmp, uint32_t pos)
slab2 = bmp->array2 + index2;
slab1 = bmp->array1 + index1;
- *slab2 |= 1lu << offset2;
- *slab1 |= 1lu << offset1;
+ *slab2 |= 1llu << offset2;
+ *slab1 |= 1llu << offset1;
}
/**
@@ -399,7 +399,7 @@ rte_bitmap_set_slab(struct rte_bitmap *bmp, uint32_t pos, uint64_t slab)
slab1 = bmp->array1 + index1;
*slab2 |= slab;
- *slab1 |= 1lu << offset1;
+ *slab1 |= 1llu << offset1;
}
static inline uint64_t
@@ -437,7 +437,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos)
slab2 = bmp->array2 + index2;
/* Return if array2 slab is not all-zeros */
- *slab2 &= ~(1lu << offset2);
+ *slab2 &= ~(1llu << offset2);
if (*slab2){
return;
}
@@ -453,7 +453,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos)
index1 = pos >> (RTE_BITMAP_SLAB_BIT_SIZE_LOG2 + RTE_BITMAP_CL_BIT_SIZE_LOG2);
offset1 = (pos >> RTE_BITMAP_CL_BIT_SIZE_LOG2) & RTE_BITMAP_SLAB_BIT_MASK;
slab1 = bmp->array1 + index1;
- *slab1 &= ~(1lu << offset1);
+ *slab1 &= ~(1llu << offset1);
return;
}
diff --git a/test/test/test_bitmap.c b/test/test/test_bitmap.c
index 7045d332a..e8c3a7807 100644
--- a/test/test/test_bitmap.c
+++ b/test/test/test_bitmap.c
@@ -129,6 +129,7 @@ test_bitmap_slab_set_get(struct rte_bitmap *bmp)
static int
test_bitmap_set_get_clear(struct rte_bitmap *bmp)
{
+ uint64_t val;
int i;
rte_bitmap_reset(bmp);
@@ -152,6 +153,23 @@ test_bitmap_set_get_clear(struct rte_bitmap *bmp)
}
}
+ rte_bitmap_reset(bmp);
+
+ /* Alternate slab set test */
+ for (i = 0; i < MAX_BITS; i++) {
+ if (i % RTE_BITMAP_SLAB_BIT_SIZE)
+ rte_bitmap_set(bmp, i);
+ }
+
+ for (i = 0; i < MAX_BITS; i++) {
+ val = rte_bitmap_get(bmp, i);
+ if (((i % RTE_BITMAP_SLAB_BIT_SIZE) && !val) ||
+ (!(i % RTE_BITMAP_SLAB_BIT_SIZE) && val)) {
+ printf("Failed to get set bit.\n");
+ return TEST_FAILED;
+ }
+ }
+
return TEST_SUCCESS;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.057370448 -0800
+++ 0064-eal-use-correct-data-type-for-bitmap-slab-operations.patch 2018-11-29 15:01:45.167958000 -0800
@@ -1,8 +1,10 @@
-From bed70e5deb1bc927c5adb375d15c1d32c6c137d8 Mon Sep 17 00:00:00 2001
+From 9099640794309a3d040051de3d9b3c72674e280a Mon Sep 17 00:00:00 2001
From: Vivek Sharma <vivek.sharma@caviumnetworks.com>
Date: Tue, 25 Sep 2018 09:53:06 +0000
Subject: [PATCH] eal: use correct data type for bitmap slab operations
+[ upstream commit bed70e5deb1bc927c5adb375d15c1d32c6c137d8 ]
+
Currently, slab operations use unsigned long data type for 64-bit slab
related operations. On target 'i686-native-linuxapp-gcc', unsigned long
is 32-bit and thus, slab operations breaks on this target. Changing slab
@@ -11,7 +13,6 @@
Fixes: de3cfa2c9823 ("sched: initial import")
Fixes: 693f715da45c ("remove extra parentheses in return statement")
-Cc: stable@dpdk.org
Signed-off-by: Vivek Sharma <vivek.sharma@caviumnetworks.com>
Acked-by: Cristian Dumitrescu <cristian.dumitrescu@intel.com>
@@ -21,10 +22,10 @@
2 files changed, 25 insertions(+), 7 deletions(-)
diff --git a/lib/librte_eal/common/include/rte_bitmap.h b/lib/librte_eal/common/include/rte_bitmap.h
-index d9facc642..7a36ce73c 100644
+index 13bfd9cbe..eb270b27c 100644
--- a/lib/librte_eal/common/include/rte_bitmap.h
+++ b/lib/librte_eal/common/include/rte_bitmap.h
-@@ -88,7 +88,7 @@ __rte_bitmap_index1_inc(struct rte_bitmap *bmp)
+@@ -117,7 +117,7 @@ __rte_bitmap_index1_inc(struct rte_bitmap *bmp)
static inline uint64_t
__rte_bitmap_mask1_get(struct rte_bitmap *bmp)
{
@@ -33,7 +34,7 @@
}
static inline void
-@@ -317,7 +317,7 @@ rte_bitmap_get(struct rte_bitmap *bmp, uint32_t pos)
+@@ -346,7 +346,7 @@ rte_bitmap_get(struct rte_bitmap *bmp, uint32_t pos)
index2 = pos >> RTE_BITMAP_SLAB_BIT_SIZE_LOG2;
offset2 = pos & RTE_BITMAP_SLAB_BIT_MASK;
slab2 = bmp->array2 + index2;
@@ -42,7 +43,7 @@
}
/**
-@@ -342,8 +342,8 @@ rte_bitmap_set(struct rte_bitmap *bmp, uint32_t pos)
+@@ -371,8 +371,8 @@ rte_bitmap_set(struct rte_bitmap *bmp, uint32_t pos)
slab2 = bmp->array2 + index2;
slab1 = bmp->array1 + index1;
@@ -53,7 +54,7 @@
}
/**
-@@ -370,7 +370,7 @@ rte_bitmap_set_slab(struct rte_bitmap *bmp, uint32_t pos, uint64_t slab)
+@@ -399,7 +399,7 @@ rte_bitmap_set_slab(struct rte_bitmap *bmp, uint32_t pos, uint64_t slab)
slab1 = bmp->array1 + index1;
*slab2 |= slab;
@@ -62,7 +63,7 @@
}
static inline uint64_t
-@@ -408,7 +408,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos)
+@@ -437,7 +437,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos)
slab2 = bmp->array2 + index2;
/* Return if array2 slab is not all-zeros */
@@ -71,7 +72,7 @@
if (*slab2){
return;
}
-@@ -424,7 +424,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos)
+@@ -453,7 +453,7 @@ rte_bitmap_clear(struct rte_bitmap *bmp, uint32_t pos)
index1 = pos >> (RTE_BITMAP_SLAB_BIT_SIZE_LOG2 + RTE_BITMAP_CL_BIT_SIZE_LOG2);
offset1 = (pos >> RTE_BITMAP_CL_BIT_SIZE_LOG2) & RTE_BITMAP_SLAB_BIT_MASK;
slab1 = bmp->array1 + index1;
@@ -81,10 +82,10 @@
return;
}
diff --git a/test/test/test_bitmap.c b/test/test/test_bitmap.c
-index c3169e9d5..95c518488 100644
+index 7045d332a..e8c3a7807 100644
--- a/test/test/test_bitmap.c
+++ b/test/test/test_bitmap.c
-@@ -101,6 +101,7 @@ test_bitmap_slab_set_get(struct rte_bitmap *bmp)
+@@ -129,6 +129,7 @@ test_bitmap_slab_set_get(struct rte_bitmap *bmp)
static int
test_bitmap_set_get_clear(struct rte_bitmap *bmp)
{
@@ -92,7 +93,7 @@
int i;
rte_bitmap_reset(bmp);
-@@ -124,6 +125,23 @@ test_bitmap_set_get_clear(struct rte_bitmap *bmp)
+@@ -152,6 +153,23 @@ test_bitmap_set_get_clear(struct rte_bitmap *bmp)
}
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (62 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Yongseok Koh
@ 2018-11-29 23:10 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' " Yongseok Koh
` (62 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:10 UTC (permalink / raw)
To: Szymon Sliwa; +Cc: Yelena Krivosheev, Natalie Samsonov, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c10866e7bf0d41dad725e3be317369929c08b236 Mon Sep 17 00:00:00 2001
From: Szymon Sliwa <szs@semihalf.com>
Date: Fri, 21 Sep 2018 16:53:55 +0200
Subject: [PATCH] crypto/mvsam: update hash digest sizes
[ upstream commit 2c22aa4f8f6e0be61a7130bfed14be957811b8d6 ]
Update hash digest sizes to match hardware capabilities.
Signed-off-by: Szymon Sliwa <szs@semihalf.com>
Reviewed-by: Yelena Krivosheev <yelena@marvell.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
---
drivers/crypto/mrvl/rte_mrvl_pmd_ops.c | 46 +++++++++++++++++-----------------
1 file changed, 23 insertions(+), 23 deletions(-)
diff --git a/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c b/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
index 434cf8509..69e1ccba6 100644
--- a/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
+++ b/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
@@ -58,9 +58,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
- .min = 16,
+ .min = 12,
.max = 16,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -78,9 +78,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
- .min = 16,
+ .min = 12,
.max = 16,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -98,9 +98,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
- .min = 20,
+ .min = 12,
.max = 20,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -118,9 +118,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
- .min = 20,
+ .min = 12,
.max = 20,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -138,9 +138,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
- .min = 28,
+ .min = 12,
.max = 28,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -158,9 +158,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
- .min = 32,
+ .min = 12,
.max = 32,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -178,9 +178,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
- .min = 32,
+ .min = 12,
.max = 32,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -198,9 +198,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
- .min = 48,
+ .min = 12,
.max = 48,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -218,9 +218,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
- .min = 48,
+ .min = 12,
.max = 48,
- .increment = 0
+ .increment = 4
},
}, }
}, }
@@ -238,9 +238,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
- .min = 64,
- .max = 64,
- .increment = 0
+ .min = 12,
+ .max = 48,
+ .increment = 4
},
}, }
}, }
@@ -258,8 +258,8 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
- .min = 64,
- .max = 64,
+ .min = 12,
+ .max = 48,
.increment = 0
},
}, }
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.099174212 -0800
+++ 0065-crypto-mvsam-update-hash-digest-sizes.patch 2018-11-29 15:01:45.168964000 -0800
@@ -1,24 +1,24 @@
-From 2c22aa4f8f6e0be61a7130bfed14be957811b8d6 Mon Sep 17 00:00:00 2001
+From c10866e7bf0d41dad725e3be317369929c08b236 Mon Sep 17 00:00:00 2001
From: Szymon Sliwa <szs@semihalf.com>
Date: Fri, 21 Sep 2018 16:53:55 +0200
Subject: [PATCH] crypto/mvsam: update hash digest sizes
-Update hash digest sizes to match hardware capabilities.
+[ upstream commit 2c22aa4f8f6e0be61a7130bfed14be957811b8d6 ]
-Cc: stable@dpdk.org
+Update hash digest sizes to match hardware capabilities.
Signed-off-by: Szymon Sliwa <szs@semihalf.com>
Reviewed-by: Yelena Krivosheev <yelena@marvell.com>
Reviewed-by: Natalie Samsonov <nsamsono@marvell.com>
---
- drivers/crypto/mvsam/rte_mrvl_pmd_ops.c | 46 ++++++++++++++++-----------------
+ drivers/crypto/mrvl/rte_mrvl_pmd_ops.c | 46 +++++++++++++++++-----------------
1 file changed, 23 insertions(+), 23 deletions(-)
-diff --git a/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c b/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
-index c045562ca..e2cfc07f3 100644
---- a/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
-+++ b/drivers/crypto/mvsam/rte_mrvl_pmd_ops.c
-@@ -30,9 +30,9 @@ static const struct rte_cryptodev_capabilities
+diff --git a/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c b/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
+index 434cf8509..69e1ccba6 100644
+--- a/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
++++ b/drivers/crypto/mrvl/rte_mrvl_pmd_ops.c
+@@ -58,9 +58,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
@@ -30,7 +30,7 @@
},
}, }
}, }
-@@ -50,9 +50,9 @@ static const struct rte_cryptodev_capabilities
+@@ -78,9 +78,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
@@ -42,7 +42,7 @@
},
}, }
}, }
-@@ -70,9 +70,9 @@ static const struct rte_cryptodev_capabilities
+@@ -98,9 +98,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
@@ -54,7 +54,7 @@
},
}, }
}, }
-@@ -90,9 +90,9 @@ static const struct rte_cryptodev_capabilities
+@@ -118,9 +118,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
@@ -66,7 +66,7 @@
},
}, }
}, }
-@@ -110,9 +110,9 @@ static const struct rte_cryptodev_capabilities
+@@ -138,9 +138,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
@@ -78,7 +78,7 @@
},
}, }
}, }
-@@ -130,9 +130,9 @@ static const struct rte_cryptodev_capabilities
+@@ -158,9 +158,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
@@ -90,7 +90,7 @@
},
}, }
}, }
-@@ -150,9 +150,9 @@ static const struct rte_cryptodev_capabilities
+@@ -178,9 +178,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
@@ -102,7 +102,7 @@
},
}, }
}, }
-@@ -170,9 +170,9 @@ static const struct rte_cryptodev_capabilities
+@@ -198,9 +198,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
@@ -114,7 +114,7 @@
},
}, }
}, }
-@@ -190,9 +190,9 @@ static const struct rte_cryptodev_capabilities
+@@ -218,9 +218,9 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
@@ -126,7 +126,7 @@
},
}, }
}, }
-@@ -210,9 +210,9 @@ static const struct rte_cryptodev_capabilities
+@@ -238,9 +238,9 @@ static const struct rte_cryptodev_capabilities
.increment = 1
},
.digest_size = {
@@ -139,7 +139,7 @@
},
}, }
}, }
-@@ -230,8 +230,8 @@ static const struct rte_cryptodev_capabilities
+@@ -258,8 +258,8 @@ static const struct rte_cryptodev_capabilities
.increment = 0
},
.digest_size = {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (63 preceding siblings ...)
2018-11-29 23:10 ` [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix physical port " Yongseok Koh
` (61 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Phil Yang; +Cc: Gavin Hu, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a913869db7339a40e41f5c67f3dfdca73d1bc81b Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Fri, 12 Oct 2018 17:34:55 +0800
Subject: [PATCH] app/testpmd: fix vdev socket initialization
[ upstream commit 29841336438400ce040e394c0c00040c21644727 ]
The cmdline settings of port-numa-config and rxring-numa-config have
been flushed by the following init_config. If we don't configure the
port-numa-config, the virtual device will allocate the device ports to
socket 0. It will cause failure when the socket 0 is unavailable.
eg:
testpmd -l <cores from socket 1> --vdev net_pcap0,iface=lo
--socket-mem=64 -- --numa --port-numa-config="(0,1)"
--ring-numa-config="(0,1,1),(0,2,1)" -i
...
Configuring Port 0 (socket 0)
Failed to setup RX queue:No mempool allocation on the socket 0
EAL: Error - exiting with code: 1
Cause: Start ports failed
Fix by allocate the devices port to the first available socket or the
socket configured in port-numa-config.
Fixes: 487f9a592a27 ("app/testpmd: fix NUMA structures initialization")
Fixes: 20a0286fd2c0 ("app/testpmd: check socket id validity")
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
app/test-pmd/testpmd.c | 29 +++++++++++++++++------------
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 7c4c5820d..5d6a7f5d4 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -674,12 +674,6 @@ init_config(void)
memset(port_per_socket,0,RTE_MAX_NUMA_NODES);
- if (numa_support) {
- memset(port_numa, NUMA_NO_CONFIG, RTE_MAX_ETHPORTS);
- memset(rxring_numa, NUMA_NO_CONFIG, RTE_MAX_ETHPORTS);
- memset(txring_numa, NUMA_NO_CONFIG, RTE_MAX_ETHPORTS);
- }
-
/* Configuration of logical cores. */
fwd_lcores = rte_zmalloc("testpmd: fwd_lcores",
sizeof(struct fwd_lcore *) * nb_lcores,
@@ -709,9 +703,12 @@ init_config(void)
else {
uint32_t socket_id = rte_eth_dev_socket_id(pid);
- /* if socket_id is invalid, set to 0 */
+ /*
+ * if socket_id is invalid,
+ * set to the first available socket.
+ */
if (check_socket_id(socket_id) < 0)
- socket_id = 0;
+ socket_id = socket_ids[0];
port_per_socket[socket_id]++;
}
}
@@ -845,9 +842,12 @@ init_fwd_streams(void)
else {
port->socket_id = rte_eth_dev_socket_id(pid);
- /* if socket_id is invalid, set to 0 */
+ /*
+ * if socket_id is invalid,
+ * set to the first available socket.
+ */
if (check_socket_id(port->socket_id) < 0)
- port->socket_id = 0;
+ port->socket_id = socket_ids[0];
}
}
else {
@@ -1896,9 +1896,9 @@ attach_port(char *identifier)
return;
socket_id = (unsigned)rte_eth_dev_socket_id(pi);
- /* if socket_id is invalid, set to 0 */
+ /* if socket_id is invalid, set to the first available socket. */
if (check_socket_id(socket_id) < 0)
- socket_id = 0;
+ socket_id = socket_ids[0];
reconfig(pi, socket_id);
rte_eth_promiscuous_enable(pi);
@@ -2464,6 +2464,11 @@ init_port(void)
"rte_zmalloc(%d struct rte_port) failed\n",
RTE_MAX_ETHPORTS);
}
+
+ /* Initialize ports NUMA structures */
+ memset(port_numa, NUMA_NO_CONFIG, RTE_MAX_ETHPORTS);
+ memset(rxring_numa, NUMA_NO_CONFIG, RTE_MAX_ETHPORTS);
+ memset(txring_numa, NUMA_NO_CONFIG, RTE_MAX_ETHPORTS);
}
static void
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.140656021 -0800
+++ 0066-app-testpmd-fix-vdev-socket-initialization.patch 2018-11-29 15:01:45.170963000 -0800
@@ -1,8 +1,10 @@
-From 29841336438400ce040e394c0c00040c21644727 Mon Sep 17 00:00:00 2001
+From a913869db7339a40e41f5c67f3dfdca73d1bc81b Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Fri, 12 Oct 2018 17:34:55 +0800
Subject: [PATCH] app/testpmd: fix vdev socket initialization
+[ upstream commit 29841336438400ce040e394c0c00040c21644727 ]
+
The cmdline settings of port-numa-config and rxring-numa-config have
been flushed by the following init_config. If we don't configure the
port-numa-config, the virtual device will allocate the device ports to
@@ -24,7 +26,6 @@
Fixes: 487f9a592a27 ("app/testpmd: fix NUMA structures initialization")
Fixes: 20a0286fd2c0 ("app/testpmd: check socket id validity")
-Cc: stable@dpdk.org
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
@@ -34,10 +35,10 @@
1 file changed, 17 insertions(+), 12 deletions(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
-index 5dbbf783f..cce5a9773 100644
+index 7c4c5820d..5d6a7f5d4 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
-@@ -1021,12 +1021,6 @@ init_config(void)
+@@ -674,12 +674,6 @@ init_config(void)
memset(port_per_socket,0,RTE_MAX_NUMA_NODES);
@@ -50,7 +51,7 @@
/* Configuration of logical cores. */
fwd_lcores = rte_zmalloc("testpmd: fwd_lcores",
sizeof(struct fwd_lcore *) * nb_lcores,
-@@ -1063,9 +1057,12 @@ init_config(void)
+@@ -709,9 +703,12 @@ init_config(void)
else {
uint32_t socket_id = rte_eth_dev_socket_id(pid);
@@ -65,7 +66,7 @@
port_per_socket[socket_id]++;
}
}
-@@ -1221,9 +1218,12 @@ init_fwd_streams(void)
+@@ -845,9 +842,12 @@ init_fwd_streams(void)
else {
port->socket_id = rte_eth_dev_socket_id(pid);
@@ -80,7 +81,7 @@
}
}
else {
-@@ -2294,9 +2294,9 @@ attach_port(char *identifier)
+@@ -1896,9 +1896,9 @@ attach_port(char *identifier)
return;
socket_id = (unsigned)rte_eth_dev_socket_id(pi);
@@ -92,7 +93,7 @@
reconfig(pi, socket_id);
rte_eth_promiscuous_enable(pi);
-@@ -2954,6 +2954,11 @@ init_port(void)
+@@ -2464,6 +2464,11 @@ init_port(void)
"rte_zmalloc(%d struct rte_port) failed\n",
RTE_MAX_ETHPORTS);
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix physical port socket initialization' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (64 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Yongseok Koh
` (60 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Phil Yang; +Cc: Gavin Hu, Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From dd108ac86fc660b35bb3219d8d2de77df38b06ba Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Wed, 17 Oct 2018 09:36:30 +0800
Subject: [PATCH] app/testpmd: fix physical port socket initialization
[ upstream commit effdb8bbb018bd8a611b2ac86a15739f67ea7cbc ]
Once the lcore list setting excluded the socket which physical device
attached, it will cause failure. Meanwhile, it will disable Testpmd
cross NUMA scenario.
Fixes: dbfb8ec7094c ("app/testpmd: optimize mbuf pool allocation")
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
app/test-pmd/testpmd.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
index 5d6a7f5d4..0adebddc8 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -483,9 +483,21 @@ set_default_fwd_ports_config(void)
portid_t pt_id;
int i = 0;
- RTE_ETH_FOREACH_DEV(pt_id)
+ RTE_ETH_FOREACH_DEV(pt_id) {
fwd_ports_ids[i++] = pt_id;
+ /* Update sockets info according to the attached device */
+ int socket_id = rte_eth_dev_socket_id(pt_id);
+ if (socket_id >= 0 && new_socket_id(socket_id)) {
+ if (num_sockets >= RTE_MAX_NUMA_NODES) {
+ rte_exit(EXIT_FAILURE,
+ "Total sockets greater than %u\n",
+ RTE_MAX_NUMA_NODES);
+ }
+ socket_ids[num_sockets++] = socket_id;
+ }
+ }
+
nb_cfg_ports = nb_ports;
nb_fwd_ports = nb_ports;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.183105200 -0800
+++ 0067-app-testpmd-fix-physical-port-socket-initialization.patch 2018-11-29 15:01:45.172960000 -0800
@@ -1,14 +1,15 @@
-From effdb8bbb018bd8a611b2ac86a15739f67ea7cbc Mon Sep 17 00:00:00 2001
+From dd108ac86fc660b35bb3219d8d2de77df38b06ba Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Wed, 17 Oct 2018 09:36:30 +0800
Subject: [PATCH] app/testpmd: fix physical port socket initialization
+[ upstream commit effdb8bbb018bd8a611b2ac86a15739f67ea7cbc ]
+
Once the lcore list setting excluded the socket which physical device
attached, it will cause failure. Meanwhile, it will disable Testpmd
cross NUMA scenario.
Fixes: dbfb8ec7094c ("app/testpmd: optimize mbuf pool allocation")
-Cc: stable@dpdk.org
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
@@ -18,10 +19,10 @@
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/app/test-pmd/testpmd.c b/app/test-pmd/testpmd.c
-index cce5a9773..404d8fe93 100644
+index 5d6a7f5d4..0adebddc8 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
-@@ -565,9 +565,21 @@ set_default_fwd_ports_config(void)
+@@ -483,9 +483,21 @@ set_default_fwd_ports_config(void)
portid_t pt_id;
int i = 0;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'kvargs: fix processing a null list' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (65 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix physical port " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Yongseok Koh
` (59 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: Olivier Matz, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 76b2239098a772dc81624ae36ad4ae9622590f21 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Tue, 23 Oct 2018 18:01:40 +0200
Subject: [PATCH] kvargs: fix processing a null list
[ upstream commit 25495407cbda028f7f6d5cce38f78e609cf970e1 ]
In the doxygen description of rte_kvargs_process(), it is said:
If *kvlist* is NULL function does nothing.
It has been added by mistake here instead of rte_kvargs_free().
Anyway, null list should be correctly handled in both functions.
Comments are fixed in both functions and NULL handling is added
to rte_kvargs_process().
Fixes: c34af7424e09 ("kvargs: fix freeing behaviour for null")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
---
lib/librte_kvargs/rte_kvargs.c | 3 +++
lib/librte_kvargs/rte_kvargs.h | 7 +++----
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/lib/librte_kvargs/rte_kvargs.c b/lib/librte_kvargs/rte_kvargs.c
index 854ac83f5..c71ad4abe 100644
--- a/lib/librte_kvargs/rte_kvargs.c
+++ b/lib/librte_kvargs/rte_kvargs.c
@@ -160,6 +160,9 @@ rte_kvargs_process(const struct rte_kvargs *kvlist,
const struct rte_kvargs_pair *pair;
unsigned i;
+ if (kvlist == NULL)
+ return 0;
+
for (i = 0; i < kvlist->count; i++) {
pair = &kvlist->pairs[i];
if (key_match == NULL || strcmp(pair->key, key_match) == 0) {
diff --git a/lib/librte_kvargs/rte_kvargs.h b/lib/librte_kvargs/rte_kvargs.h
index 5821c726a..53beed504 100644
--- a/lib/librte_kvargs/rte_kvargs.h
+++ b/lib/librte_kvargs/rte_kvargs.h
@@ -107,7 +107,7 @@ struct rte_kvargs *rte_kvargs_parse(const char *args,
* rte_kvargs_parse().
*
* @param kvlist
- * The rte_kvargs structure
+ * The rte_kvargs structure. No error if NULL.
*/
void rte_kvargs_free(struct rte_kvargs *kvlist);
@@ -116,11 +116,10 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
*
* For each key/value association that matches the given key, calls the
* handler function with the for a given arg_name passing the value on the
- * dictionary for that key and a given extra argument. If *kvlist* is NULL
- * function does nothing.
+ * dictionary for that key and a given extra argument.
*
* @param kvlist
- * The rte_kvargs structure
+ * The rte_kvargs structure. No error if NULL.
* @param key_match
* The key on which the handler should be called, or NULL to process handler
* on all associations
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.224429772 -0800
+++ 0068-kvargs-fix-processing-a-null-list.patch 2018-11-29 15:01:45.174966000 -0800
@@ -1,8 +1,10 @@
-From 25495407cbda028f7f6d5cce38f78e609cf970e1 Mon Sep 17 00:00:00 2001
+From 76b2239098a772dc81624ae36ad4ae9622590f21 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Tue, 23 Oct 2018 18:01:40 +0200
Subject: [PATCH] kvargs: fix processing a null list
+[ upstream commit 25495407cbda028f7f6d5cce38f78e609cf970e1 ]
+
In the doxygen description of rte_kvargs_process(), it is said:
If *kvlist* is NULL function does nothing.
It has been added by mistake here instead of rte_kvargs_free().
@@ -12,7 +14,6 @@
to rte_kvargs_process().
Fixes: c34af7424e09 ("kvargs: fix freeing behaviour for null")
-Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Olivier Matz <olivier.matz@6wind.com>
@@ -22,10 +23,10 @@
2 files changed, 6 insertions(+), 4 deletions(-)
diff --git a/lib/librte_kvargs/rte_kvargs.c b/lib/librte_kvargs/rte_kvargs.c
-index a28f76945..7ec1ea57f 100644
+index 854ac83f5..c71ad4abe 100644
--- a/lib/librte_kvargs/rte_kvargs.c
+++ b/lib/librte_kvargs/rte_kvargs.c
-@@ -120,6 +120,9 @@ rte_kvargs_process(const struct rte_kvargs *kvlist,
+@@ -160,6 +160,9 @@ rte_kvargs_process(const struct rte_kvargs *kvlist,
const struct rte_kvargs_pair *pair;
unsigned i;
@@ -36,10 +37,10 @@
pair = &kvlist->pairs[i];
if (key_match == NULL || strcmp(pair->key, key_match) == 0) {
diff --git a/lib/librte_kvargs/rte_kvargs.h b/lib/librte_kvargs/rte_kvargs.h
-index fc041956e..1946195de 100644
+index 5821c726a..53beed504 100644
--- a/lib/librte_kvargs/rte_kvargs.h
+++ b/lib/librte_kvargs/rte_kvargs.h
-@@ -110,7 +110,7 @@ struct rte_kvargs *rte_kvargs_parse_delim(const char *args,
+@@ -107,7 +107,7 @@ struct rte_kvargs *rte_kvargs_parse(const char *args,
* rte_kvargs_parse().
*
* @param kvlist
@@ -48,7 +49,7 @@
*/
void rte_kvargs_free(struct rte_kvargs *kvlist);
-@@ -119,11 +119,10 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
+@@ -116,11 +116,10 @@ void rte_kvargs_free(struct rte_kvargs *kvlist);
*
* For each key/value association that matches the given key, calls the
* handler function with the for a given arg_name passing the value on the
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (66 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-12-20 0:18 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' " Yongseok Koh
` (58 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Jeff Guo; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8933c679415efb064aa46025fc84df6765577897 Mon Sep 17 00:00:00 2001
From: Jeff Guo <jia.guo@intel.com>
Date: Thu, 18 Oct 2018 14:27:15 +0800
Subject: [PATCH] igb_uio: fix unexpected removal for hot-unplug
[ upstream commit 70efa4116420b6f7a0734711dd603d3024366c79 ]
When a device is hot-unplugged, pci_remove will be invoked unexpectedly
before pci_release, it will caused kernel hung issue which will throw the
error info of "Trying to free already-free IRQ XXX". And on the other hand,
if pci_remove before pci_release, the interrupt will not got chance to be
disabled. So this patch aim to fix this issue by adding pci_release call
in pci_remove, it will gurranty that all pci clean up will be done before
pci removal.
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
index 45d70272d..22484ac14 100644
--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
@@ -577,6 +577,8 @@ igbuio_pci_remove(struct pci_dev *dev)
{
struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
+ igbuio_pci_release(&udev->info, NULL);
+
sysfs_remove_group(&dev->dev.kobj, &dev_attr_grp);
uio_unregister_device(&udev->info);
igbuio_pci_release_iomem(&udev->info);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.264909796 -0800
+++ 0069-igb_uio-fix-unexpected-removal-for-hot-unplug.patch 2018-11-29 15:01:45.176961000 -0800
@@ -1,8 +1,10 @@
-From 70efa4116420b6f7a0734711dd603d3024366c79 Mon Sep 17 00:00:00 2001
+From 8933c679415efb064aa46025fc84df6765577897 Mon Sep 17 00:00:00 2001
From: Jeff Guo <jia.guo@intel.com>
Date: Thu, 18 Oct 2018 14:27:15 +0800
Subject: [PATCH] igb_uio: fix unexpected removal for hot-unplug
+[ upstream commit 70efa4116420b6f7a0734711dd603d3024366c79 ]
+
When a device is hot-unplugged, pci_remove will be invoked unexpectedly
before pci_release, it will caused kernel hung issue which will throw the
error info of "Trying to free already-free IRQ XXX". And on the other hand,
@@ -14,14 +16,14 @@
Signed-off-by: Jeff Guo <jia.guo@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
- kernel/linux/igb_uio/igb_uio.c | 2 ++
+ lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++
1 file changed, 2 insertions(+)
-diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
-index fede66cf2..3cf394bdf 100644
---- a/kernel/linux/igb_uio/igb_uio.c
-+++ b/kernel/linux/igb_uio/igb_uio.c
-@@ -570,6 +570,8 @@ igbuio_pci_remove(struct pci_dev *dev)
+diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+index 45d70272d..22484ac14 100644
+--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
++++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
+@@ -577,6 +577,8 @@ igbuio_pci_remove(struct pci_dev *dev)
{
struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (67 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Yongseok Koh
` (57 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Reshma Pattan; +Cc: Bao-Long Tran, Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From fb7cbbab947656038723156c7994cbc6c22dbbda Mon Sep 17 00:00:00 2001
From: Reshma Pattan <reshma.pattan@intel.com>
Date: Tue, 25 Sep 2018 15:51:26 +0100
Subject: [PATCH] latency: fix timestamp marking and latency calculation
[ upstream commit 77b7485af7f63f7d528f614ce27a5ce014cfd2c7 ]
Latency calculation logic is not correct for the case where
packets gets dropped before TX. As for the dropped packets,
the timestamp is not cleared, and such packets still gets
counted for latency calculation in next runs, that will result
in inaccurate latency measurement.
So fix this issue as below,
Before setting timestamp in mbuf, check mbuf don't have
any prior valid time stamp flag set and after marking
the timestamp, set mbuf flags to indicate timestamp is
valid.
Before calculating timestamp check mbuf flags are set to
indicate timestamp is valid.
With the above logic it is guaranteed that correct timestamps
have been used.
Fixes: 5cd3cac9ed ("latency: added new library for latency stats")
Reported-by: Bao-Long Tran <longtb5@viettel.com.vn>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
Tested-by: Bao-Long Tran <longtb5@viettel.com.vn>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_latencystats/rte_latencystats.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/librte_latencystats/rte_latencystats.c b/lib/librte_latencystats/rte_latencystats.c
index d6ad13c4e..b038c8154 100644
--- a/lib/librte_latencystats/rte_latencystats.c
+++ b/lib/librte_latencystats/rte_latencystats.c
@@ -153,8 +153,11 @@ add_time_stamps(uint16_t pid __rte_unused,
for (i = 0; i < nb_pkts; i++) {
diff_tsc = now - prev_tsc;
timer_tsc += diff_tsc;
- if (timer_tsc >= samp_intvl) {
+
+ if ((pkts[i]->ol_flags & PKT_RX_TIMESTAMP) == 0
+ && (timer_tsc >= samp_intvl)) {
pkts[i]->timestamp = now;
+ pkts[i]->ol_flags |= PKT_RX_TIMESTAMP;
timer_tsc = 0;
}
prev_tsc = now;
@@ -184,7 +187,7 @@ calc_latency(uint16_t pid __rte_unused,
now = rte_rdtsc();
for (i = 0; i < nb_pkts; i++) {
- if (pkts[i]->timestamp)
+ if (pkts[i]->ol_flags & PKT_RX_TIMESTAMP)
latency[cnt++] = now - pkts[i]->timestamp;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.306344626 -0800
+++ 0070-latency-fix-timestamp-marking-and-latency-calculatio.patch 2018-11-29 15:01:45.177962000 -0800
@@ -1,8 +1,10 @@
-From 77b7485af7f63f7d528f614ce27a5ce014cfd2c7 Mon Sep 17 00:00:00 2001
+From fb7cbbab947656038723156c7994cbc6c22dbbda Mon Sep 17 00:00:00 2001
From: Reshma Pattan <reshma.pattan@intel.com>
Date: Tue, 25 Sep 2018 15:51:26 +0100
Subject: [PATCH] latency: fix timestamp marking and latency calculation
+[ upstream commit 77b7485af7f63f7d528f614ce27a5ce014cfd2c7 ]
+
Latency calculation logic is not correct for the case where
packets gets dropped before TX. As for the dropped packets,
the timestamp is not cleared, and such packets still gets
@@ -23,7 +25,6 @@
have been used.
Fixes: 5cd3cac9ed ("latency: added new library for latency stats")
-Cc: stable@dpdk.org
Reported-by: Bao-Long Tran <longtb5@viettel.com.vn>
Signed-off-by: Reshma Pattan <reshma.pattan@intel.com>
@@ -34,10 +35,10 @@
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/librte_latencystats/rte_latencystats.c b/lib/librte_latencystats/rte_latencystats.c
-index 1fdec68e3..5715549e4 100644
+index d6ad13c4e..b038c8154 100644
--- a/lib/librte_latencystats/rte_latencystats.c
+++ b/lib/librte_latencystats/rte_latencystats.c
-@@ -125,8 +125,11 @@ add_time_stamps(uint16_t pid __rte_unused,
+@@ -153,8 +153,11 @@ add_time_stamps(uint16_t pid __rte_unused,
for (i = 0; i < nb_pkts; i++) {
diff_tsc = now - prev_tsc;
timer_tsc += diff_tsc;
@@ -50,7 +51,7 @@
timer_tsc = 0;
}
prev_tsc = now;
-@@ -156,7 +159,7 @@ calc_latency(uint16_t pid __rte_unused,
+@@ -184,7 +187,7 @@ calc_latency(uint16_t pid __rte_unused,
now = rte_rdtsc();
for (i = 0; i < nb_pkts; i++) {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'test/hash: fix bucket size in perf test' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (68 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Yongseok Koh
` (56 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Yipeng Wang; +Cc: Bruce Richardson, Honnappa Nagarahalli, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8957443b6d7a6c3926a2f967e179108c0fbe8754 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:05 -0700
Subject: [PATCH] test/hash: fix bucket size in perf test
[ upstream commit b772a15eb84ce616114880a20ad6ad91bb8970fc ]
The bucket size was changed from 4 to 8 but the corresponding
perf test was not changed accordingly.
In the test, the bucket size and number of buckets are used
to map to the underneath rte_hash structure. They are used
to test performance of two conditions: keys in primary
buckets only and keys in both primary and secondary buckets.
Although there is no functional issue with bucket size set
to 4, it mismatches the underneath rte_hash structure,
which may affect code readability and future extension.
Fixes: 58017c98ed53 ("hash: add vectorized comparison")
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
---
test/test/test_hash_perf.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/test/test_hash_perf.c b/test/test/test_hash_perf.c
index c0051b20f..b0514b104 100644
--- a/test/test/test_hash_perf.c
+++ b/test/test/test_hash_perf.c
@@ -49,7 +49,8 @@
#define MAX_ENTRIES (1 << 19)
#define KEYS_TO_ADD (MAX_ENTRIES * 3 / 4) /* 75% table utilization */
#define NUM_LOOKUPS (KEYS_TO_ADD * 5) /* Loop among keys added, several times */
-#define BUCKET_SIZE 4
+/* BUCKET_SIZE should be same as RTE_HASH_BUCKET_ENTRIES in rte_hash library */
+#define BUCKET_SIZE 8
#define NUM_BUCKETS (MAX_ENTRIES / BUCKET_SIZE)
#define MAX_KEYSIZE 64
#define NUM_KEYSIZES 10
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.347606529 -0800
+++ 0071-test-hash-fix-bucket-size-in-perf-test.patch 2018-11-29 15:01:45.179958000 -0800
@@ -1,8 +1,10 @@
-From b772a15eb84ce616114880a20ad6ad91bb8970fc Mon Sep 17 00:00:00 2001
+From 8957443b6d7a6c3926a2f967e179108c0fbe8754 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:05 -0700
Subject: [PATCH] test/hash: fix bucket size in perf test
+[ upstream commit b772a15eb84ce616114880a20ad6ad91bb8970fc ]
+
The bucket size was changed from 4 to 8 but the corresponding
perf test was not changed accordingly.
@@ -16,7 +18,6 @@
which may affect code readability and future extension.
Fixes: 58017c98ed53 ("hash: add vectorized comparison")
-Cc: stable@dpdk.org
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
@@ -26,10 +27,10 @@
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/test/test/test_hash_perf.c b/test/test/test_hash_perf.c
-index 33dcb9fcf..fe116326d 100644
+index c0051b20f..b0514b104 100644
--- a/test/test/test_hash_perf.c
+++ b/test/test/test_hash_perf.c
-@@ -20,7 +20,8 @@
+@@ -49,7 +49,8 @@
#define MAX_ENTRIES (1 << 19)
#define KEYS_TO_ADD (MAX_ENTRIES * 3 / 4) /* 75% table utilization */
#define NUM_LOOKUPS (KEYS_TO_ADD * 5) /* Loop among keys added, several times */
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'kni: fix build on Linux 4.19' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (69 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-12-20 0:19 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' " Yongseok Koh
` (55 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From e013021836efb2d1a228b525d5aee8c7e41e8bb9 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Wed, 24 Oct 2018 12:10:10 +0100
Subject: [PATCH] kni: fix build on Linux 4.19
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit a9460a0b2efb80a913d8770dc188e816b227622f ]
The build error observed with Linux kernel 4.19 when KNI ethtool
support enabled (CONFIG_RTE_KNI_KMOD_ETHTOOL=y)
.../build/build/kernel/linux/kni/kni_ethtool.c:193:3:
error: ‘struct ethtool_ops’ has no member named ‘get_settings’;
.get_settings = kni_get_settings,
^~~~~~~~~~~~
.../build/build/kernel/linux/kni/kni_ethtool.c:194:3:
error: ‘struct ethtool_ops’ has no member named ‘set_settings’;
.set_settings = kni_set_settings,
^~~~~~~~~~~~
With kernel 4.19 ethtool_ops `get_settings` & `set_settings` are
replaced with `get_link_ksettings` & `set_link_ksettings`
Commit 9b3004953503 ("ethtool: drop get_settings and set_settings callbacks")
This fix practically removes `get_settings` & `set_settings` support
for the kernel versions that have the new ethtool_ops without
implementing the new ones.
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h | 2 ++
lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
lib/librte_eal/linuxapp/kni/kni_ethtool.c | 10 ++++++++++
4 files changed, 28 insertions(+)
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
index aed14bcc8..7a520ecec 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
@@ -150,6 +150,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
#define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
#endif /* ETHTOOL_TEST */
+#ifndef ETHTOOL_GLINKSETTINGS
static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);
@@ -274,7 +275,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
#endif /* ETH_TP_MDI_X */
return 0;
}
+#endif
+#ifndef ETHTOOL_SLINKSETTINGS
static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);
@@ -379,6 +382,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
clear_bit(__IGB_RESETTING, &adapter->state);
return 0;
}
+#endif
static u32 igb_get_link(struct net_device *netdev)
{
@@ -2752,8 +2756,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
#endif /* ETHTOOL_GRXRINGS */
static const struct ethtool_ops igb_ethtool_ops = {
+#ifndef ETHTOOL_GLINKSETTINGS
.get_settings = igb_get_settings,
+#endif
+#ifndef ETHTOOL_SLINKSETTINGS
.set_settings = igb_set_settings,
+#endif
.get_drvinfo = igb_get_drvinfo,
.get_regs_len = igb_get_regs_len,
.get_regs = igb_get_regs,
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
index 59415469c..cc3f8ea41 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
@@ -905,8 +905,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
#endif /* CONFIG_DCB */
extern void ixgbe_clean_rx_ring(struct ixgbe_ring *rx_ring);
+#ifndef ETHTOOL_GLINKSETTINGS
extern int ixgbe_get_settings(struct net_device *netdev,
struct ethtool_cmd *ecmd);
+#endif
extern int ixgbe_write_uc_addr_list(struct ixgbe_adapter *adapter,
struct net_device *netdev, unsigned int vfn);
extern void ixgbe_full_sync_mac_table(struct ixgbe_adapter *adapter);
diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
index cdfcb9596..1296829bc 100644
--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
+++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
@@ -173,6 +173,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
#define IXGBE_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)
#endif /* ETHTOOL_TEST */
+#ifndef ETHTOOL_GLINKSETTINGS
int ixgbe_get_settings(struct net_device *netdev,
struct ethtool_cmd *ecmd)
{
@@ -362,7 +363,9 @@ int ixgbe_get_settings(struct net_device *netdev,
return 0;
}
+#endif
+#ifndef ETHTOOL_SLINKSETTINGS
static int ixgbe_set_settings(struct net_device *netdev,
struct ethtool_cmd *ecmd)
{
@@ -406,6 +409,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
}
return err;
}
+#endif
static void ixgbe_get_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pause)
@@ -2830,8 +2834,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
#endif /* ETHTOOL_GRXRINGS */
//static
struct ethtool_ops ixgbe_ethtool_ops = {
+#ifndef ETHTOOL_GLINKSETTINGS
.get_settings = ixgbe_get_settings,
+#endif
+#ifndef ETHTOOL_SLINKSETTINGS
.set_settings = ixgbe_set_settings,
+#endif
.get_drvinfo = ixgbe_get_drvinfo,
.get_regs_len = ixgbe_get_regs_len,
.get_regs = ixgbe_get_regs,
diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
index 0c88589c9..8174e98db 100644
--- a/lib/librte_eal/linuxapp/kni/kni_ethtool.c
+++ b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
@@ -46,6 +46,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
priv->lad_dev->ethtool_ops->get_drvinfo(priv->lad_dev, info);
}
+/* ETHTOOL_GLINKSETTINGS replaces ETHTOOL_GSET */
+#ifndef ETHTOOL_GLINKSETTINGS
static int
kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
{
@@ -53,7 +55,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
return priv->lad_dev->ethtool_ops->get_settings(priv->lad_dev, ecmd);
}
+#endif
+/* ETHTOOL_SLINKSETTINGS replaces ETHTOOL_SSET */
+#ifndef ETHTOOL_SLINKSETTINGS
static int
kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
{
@@ -61,6 +66,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
return priv->lad_dev->ethtool_ops->set_settings(priv->lad_dev, ecmd);
}
+#endif
static void
kni_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
@@ -209,8 +215,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
struct ethtool_ops kni_ethtool_ops = {
.begin = kni_check_if_running,
.get_drvinfo = kni_get_drvinfo,
+#ifndef ETHTOOL_GLINKSETTINGS
.get_settings = kni_get_settings,
+#endif
+#ifndef ETHTOOL_SLINKSETTINGS
.set_settings = kni_set_settings,
+#endif
.get_regs_len = kni_get_regs_len,
.get_regs = kni_get_regs,
.get_wol = kni_get_wol,
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.389325238 -0800
+++ 0072-kni-fix-build-on-Linux-4.19.patch 2018-11-29 15:01:45.186964000 -0800
@@ -1,4 +1,4 @@
-From a9460a0b2efb80a913d8770dc188e816b227622f Mon Sep 17 00:00:00 2001
+From e013021836efb2d1a228b525d5aee8c7e41e8bb9 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Wed, 24 Oct 2018 12:10:10 +0100
Subject: [PATCH] kni: fix build on Linux 4.19
@@ -6,6 +6,8 @@
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+[ upstream commit a9460a0b2efb80a913d8770dc188e816b227622f ]
+
The build error observed with Linux kernel 4.19 when KNI ethtool
support enabled (CONFIG_RTE_KNI_KMOD_ETHTOOL=y)
@@ -29,17 +31,17 @@
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
- kernel/linux/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
- kernel/linux/kni/ethtool/ixgbe/ixgbe.h | 2 ++
- kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
- kernel/linux/kni/kni_ethtool.c | 10 ++++++++++
+ lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
+ lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h | 2 ++
+ lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
+ lib/librte_eal/linuxapp/kni/kni_ethtool.c | 10 ++++++++++
4 files changed, 28 insertions(+)
-diff --git a/kernel/linux/kni/ethtool/igb/igb_ethtool.c b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
-index 002f75c48..b6bddc025 100644
---- a/kernel/linux/kni/ethtool/igb/igb_ethtool.c
-+++ b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
-@@ -135,6 +135,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
+diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
+index aed14bcc8..7a520ecec 100644
+--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
+@@ -150,6 +150,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
#define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
#endif /* ETHTOOL_TEST */
@@ -47,7 +49,7 @@
static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);
-@@ -259,7 +260,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
+@@ -274,7 +275,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
#endif /* ETH_TP_MDI_X */
return 0;
}
@@ -57,7 +59,7 @@
static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
{
struct igb_adapter *adapter = netdev_priv(netdev);
-@@ -364,6 +367,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
+@@ -379,6 +382,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
clear_bit(__IGB_RESETTING, &adapter->state);
return 0;
}
@@ -65,7 +67,7 @@
static u32 igb_get_link(struct net_device *netdev)
{
-@@ -2737,8 +2741,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
+@@ -2752,8 +2756,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
#endif /* ETHTOOL_GRXRINGS */
static const struct ethtool_ops igb_ethtool_ops = {
@@ -78,11 +80,11 @@
.get_drvinfo = igb_get_drvinfo,
.get_regs_len = igb_get_regs_len,
.get_regs = igb_get_regs,
-diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
-index 6ff941334..cc15ec6ab 100644
---- a/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
-+++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
-@@ -890,8 +890,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
+diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
+index 59415469c..cc3f8ea41 100644
+--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
+@@ -905,8 +905,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
#endif /* CONFIG_DCB */
extern void ixgbe_clean_rx_ring(struct ixgbe_ring *rx_ring);
@@ -93,11 +95,11 @@
extern int ixgbe_write_uc_addr_list(struct ixgbe_adapter *adapter,
struct net_device *netdev, unsigned int vfn);
extern void ixgbe_full_sync_mac_table(struct ixgbe_adapter *adapter);
-diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
-index 44cdc9f20..f2ded19e9 100644
---- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
-+++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
-@@ -158,6 +158,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
+diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
+index cdfcb9596..1296829bc 100644
+--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
+@@ -173,6 +173,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
#define IXGBE_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)
#endif /* ETHTOOL_TEST */
@@ -105,7 +107,7 @@
int ixgbe_get_settings(struct net_device *netdev,
struct ethtool_cmd *ecmd)
{
-@@ -347,7 +348,9 @@ int ixgbe_get_settings(struct net_device *netdev,
+@@ -362,7 +363,9 @@ int ixgbe_get_settings(struct net_device *netdev,
return 0;
}
@@ -115,7 +117,7 @@
static int ixgbe_set_settings(struct net_device *netdev,
struct ethtool_cmd *ecmd)
{
-@@ -391,6 +394,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
+@@ -406,6 +409,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
}
return err;
}
@@ -123,7 +125,7 @@
static void ixgbe_get_pauseparam(struct net_device *netdev,
struct ethtool_pauseparam *pause)
-@@ -2815,8 +2819,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
+@@ -2830,8 +2834,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
#endif /* ETHTOOL_GRXRINGS */
//static
struct ethtool_ops ixgbe_ethtool_ops = {
@@ -136,11 +138,11 @@
.get_drvinfo = ixgbe_get_drvinfo,
.get_regs_len = ixgbe_get_regs_len,
.get_regs = ixgbe_get_regs,
-diff --git a/kernel/linux/kni/kni_ethtool.c b/kernel/linux/kni/kni_ethtool.c
-index a44e7d949..b1c84f8f0 100644
---- a/kernel/linux/kni/kni_ethtool.c
-+++ b/kernel/linux/kni/kni_ethtool.c
-@@ -27,6 +27,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
+diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
+index 0c88589c9..8174e98db 100644
+--- a/lib/librte_eal/linuxapp/kni/kni_ethtool.c
++++ b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
+@@ -46,6 +46,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
priv->lad_dev->ethtool_ops->get_drvinfo(priv->lad_dev, info);
}
@@ -149,7 +151,7 @@
static int
kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
{
-@@ -34,7 +36,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
+@@ -53,7 +55,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
return priv->lad_dev->ethtool_ops->get_settings(priv->lad_dev, ecmd);
}
@@ -160,7 +162,7 @@
static int
kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
{
-@@ -42,6 +47,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
+@@ -61,6 +66,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
return priv->lad_dev->ethtool_ops->set_settings(priv->lad_dev, ecmd);
}
@@ -168,7 +170,7 @@
static void
kni_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
-@@ -190,8 +196,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
+@@ -209,8 +215,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
struct ethtool_ops kni_ethtool_ops = {
.begin = kni_check_if_running,
.get_drvinfo = kni_get_drvinfo,
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (70 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Yongseok Koh
` (54 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Phil Yang; +Cc: Honnappa Nagarahalli, Gavin Hu, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 387058b8788eae484c6a98207870eb73ee04ae97 Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Mon, 8 Oct 2018 17:11:45 +0800
Subject: [PATCH] kni: fix kernel FIFO synchronization
[ upstream commit 711859cd0d076c7abc0c96ce637129a03280645f ]
Adding memory barrier to make sure the values being synced
before updating fifo_write in kni_fifo_put and fifo_read in
kni_fifo_get.
Fixes: 3fc5ca2f6352 ("kni: initial import")
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
.../linuxapp/eal/include/exec-env/rte_kni_common.h | 1 +
lib/librte_eal/linuxapp/kni/kni_fifo.h | 16 ++++++++++------
2 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
index 794cd4f78..966fb9f4e 100644
--- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
+++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
@@ -61,6 +61,7 @@
#ifdef __KERNEL__
#include <linux/if.h>
+#include <asm/barrier.h>
#define RTE_STD_C11
#else
#include <rte_common.h>
diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
index 14f4141f9..e4edab9f3 100644
--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
+++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
@@ -35,7 +35,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
{
uint32_t i = 0;
uint32_t fifo_write = fifo->write;
- uint32_t fifo_read = fifo->read;
+ uint32_t fifo_read = smp_load_acquire(&fifo->read);
uint32_t new_write = fifo_write;
for (i = 0; i < num; i++) {
@@ -46,7 +46,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
fifo->buffer[fifo_write] = data[i];
fifo_write = new_write;
}
- fifo->write = fifo_write;
+ smp_store_release(&fifo->write, fifo_write);
return i;
}
@@ -59,7 +59,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
{
uint32_t i = 0;
uint32_t new_read = fifo->read;
- uint32_t fifo_write = fifo->write;
+ uint32_t fifo_write = smp_load_acquire(&fifo->write);
for (i = 0; i < num; i++) {
if (new_read == fifo_write)
@@ -68,7 +68,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
data[i] = fifo->buffer[new_read];
new_read = (new_read + 1) & (fifo->len - 1);
}
- fifo->read = new_read;
+ smp_store_release(&fifo->read, new_read);
return i;
}
@@ -79,7 +79,9 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
static inline uint32_t
kni_fifo_count(struct rte_kni_fifo *fifo)
{
- return (fifo->len + fifo->write - fifo->read) & (fifo->len - 1);
+ uint32_t fifo_write = smp_load_acquire(&fifo->write);
+ uint32_t fifo_read = smp_load_acquire(&fifo->read);
+ return (fifo->len + fifo_write - fifo_read) & (fifo->len - 1);
}
/**
@@ -88,7 +90,9 @@ kni_fifo_count(struct rte_kni_fifo *fifo)
static inline uint32_t
kni_fifo_free_count(struct rte_kni_fifo *fifo)
{
- return (fifo->read - fifo->write - 1) & (fifo->len - 1);
+ uint32_t fifo_write = smp_load_acquire(&fifo->write);
+ uint32_t fifo_read = smp_load_acquire(&fifo->read);
+ return (fifo_read - fifo_write - 1) & (fifo->len - 1);
}
#endif /* _KNI_FIFO_H_ */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.435397824 -0800
+++ 0073-kni-fix-kernel-FIFO-synchronization.patch 2018-11-29 15:01:45.188968000 -0800
@@ -1,29 +1,42 @@
-From 711859cd0d076c7abc0c96ce637129a03280645f Mon Sep 17 00:00:00 2001
+From 387058b8788eae484c6a98207870eb73ee04ae97 Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Mon, 8 Oct 2018 17:11:45 +0800
Subject: [PATCH] kni: fix kernel FIFO synchronization
+[ upstream commit 711859cd0d076c7abc0c96ce637129a03280645f ]
+
Adding memory barrier to make sure the values being synced
before updating fifo_write in kni_fifo_put and fifo_read in
kni_fifo_get.
Fixes: 3fc5ca2f6352 ("kni: initial import")
-Cc: stable@dpdk.org
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
- kernel/linux/kni/kni_fifo.h | 16 ++++++++++------
.../linuxapp/eal/include/exec-env/rte_kni_common.h | 1 +
+ lib/librte_eal/linuxapp/kni/kni_fifo.h | 16 ++++++++++------
2 files changed, 11 insertions(+), 6 deletions(-)
-diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
-index 9a4762de2..2cb3a4a7b 100644
---- a/kernel/linux/kni/kni_fifo.h
-+++ b/kernel/linux/kni/kni_fifo.h
-@@ -16,7 +16,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
+diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
+index 794cd4f78..966fb9f4e 100644
+--- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
++++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
+@@ -61,6 +61,7 @@
+
+ #ifdef __KERNEL__
+ #include <linux/if.h>
++#include <asm/barrier.h>
+ #define RTE_STD_C11
+ #else
+ #include <rte_common.h>
+diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
+index 14f4141f9..e4edab9f3 100644
+--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
++++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
+@@ -35,7 +35,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
{
uint32_t i = 0;
uint32_t fifo_write = fifo->write;
@@ -32,7 +45,7 @@
uint32_t new_write = fifo_write;
for (i = 0; i < num; i++) {
-@@ -27,7 +27,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
+@@ -46,7 +46,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
fifo->buffer[fifo_write] = data[i];
fifo_write = new_write;
}
@@ -41,7 +54,7 @@
return i;
}
-@@ -40,7 +40,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
+@@ -59,7 +59,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
{
uint32_t i = 0;
uint32_t new_read = fifo->read;
@@ -50,7 +63,7 @@
for (i = 0; i < num; i++) {
if (new_read == fifo_write)
-@@ -49,7 +49,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
+@@ -68,7 +68,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
data[i] = fifo->buffer[new_read];
new_read = (new_read + 1) & (fifo->len - 1);
}
@@ -59,7 +72,7 @@
return i;
}
-@@ -60,7 +60,9 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
+@@ -79,7 +79,9 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
static inline uint32_t
kni_fifo_count(struct rte_kni_fifo *fifo)
{
@@ -70,7 +83,7 @@
}
/**
-@@ -69,7 +71,9 @@ kni_fifo_count(struct rte_kni_fifo *fifo)
+@@ -88,7 +90,9 @@ kni_fifo_count(struct rte_kni_fifo *fifo)
static inline uint32_t
kni_fifo_free_count(struct rte_kni_fifo *fifo)
{
@@ -81,18 +94,6 @@
}
#endif /* _KNI_FIFO_H_ */
-diff --git a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
-index cfa9448bd..58e8533be 100644
---- a/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
-+++ b/lib/librte_eal/linuxapp/eal/include/exec-env/rte_kni_common.h
-@@ -8,6 +8,7 @@
-
- #ifdef __KERNEL__
- #include <linux/if.h>
-+#include <asm/barrier.h>
- #define RTE_STD_C11
- #else
- #include <rte_common.h>
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'kni: fix build on Linux < 3.14' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (71 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-12-20 0:19 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' " Yongseok Koh
` (53 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 26 Oct 2018 23:23:36 +0200
Subject: [PATCH] kni: fix build on Linux < 3.14
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
The atomic functions smp_load_acquire() and smp_store_release()
were introduced in Linux 3.14. Older kernels miss the functions:
kni_fifo.h:19:2: error:
implicit declaration of function ‘smp_load_acquire’
kni_fifo.h:30:2: error:
implicit declaration of function ‘smp_store_release’
The fallback is to drop the atomic barrier, as it was before
the commit below.
Fixes: 711859cd0d07 ("kni: fix kernel FIFO synchronization")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
index e4edab9f3..26208ae44 100644
--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
+++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
@@ -27,6 +27,14 @@
#include <exec-env/rte_kni_common.h>
+/* Skip some memory barriers on Linux < 3.14 */
+#ifndef smp_load_acquire
+#define smp_load_acquire(a) (*(a))
+#endif
+#ifndef smp_store_release
+#define smp_store_release(a, b) *(a) = (b)
+#endif
+
/**
* Adds num elements into the fifo. Return the number actually written
*/
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.485261122 -0800
+++ 0074-kni-fix-build-on-Linux-3.14.patch 2018-11-29 15:01:45.190958000 -0800
@@ -1,4 +1,4 @@
-From c6c36fe28a7bfd8ca21784b2b8b62241f89de06e Mon Sep 17 00:00:00 2001
+From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 26 Oct 2018 23:23:36 +0200
Subject: [PATCH] kni: fix build on Linux < 3.14
@@ -6,6 +6,8 @@
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+[ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
+
The atomic functions smp_load_acquire() and smp_store_release()
were introduced in Linux 3.14. Older kernels miss the functions:
@@ -21,14 +23,14 @@
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
- kernel/linux/kni/kni_fifo.h | 8 ++++++++
+ lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
1 file changed, 8 insertions(+)
-diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
-index 2cb3a4a7b..3f4781c2e 100644
---- a/kernel/linux/kni/kni_fifo.h
-+++ b/kernel/linux/kni/kni_fifo.h
-@@ -8,6 +8,14 @@
+diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
+index e4edab9f3..26208ae44 100644
+--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
++++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
+@@ -27,6 +27,14 @@
#include <exec-env/rte_kni_common.h>
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (72 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Yongseok Koh
` (52 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Phil Yang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c58c45cbdeb845d4b308d9a489e8454fc08744c2 Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Thu, 18 Oct 2018 18:39:25 +0800
Subject: [PATCH] app/testpmd: reserve NUMA node per port and per ring
[ upstream commit a569af2481cd3bd29e5c6d49f2d2f95586d750a8 ]
If user explicitly requested memory to be allocated from a socket via
`port-numa-config` and `ring-numa-config`, and if that socket is
valid, add that socket into socket_ids[] so that mempool allocated for
that socket.
Fixes: dbfb8ec7094c ("app/testpmd: optimize mbuf pool allocation")
Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
app/test-pmd/parameters.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
index 5d51808f5..1dfbcc4f9 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -431,8 +431,11 @@ parse_portnuma_config(const char *q_arg)
}
socket_id = (uint8_t)int_fld[FLD_SOCKET];
if (new_socket_id(socket_id)) {
- print_invalid_socket_id_error();
- return -1;
+ if (num_sockets >= RTE_MAX_NUMA_NODES) {
+ print_invalid_socket_id_error();
+ return -1;
+ }
+ socket_ids[num_sockets++] = socket_id;
}
port_numa[port_id] = socket_id;
}
@@ -488,8 +491,11 @@ parse_ringnuma_config(const char *q_arg)
}
socket_id = (uint8_t)int_fld[FLD_SOCKET];
if (new_socket_id(socket_id)) {
- print_invalid_socket_id_error();
- return -1;
+ if (num_sockets >= RTE_MAX_NUMA_NODES) {
+ print_invalid_socket_id_error();
+ return -1;
+ }
+ socket_ids[num_sockets++] = socket_id;
}
ring_flag = (uint8_t)int_fld[FLD_FLAG];
if ((ring_flag < RX_RING_ONLY) || (ring_flag > RXTX_RING)) {
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.525663110 -0800
+++ 0075-app-testpmd-reserve-NUMA-node-per-port-and-per-ring.patch 2018-11-29 15:01:45.191963000 -0800
@@ -1,15 +1,16 @@
-From a569af2481cd3bd29e5c6d49f2d2f95586d750a8 Mon Sep 17 00:00:00 2001
+From c58c45cbdeb845d4b308d9a489e8454fc08744c2 Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Thu, 18 Oct 2018 18:39:25 +0800
Subject: [PATCH] app/testpmd: reserve NUMA node per port and per ring
+[ upstream commit a569af2481cd3bd29e5c6d49f2d2f95586d750a8 ]
+
If user explicitly requested memory to be allocated from a socket via
`port-numa-config` and `ring-numa-config`, and if that socket is
valid, add that socket into socket_ids[] so that mempool allocated for
that socket.
Fixes: dbfb8ec7094c ("app/testpmd: optimize mbuf pool allocation")
-Cc: stable@dpdk.org
Suggested-by: Ferruh Yigit <ferruh.yigit@intel.com>
Signed-off-by: Phil Yang <phil.yang@arm.com>
@@ -19,10 +20,10 @@
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/app/test-pmd/parameters.c b/app/test-pmd/parameters.c
-index 4a4debb8d..38b419767 100644
+index 5d51808f5..1dfbcc4f9 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
-@@ -416,8 +416,11 @@ parse_portnuma_config(const char *q_arg)
+@@ -431,8 +431,11 @@ parse_portnuma_config(const char *q_arg)
}
socket_id = (uint8_t)int_fld[FLD_SOCKET];
if (new_socket_id(socket_id)) {
@@ -36,7 +37,7 @@
}
port_numa[port_id] = socket_id;
}
-@@ -473,8 +476,11 @@ parse_ringnuma_config(const char *q_arg)
+@@ -488,8 +491,11 @@ parse_ringnuma_config(const char *q_arg)
}
socket_id = (uint8_t)int_fld[FLD_SOCKET];
if (new_socket_id(socket_id)) {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (73 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Yongseok Koh
` (51 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Huaibin Wang; +Cc: Laurent Hardy, Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 1801908e55a4f801a3129d9fb544711d1049cc6e Mon Sep 17 00:00:00 2001
From: Huaibin Wang <huaibin.wang@6wind.com>
Date: Fri, 19 Oct 2018 11:45:21 +0200
Subject: [PATCH] net/i40e: keep promiscuous on if allmulticast is enabled
[ upstream commit 815037b92b3437754183fb256a967a7e82d3820a ]
Promisc should not be disabled if the all multicast mode is enabled.
Patch keeps the promiscuous on if all multicast mode is on, this
behavior is also consistent with the implementation done on ixgbe
pmd.
Signed-off-by: Huaibin Wang <huaibin.wang@6wind.com>
Signed-off-by: Laurent Hardy <laurent.hardy@6wind.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 9d99e841e..5bbc3c44b 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -2419,6 +2419,10 @@ i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
if (status != I40E_SUCCESS)
PMD_DRV_LOG(ERR, "Failed to disable unicast promiscuous");
+ /* must remain in all_multicast mode */
+ if (dev->data->all_multicast == 1)
+ return;
+
status = i40e_aq_set_vsi_multicast_promiscuous(hw, vsi->seid,
false, NULL);
if (status != I40E_SUCCESS)
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.566486364 -0800
+++ 0076-net-i40e-keep-promiscuous-on-if-allmulticast-is-enab.patch 2018-11-29 15:01:45.197958000 -0800
@@ -1,15 +1,15 @@
-From 815037b92b3437754183fb256a967a7e82d3820a Mon Sep 17 00:00:00 2001
+From 1801908e55a4f801a3129d9fb544711d1049cc6e Mon Sep 17 00:00:00 2001
From: Huaibin Wang <huaibin.wang@6wind.com>
Date: Fri, 19 Oct 2018 11:45:21 +0200
Subject: [PATCH] net/i40e: keep promiscuous on if allmulticast is enabled
+[ upstream commit 815037b92b3437754183fb256a967a7e82d3820a ]
+
Promisc should not be disabled if the all multicast mode is enabled.
Patch keeps the promiscuous on if all multicast mode is on, this
behavior is also consistent with the implementation done on ixgbe
pmd.
-Cc: stable@dpdk.org
-
Signed-off-by: Huaibin Wang <huaibin.wang@6wind.com>
Signed-off-by: Laurent Hardy <laurent.hardy@6wind.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -18,10 +18,10 @@
1 file changed, 4 insertions(+)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
-index f7a685c8c..6c503debc 100644
+index 9d99e841e..5bbc3c44b 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
-@@ -2587,6 +2587,10 @@ i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
+@@ -2419,6 +2419,10 @@ i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
if (status != I40E_SUCCESS)
PMD_DRV_LOG(ERR, "Failed to disable unicast promiscuous");
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (74 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Yongseok Koh
` (50 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Haiyue Wang; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 840c84aabf21111c768f0fa0d83219dffcbac872 Mon Sep 17 00:00:00 2001
From: Haiyue Wang <haiyue.wang@intel.com>
Date: Mon, 22 Oct 2018 15:47:41 +0800
Subject: [PATCH] net/i40e: enable loopback function for X722 MAC
[ upstream commit 2c6d4f0338efc2134efc55a574f73ac481b323b4 ]
In FVL, there was an issue and it didn't support the loopback function
before FW 5.0. For FPK (X722) it should work.
So it needs to distinguish between the devices by checking MAC type.
Fixes: 689bba33272d ("i40e: add VEB switching support")
Fixes: bce83974ba2c ("net/i40e: set Tx loopback from PF")
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 4 ++--
drivers/net/i40e/rte_pmd_i40e.c | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 5bbc3c44b..5e2a0f79f 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -5079,7 +5079,7 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
int ret;
/* Use the FW API if FW >= v5.0 */
- if (hw->aq.fw_maj_ver < 5) {
+ if (hw->aq.fw_maj_ver < 5 && hw->mac.type != I40E_MAC_X722) {
PMD_INIT_LOG(ERR, "FW < v5.0, cannot enable loopback");
return;
}
@@ -5350,7 +5350,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
ctxt.flags = I40E_AQ_VSI_TYPE_VF;
/* Use the VEB configuration if FW >= v5.0 */
- if (hw->aq.fw_maj_ver >= 5) {
+ if (hw->aq.fw_maj_ver >= 5 || hw->mac.type == I40E_MAC_X722) {
/* Configure switch ID */
ctxt.info.valid_sections |=
rte_cpu_to_le_16(I40E_AQ_VSI_PROP_SWITCH_VALID);
diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
index 2d25873d6..5771645c0 100644
--- a/drivers/net/i40e/rte_pmd_i40e.c
+++ b/drivers/net/i40e/rte_pmd_i40e.c
@@ -367,7 +367,7 @@ i40e_vsi_set_tx_loopback(struct i40e_vsi *vsi, uint8_t on)
hw = I40E_VSI_TO_HW(vsi);
/* Use the FW API if FW >= v5.0 */
- if (hw->aq.fw_maj_ver < 5) {
+ if (hw->aq.fw_maj_ver < 5 && hw->mac.type != I40E_MAC_X722) {
PMD_INIT_LOG(ERR, "FW < v5.0, cannot enable loopback");
return -ENOTSUP;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.616091759 -0800
+++ 0077-net-i40e-enable-loopback-function-for-X722-MAC.patch 2018-11-29 15:01:45.205962000 -0800
@@ -1,8 +1,10 @@
-From 2c6d4f0338efc2134efc55a574f73ac481b323b4 Mon Sep 17 00:00:00 2001
+From 840c84aabf21111c768f0fa0d83219dffcbac872 Mon Sep 17 00:00:00 2001
From: Haiyue Wang <haiyue.wang@intel.com>
Date: Mon, 22 Oct 2018 15:47:41 +0800
Subject: [PATCH] net/i40e: enable loopback function for X722 MAC
+[ upstream commit 2c6d4f0338efc2134efc55a574f73ac481b323b4 ]
+
In FVL, there was an issue and it didn't support the loopback function
before FW 5.0. For FPK (X722) it should work.
@@ -10,7 +12,6 @@
Fixes: 689bba33272d ("i40e: add VEB switching support")
Fixes: bce83974ba2c ("net/i40e: set Tx loopback from PF")
-Cc: stable@dpdk.org
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -20,10 +21,10 @@
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
-index 48aca1aca..1c779068a 100644
+index 5bbc3c44b..5e2a0f79f 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
-@@ -5372,7 +5372,7 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
+@@ -5079,7 +5079,7 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
int ret;
/* Use the FW API if FW >= v5.0 */
@@ -32,7 +33,7 @@
PMD_INIT_LOG(ERR, "FW < v5.0, cannot enable loopback");
return;
}
-@@ -5643,7 +5643,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
+@@ -5350,7 +5350,7 @@ i40e_vsi_setup(struct i40e_pf *pf,
ctxt.flags = I40E_AQ_VSI_TYPE_VF;
/* Use the VEB configuration if FW >= v5.0 */
@@ -42,10 +43,10 @@
ctxt.info.valid_sections |=
rte_cpu_to_le_16(I40E_AQ_VSI_PROP_SWITCH_VALID);
diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
-index bba62b1c5..7ce5d02fa 100644
+index 2d25873d6..5771645c0 100644
--- a/drivers/net/i40e/rte_pmd_i40e.c
+++ b/drivers/net/i40e/rte_pmd_i40e.c
-@@ -338,7 +338,7 @@ i40e_vsi_set_tx_loopback(struct i40e_vsi *vsi, uint8_t on)
+@@ -367,7 +367,7 @@ i40e_vsi_set_tx_loopback(struct i40e_vsi *vsi, uint8_t on)
hw = I40E_VSI_TO_HW(vsi);
/* Use the FW API if FW >= v5.0 */
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e: update Tx offload mask' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (75 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbe: " Yongseok Koh
` (49 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Beilei Xing; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8a28a0cd8bbbe3f738363c548764c4c3169f3832 Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Tue, 23 Oct 2018 14:14:31 +0800
Subject: [PATCH] net/i40e: update Tx offload mask
[ upstream commit e4845bb4a68513c477dd35fcdcb086681788be7d ]
Tx offload mask is updated in following commit:
commit 1037ed842c37 ("mbuf: fix Tx offload mask").
Currently, the new added offload flags are not supported in PMD
and application will fail to call PMD transmit prepare function.
This patch updates PMD Tx offload mask.
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/i40e/i40e_rxtx.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index 078b405ab..ce6a30507 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -87,6 +87,10 @@
PKT_TX_OUTER_IP_CKSUM)
#define I40E_TX_OFFLOAD_MASK ( \
+ PKT_TX_OUTER_IPV4 | \
+ PKT_TX_OUTER_IPV6 | \
+ PKT_TX_IPV4 | \
+ PKT_TX_IPV6 | \
PKT_TX_IP_CKSUM | \
PKT_TX_L4_MASK | \
PKT_TX_OUTER_IP_CKSUM | \
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.665150093 -0800
+++ 0078-net-i40e-update-Tx-offload-mask.patch 2018-11-29 15:01:45.208962000 -0800
@@ -1,8 +1,10 @@
-From e4845bb4a68513c477dd35fcdcb086681788be7d Mon Sep 17 00:00:00 2001
+From 8a28a0cd8bbbe3f738363c548764c4c3169f3832 Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Tue, 23 Oct 2018 14:14:31 +0800
Subject: [PATCH] net/i40e: update Tx offload mask
+[ upstream commit e4845bb4a68513c477dd35fcdcb086681788be7d ]
+
Tx offload mask is updated in following commit:
commit 1037ed842c37 ("mbuf: fix Tx offload mask").
@@ -10,8 +12,6 @@
and application will fail to call PMD transmit prepare function.
This patch updates PMD Tx offload mask.
-Cc: stable@dpdk.org
-
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
@@ -19,10 +19,10 @@
1 file changed, 4 insertions(+)
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
-index b15dd67ad..8bfa25178 100644
+index 078b405ab..ce6a30507 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
-@@ -55,6 +55,10 @@
+@@ -87,6 +87,10 @@
PKT_TX_OUTER_IP_CKSUM)
#define I40E_TX_OFFLOAD_MASK ( \
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/ixgbe: update Tx offload mask' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (76 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Yongseok Koh
` (48 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Zhirun Yan; +Cc: Xiaolong Ye, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 3de3ca574142f0b3f63cf02e7836ba02fb265531 Mon Sep 17 00:00:00 2001
From: Zhirun Yan <zhirun.yan@intel.com>
Date: Thu, 25 Oct 2018 14:58:40 +0000
Subject: [PATCH] net/ixgbe: update Tx offload mask
[ upstream commit aa1e69aebb12a57038f7ed5664605b7bcccbbe20 ]
Tx offload mask is updated in following commit: commit 1037ed842c37
("mbuf: fix Tx offload mask"). Currently, the new added offload
flags are not supported in PMD and application will fail to call
PMD transmit prepare function.
This patch updates IXGBE_TX_OFFFLOAD_MASK.
Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
---
drivers/net/ixgbe/ixgbe_rxtx.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index 9bc846245..651b5e8de 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -87,6 +87,10 @@
#endif
/* Bit Mask to indicate what bits required for building TX context */
#define IXGBE_TX_OFFLOAD_MASK ( \
+ PKT_TX_OUTER_IPV6 | \
+ PKT_TX_OUTER_IPV4 | \
+ PKT_TX_IPV6 | \
+ PKT_TX_IPV4 | \
PKT_TX_VLAN_PKT | \
PKT_TX_IP_CKSUM | \
PKT_TX_L4_MASK | \
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.708373549 -0800
+++ 0079-net-ixgbe-update-Tx-offload-mask.patch 2018-11-29 15:01:45.214959000 -0800
@@ -1,8 +1,10 @@
-From aa1e69aebb12a57038f7ed5664605b7bcccbbe20 Mon Sep 17 00:00:00 2001
+From 3de3ca574142f0b3f63cf02e7836ba02fb265531 Mon Sep 17 00:00:00 2001
From: Zhirun Yan <zhirun.yan@intel.com>
Date: Thu, 25 Oct 2018 14:58:40 +0000
Subject: [PATCH] net/ixgbe: update Tx offload mask
+[ upstream commit aa1e69aebb12a57038f7ed5664605b7bcccbbe20 ]
+
Tx offload mask is updated in following commit: commit 1037ed842c37
("mbuf: fix Tx offload mask"). Currently, the new added offload
flags are not supported in PMD and application will fail to call
@@ -11,7 +13,6 @@
This patch updates IXGBE_TX_OFFFLOAD_MASK.
Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
-Cc: stable@dpdk.org
Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
Reviewed-by: Xiaolong Ye <xiaolong.ye@intel.com>
@@ -20,10 +21,10 @@
1 file changed, 4 insertions(+)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
-index 9e2fbba3e..2f0262ae1 100644
+index 9bc846245..651b5e8de 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
-@@ -58,6 +58,10 @@
+@@ -87,6 +87,10 @@
#endif
/* Bit Mask to indicate what bits required for building TX context */
#define IXGBE_TX_OFFLOAD_MASK ( \
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (77 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbe: " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Yongseok Koh
` (47 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Stewart Allen; +Cc: Michal Krawczyk, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From d481a17317f412ab473fe80c54ddf371bbfe063e Mon Sep 17 00:00:00 2001
From: Stewart Allen <allenste@amazon.com>
Date: Thu, 25 Oct 2018 19:59:22 +0200
Subject: [PATCH] net/ena: fix passing RSS hash to mbuf
[ upstream commit e5df9f33db00eb9d322abaefff30da74fd0e625d ]
The driver was passing to the mbuf Rx queue ID instead of hash received
from the device. Now, the RSS hash from the Rx descriptor is being set.
Fixes: 1173fca25af9 ("ena: add polling-mode driver")
Signed-off-by: Stewart Allen <allenste@amazon.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
---
drivers/net/ena/ena_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index 4e5265679..6b96f4042 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1573,7 +1573,7 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
/* fill mbuf attributes if any */
ena_rx_mbuf_prepare(mbuf_head, &ena_rx_ctx);
- mbuf_head->hash.rss = (uint32_t)rx_ring->id;
+ mbuf_head->hash.rss = ena_rx_ctx.hash;
/* pass to DPDK application head mbuf */
rx_pkts[recv_idx] = mbuf_head;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.751402615 -0800
+++ 0080-net-ena-fix-passing-RSS-hash-to-mbuf.patch 2018-11-29 15:01:45.216964000 -0800
@@ -1,13 +1,14 @@
-From e5df9f33db00eb9d322abaefff30da74fd0e625d Mon Sep 17 00:00:00 2001
+From d481a17317f412ab473fe80c54ddf371bbfe063e Mon Sep 17 00:00:00 2001
From: Stewart Allen <allenste@amazon.com>
Date: Thu, 25 Oct 2018 19:59:22 +0200
Subject: [PATCH] net/ena: fix passing RSS hash to mbuf
+[ upstream commit e5df9f33db00eb9d322abaefff30da74fd0e625d ]
+
The driver was passing to the mbuf Rx queue ID instead of hash received
from the device. Now, the RSS hash from the Rx descriptor is being set.
Fixes: 1173fca25af9 ("ena: add polling-mode driver")
-Cc: stable@dpdk.org
Signed-off-by: Stewart Allen <allenste@amazon.com>
Acked-by: Michal Krawczyk <mk@semihalf.com>
@@ -16,10 +17,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
-index 186ab0e6b..191153a8f 100644
+index 4e5265679..6b96f4042 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
-@@ -1910,7 +1910,7 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
+@@ -1573,7 +1573,7 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
/* fill mbuf attributes if any */
ena_rx_mbuf_prepare(mbuf_head, &ena_rx_ctx);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: fix typo in testpmd guide' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (78 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'ip_frag: fix overflow in key comparison' " Yongseok Koh
` (46 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Yong Wang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From ae799a4f7c354618768d6e4fd82fc90a321bddc2 Mon Sep 17 00:00:00 2001
From: Yong Wang <wang.yong19@zte.com.cn>
Date: Fri, 26 Oct 2018 06:27:03 -0400
Subject: [PATCH] doc: fix typo in testpmd guide
[ upstream commit 153ccd050c8de4e9cc1589daee4d136434a0be61 ]
The forwarding mode mac_swap should be macswap in testpmd guide.
Fixes: e76d7a768ce0 ("doc: fix syntax in testpmd user guide")
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/testpmd_app_ug/run_app.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst
index 4c0d2cede..e50281376 100644
--- a/doc/guides/testpmd_app_ug/run_app.rst
+++ b/doc/guides/testpmd_app_ug/run_app.rst
@@ -355,7 +355,7 @@ The commandline options are:
io (the default)
mac
- mac_swap
+ macswap
flowgen
rxonly
txonly
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.803205301 -0800
+++ 0081-doc-fix-typo-in-testpmd-guide.patch 2018-11-29 15:01:45.218958000 -0800
@@ -1,12 +1,13 @@
-From 153ccd050c8de4e9cc1589daee4d136434a0be61 Mon Sep 17 00:00:00 2001
+From ae799a4f7c354618768d6e4fd82fc90a321bddc2 Mon Sep 17 00:00:00 2001
From: Yong Wang <wang.yong19@zte.com.cn>
Date: Fri, 26 Oct 2018 06:27:03 -0400
Subject: [PATCH] doc: fix typo in testpmd guide
+[ upstream commit 153ccd050c8de4e9cc1589daee4d136434a0be61 ]
+
The forwarding mode mac_swap should be macswap in testpmd guide.
Fixes: e76d7a768ce0 ("doc: fix syntax in testpmd user guide")
-Cc: stable@dpdk.org
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -15,10 +16,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/testpmd_app_ug/run_app.rst b/doc/guides/testpmd_app_ug/run_app.rst
-index 21924c359..851df65da 100644
+index 4c0d2cede..e50281376 100644
--- a/doc/guides/testpmd_app_ug/run_app.rst
+++ b/doc/guides/testpmd_app_ug/run_app.rst
-@@ -332,7 +332,7 @@ The commandline options are:
+@@ -355,7 +355,7 @@ The commandline options are:
io (the default)
mac
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'ip_frag: fix overflow in key comparison' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (79 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: support strlcpy function' " Yongseok Koh
` (45 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Li Han; +Cc: Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 2a4584dd9495b6213312930b29f6d2996771a8ce Mon Sep 17 00:00:00 2001
From: Li Han <han.li1@zte.com.cn>
Date: Wed, 1 Aug 2018 22:01:03 -0400
Subject: [PATCH] ip_frag: fix overflow in key comparison
[ upstream commit 8721e07478c6edc9565645047742f79c654cfd1b ]
in struct ip_frag_key,src_dst[] type is uint64_t.
but "val" which to store the calc restult ,type is uint32_t.
we may lost high 32 bit key. and function return value is int,
but it won't return < 0.
Signed-off-by: Li Han <han.li1@zte.com.cn>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_ip_frag/ip_frag_common.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/librte_ip_frag/ip_frag_common.h b/lib/librte_ip_frag/ip_frag_common.h
index 9f5619651..472185f6b 100644
--- a/lib/librte_ip_frag/ip_frag_common.h
+++ b/lib/librte_ip_frag/ip_frag_common.h
@@ -98,10 +98,11 @@ ip_frag_key_invalidate(struct ip_frag_key * key)
}
/* compare two keys */
-static inline int
+static inline uint64_t
ip_frag_key_cmp(const struct ip_frag_key * k1, const struct ip_frag_key * k2)
{
- uint32_t i, val;
+ uint32_t i;
+ uint64_t val;
val = k1->id ^ k2->id;
for (i = 0; i < k1->key_len; i++)
val |= k1->src_dst[i] ^ k2->src_dst[i];
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.843449420 -0800
+++ 0082-ip_frag-fix-overflow-in-key-comparison.patch 2018-11-29 15:01:45.226961000 -0800
@@ -1,8 +1,10 @@
-From 8721e07478c6edc9565645047742f79c654cfd1b Mon Sep 17 00:00:00 2001
+From 2a4584dd9495b6213312930b29f6d2996771a8ce Mon Sep 17 00:00:00 2001
From: Li Han <han.li1@zte.com.cn>
Date: Wed, 1 Aug 2018 22:01:03 -0400
Subject: [PATCH] ip_frag: fix overflow in key comparison
+[ upstream commit 8721e07478c6edc9565645047742f79c654cfd1b ]
+
in struct ip_frag_key,src_dst[] type is uint64_t.
but "val" which to store the calc restult ,type is uint32_t.
we may lost high 32 bit key. and function return value is int,
@@ -15,10 +17,10 @@
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/lib/librte_ip_frag/ip_frag_common.h b/lib/librte_ip_frag/ip_frag_common.h
-index 0fdcc7d0f..0f62e2e16 100644
+index 9f5619651..472185f6b 100644
--- a/lib/librte_ip_frag/ip_frag_common.h
+++ b/lib/librte_ip_frag/ip_frag_common.h
-@@ -75,10 +75,11 @@ ip_frag_key_invalidate(struct ip_frag_key * key)
+@@ -98,10 +98,11 @@ ip_frag_key_invalidate(struct ip_frag_key * key)
}
/* compare two keys */
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: support strlcpy function' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (80 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'ip_frag: fix overflow in key comparison' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal/linux: fix memory leak of logid' " Yongseok Koh
` (44 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Bruce Richardson; +Cc: Stephen Hemminger, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 7f0e34f991b28cb6d4e37bbc2fd3350a9f6464a4 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 12 Mar 2018 11:32:59 +0000
Subject: [PATCH] eal: support strlcpy function
[ backported from upstream commit 5364de644a4ba99497edbed05bff942b2b461413 ]
The strncpy function is error prone for doing "safe" string copies, so
we generally try to use "snprintf" instead in the code. The function
"strlcpy" is a better alternative, since it better conveys the
intention of the programmer, and doesn't suffer from the non-null
terminating behaviour of it's n'ed brethern.
The downside of this function is that it is not available by default
on linux, though standard in the BSD's. It is available on most
distros by installing "libbsd" package.
This patch therefore provides the following in rte_string_fns.h to ensure
that strlcpy is available there:
* for BSD, include string.h as normal
* if RTE_USE_LIBBSD is set, include <bsd/string.h>
* if not set, fallback to snprintf for strlcpy
Using make build system, the RTE_USE_LIBBSD is a hard-coded value to "n",
but when using meson, it's automatically set based on what is available
on the platform.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
---
config/common_base | 1 +
devtools/cocci/strlcpy.cocci | 8 +++++++
lib/librte_eal/common/include/rte_string_fns.h | 31 ++++++++++++++++++++++++++
mk/rte.app.mk | 3 +++
4 files changed, 43 insertions(+)
create mode 100644 devtools/cocci/strlcpy.cocci
diff --git a/config/common_base b/config/common_base
index 18ff43c4f..7b4792293 100644
--- a/config/common_base
+++ b/config/common_base
@@ -105,6 +105,7 @@ CONFIG_RTE_EAL_IGB_UIO=n
CONFIG_RTE_EAL_VFIO=n
CONFIG_RTE_MALLOC_DEBUG=n
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
+CONFIG_RTE_USE_LIBBSD=n
#
# Recognize/ignore the AVX/AVX512 CPU flags for performance/power testing.
diff --git a/devtools/cocci/strlcpy.cocci b/devtools/cocci/strlcpy.cocci
new file mode 100644
index 000000000..335e27128
--- /dev/null
+++ b/devtools/cocci/strlcpy.cocci
@@ -0,0 +1,8 @@
+@use_strlcpy@
+identifier src, dst;
+expression size;
+@@
+(
+- snprintf(dst, size, "%s", src)
++ strlcpy(dst, src, size)
+)
diff --git a/lib/librte_eal/common/include/rte_string_fns.h b/lib/librte_eal/common/include/rte_string_fns.h
index cfca2f8df..7c0ab15a3 100644
--- a/lib/librte_eal/common/include/rte_string_fns.h
+++ b/lib/librte_eal/common/include/rte_string_fns.h
@@ -44,6 +44,8 @@
extern "C" {
#endif
+#include <stdio.h>
+
/**
* Takes string "string" parameter and splits it at character "delim"
* up to maxtokens-1 times - to give "maxtokens" resulting tokens. Like
@@ -74,6 +76,35 @@ int
rte_strsplit(char *string, int stringlen,
char **tokens, int maxtokens, char delim);
+/**
+ * @internal
+ * DPDK-specific version of strlcpy for systems without
+ * libc or libbsd copies of the function
+ */
+static inline size_t
+rte_strlcpy(char *dst, const char *src, size_t size)
+{
+ return snprintf(dst, size, "%s", src);
+}
+
+/* pull in a strlcpy function */
+#ifdef RTE_EXEC_ENV_BSDAPP
+#include <string.h>
+#ifndef __BSD_VISIBLE /* non-standard functions are hidden */
+#define strlcpy(dst, src, size) rte_strlcpy(dst, src, size)
+#endif
+
+
+#else /* non-BSD platforms */
+#ifdef RTE_USE_LIBBSD
+#include <bsd/string.h>
+
+#else /* no BSD header files, create own */
+#define strlcpy(dst, src, size) rte_strlcpy(dst, src, size)
+
+#endif /* RTE_USE_LIBBSD */
+#endif /* BSDAPP */
+
#ifdef __cplusplus
}
#endif
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
index 6a6a7452e..98ab58de0 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
@@ -218,6 +218,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrt
ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP)$(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),yy)
_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lnuma
endif
+ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP)$(CONFIG_RTE_USE_LIBBSD),yy)
+_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lbsd
+endif
_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lm
_LDLIBS-$(CONFIG_RTE_LIBRTE_SCHED) += -lrt
_LDLIBS-$(CONFIG_RTE_LIBRTE_MEMBER) += -lm
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.885144145 -0800
+++ 0083-eal-support-strlcpy-function.patch 2018-11-29 15:01:45.230957000 -0800
@@ -1,8 +1,10 @@
-From 5364de644a4ba99497edbed05bff942b2b461413 Mon Sep 17 00:00:00 2001
+From 7f0e34f991b28cb6d4e37bbc2fd3350a9f6464a4 Mon Sep 17 00:00:00 2001
From: Bruce Richardson <bruce.richardson@intel.com>
Date: Mon, 12 Mar 2018 11:32:59 +0000
Subject: [PATCH] eal: support strlcpy function
+[ backported from upstream commit 5364de644a4ba99497edbed05bff942b2b461413 ]
+
The strncpy function is error prone for doing "safe" string copies, so
we generally try to use "snprintf" instead in the code. The function
"strlcpy" is a better alternative, since it better conveys the
@@ -27,43 +29,24 @@
Reviewed-by: Stephen Hemminger <stephen@networkplumber.org>
---
config/common_base | 1 +
- config/meson.build | 7 ++++++
devtools/cocci/strlcpy.cocci | 8 +++++++
lib/librte_eal/common/include/rte_string_fns.h | 31 ++++++++++++++++++++++++++
mk/rte.app.mk | 3 +++
- 5 files changed, 50 insertions(+)
+ 4 files changed, 43 insertions(+)
create mode 100644 devtools/cocci/strlcpy.cocci
diff --git a/config/common_base b/config/common_base
-index 348228b29..c09c7cf88 100644
+index 18ff43c4f..7b4792293 100644
--- a/config/common_base
+++ b/config/common_base
-@@ -76,6 +76,7 @@ CONFIG_RTE_EAL_VFIO=n
- CONFIG_RTE_MAX_VFIO_GROUPS=64
+@@ -105,6 +105,7 @@ CONFIG_RTE_EAL_IGB_UIO=n
+ CONFIG_RTE_EAL_VFIO=n
CONFIG_RTE_MALLOC_DEBUG=n
CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES=n
+CONFIG_RTE_USE_LIBBSD=n
#
# Recognize/ignore the AVX/AVX512 CPU flags for performance/power testing.
-diff --git a/config/meson.build b/config/meson.build
-index f8c67578d..77af5d897 100644
---- a/config/meson.build
-+++ b/config/meson.build
-@@ -38,6 +38,13 @@ if numa_dep.found() and cc.has_header('numaif.h')
- dpdk_extra_ldflags += '-lnuma'
- endif
-
-+# check for strlcpy
-+if host_machine.system() == 'linux' and cc.find_library('bsd', required: false).found()
-+ dpdk_conf.set('RTE_USE_LIBBSD', 1)
-+ add_project_link_arguments('-lbsd', language: 'c')
-+ dpdk_extra_ldflags += '-lbsd'
-+endif
-+
- # add -include rte_config to cflags
- add_project_arguments('-include', 'rte_config.h', language: 'c')
-
diff --git a/devtools/cocci/strlcpy.cocci b/devtools/cocci/strlcpy.cocci
new file mode 100644
index 000000000..335e27128
@@ -79,10 +62,10 @@
++ strlcpy(dst, src, size)
+)
diff --git a/lib/librte_eal/common/include/rte_string_fns.h b/lib/librte_eal/common/include/rte_string_fns.h
-index e97047a47..fcbb42e00 100644
+index cfca2f8df..7c0ab15a3 100644
--- a/lib/librte_eal/common/include/rte_string_fns.h
+++ b/lib/librte_eal/common/include/rte_string_fns.h
-@@ -15,6 +15,8 @@
+@@ -44,6 +44,8 @@
extern "C" {
#endif
@@ -91,7 +74,7 @@
/**
* Takes string "string" parameter and splits it at character "delim"
* up to maxtokens-1 times - to give "maxtokens" resulting tokens. Like
-@@ -45,6 +47,35 @@ int
+@@ -74,6 +76,35 @@ int
rte_strsplit(char *string, int stringlen,
char **tokens, int maxtokens, char delim);
@@ -128,10 +111,10 @@
}
#endif
diff --git a/mk/rte.app.mk b/mk/rte.app.mk
-index a9b4b0502..228dc19a7 100644
+index 6a6a7452e..98ab58de0 100644
--- a/mk/rte.app.mk
+++ b/mk/rte.app.mk
-@@ -255,6 +255,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrt
+@@ -218,6 +218,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lrt
ifeq ($(CONFIG_RTE_EXEC_ENV_LINUXAPP)$(CONFIG_RTE_EAL_NUMA_AWARE_HUGEPAGES),yy)
_LDLIBS-$(CONFIG_RTE_LIBRTE_EAL) += -lnuma
endif
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal/linux: fix memory leak of logid' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (81 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: support strlcpy function' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix PCI config error handling' " Yongseok Koh
` (43 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Ziye Yang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From f6f4b11b7fbc102ecce3a855cfc4ad252c62743c Mon Sep 17 00:00:00 2001
From: Ziye Yang <ziye.yang@intel.com>
Date: Wed, 12 Sep 2018 09:31:50 +0800
Subject: [PATCH] eal/linux: fix memory leak of logid
[ upstream commit e4f2c1421d8036a4778c43bf25201ef5fb37ad6f ]
This patch is used to fix the memory leak issue of logid.
We use the ASAN test in SPDK when integrating DPDK and
find this memory leak issue.
Fixes: d8a2bc71dfc2 ("log: remove app path from syslog id")
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/linuxapp/eal/eal.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
index 229eec9f1..e6a733138 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -743,7 +743,8 @@ rte_eal_init(int argc, char **argv)
int i, fctret, ret;
pthread_t thread_id;
static rte_atomic32_t run_once = RTE_ATOMIC32_INIT(0);
- const char *logid;
+ const char *p;
+ static char logid[PATH_MAX];
char cpuset[RTE_CPU_AFFINITY_STR_LEN];
char thread_name[RTE_MAX_THREAD_NAME_LEN];
@@ -760,9 +761,8 @@ rte_eal_init(int argc, char **argv)
return -1;
}
- logid = strrchr(argv[0], '/');
- logid = strdup(logid ? logid + 1: argv[0]);
-
+ p = strrchr(argv[0], '/');
+ strlcpy(logid, p ? p + 1 : argv[0], sizeof(logid));
thread_id = pthread_self();
eal_reset_internal_config(&internal_config);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.930326659 -0800
+++ 0084-eal-linux-fix-memory-leak-of-logid.patch 2018-11-29 15:01:45.232961000 -0800
@@ -1,14 +1,15 @@
-From e4f2c1421d8036a4778c43bf25201ef5fb37ad6f Mon Sep 17 00:00:00 2001
+From f6f4b11b7fbc102ecce3a855cfc4ad252c62743c Mon Sep 17 00:00:00 2001
From: Ziye Yang <ziye.yang@intel.com>
Date: Wed, 12 Sep 2018 09:31:50 +0800
Subject: [PATCH] eal/linux: fix memory leak of logid
+[ upstream commit e4f2c1421d8036a4778c43bf25201ef5fb37ad6f ]
+
This patch is used to fix the memory leak issue of logid.
We use the ASAN test in SPDK when integrating DPDK and
find this memory leak issue.
Fixes: d8a2bc71dfc2 ("log: remove app path from syslog id")
-Cc: stable@dpdk.org
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -17,10 +18,10 @@
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal.c b/lib/librte_eal/linuxapp/eal/eal.c
-index 7b11375f4..67116eee2 100644
+index 229eec9f1..e6a733138 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
-@@ -825,7 +825,8 @@ rte_eal_init(int argc, char **argv)
+@@ -743,7 +743,8 @@ rte_eal_init(int argc, char **argv)
int i, fctret, ret;
pthread_t thread_id;
static rte_atomic32_t run_once = RTE_ATOMIC32_INIT(0);
@@ -30,7 +31,7 @@
char cpuset[RTE_CPU_AFFINITY_STR_LEN];
char thread_name[RTE_MAX_THREAD_NAME_LEN];
-@@ -842,9 +843,8 @@ rte_eal_init(int argc, char **argv)
+@@ -760,9 +761,8 @@ rte_eal_init(int argc, char **argv)
return -1;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/virtio: fix PCI config error handling' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (82 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal/linux: fix memory leak of logid' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-30 15:23 ` Tiwei Bie
2018-11-29 23:11 ` [dpdk-stable] patch 'bus/pci: compare kernel driver instead of interrupt handler' " Yongseok Koh
` (42 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Brian Russell; +Cc: Luca Boccassi, Tiwei Bie, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From b5196f660ce80df58babdd718f26ff980a841513 Mon Sep 17 00:00:00 2001
From: Brian Russell <brussell@brocade.com>
Date: Tue, 28 Aug 2018 11:12:40 +0100
Subject: [PATCH] net/virtio: fix PCI config error handling
[ upstream commit 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd ]
In virtio_read_caps and vtpci_msix_detect, rte_pci_read_config returns
the number of bytes read from PCI config or < 0 on error.
If less than the expected number of bytes are read then log the
failure and return rather than carrying on with garbage.
Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
Signed-off-by: Brian Russell <brussell@brocade.com>
Signed-off-by: Luca Boccassi <bluca@debian.org>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
drivers/net/virtio/virtio_pci.c | 65 ++++++++++++++++++++++++++++++-----------
1 file changed, 48 insertions(+), 17 deletions(-)
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
index 9574498fb..89986c335 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
@@ -596,16 +596,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
}
ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
- if (ret < 0) {
- PMD_INIT_LOG(DEBUG, "failed to read pci capability list");
+ if (ret != 1) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci capability list, ret %d", ret);
return -1;
}
while (pos) {
- ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
- if (ret < 0) {
- PMD_INIT_LOG(ERR,
- "failed to read pci cap at pos: %x", pos);
+ ret = rte_pci_read_config(dev, &cap, 2, pos);
+ if (ret != 2) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci cap at pos: %x ret %d",
+ pos, ret);
break;
}
@@ -615,7 +617,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
* 1st byte is cap ID; 2nd byte is the position of next
* cap; next two bytes are the flags.
*/
- uint16_t flags = ((uint16_t *)&cap)[1];
+ uint16_t flags;
+
+ ret = rte_pci_read_config(dev, &flags, sizeof(flags),
+ pos + 2);
+ if (ret != sizeof(flags)) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci cap at pos:"
+ " %x ret %d", pos + 2, ret);
+ break;
+ }
if (flags & PCI_MSIX_ENABLE)
hw->use_msix = VIRTIO_MSIX_ENABLED;
@@ -630,6 +641,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
goto next;
}
+ ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
+ if (ret != sizeof(cap)) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci cap at pos: %x ret %d",
+ pos, ret);
+ break;
+ }
+
PMD_INIT_LOG(DEBUG,
"[%2x] cfg type: %u, bar: %u, offset: %04x, len: %u",
pos, cap.cfg_type, cap.bar, cap.offset, cap.length);
@@ -718,25 +737,37 @@ enum virtio_msix_status
vtpci_msix_detect(struct rte_pci_device *dev)
{
uint8_t pos;
- struct virtio_pci_cap cap;
int ret;
ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
- if (ret < 0) {
- PMD_INIT_LOG(DEBUG, "failed to read pci capability list");
+ if (ret != 1) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci capability list, ret %d", ret);
return VIRTIO_MSIX_NONE;
}
while (pos) {
- ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
- if (ret < 0) {
- PMD_INIT_LOG(ERR,
- "failed to read pci cap at pos: %x", pos);
+ uint8_t cap[2];
+
+ ret = rte_pci_read_config(dev, cap, sizeof(cap), pos);
+ if (ret != sizeof(cap)) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci cap at pos: %x ret %d",
+ pos, ret);
break;
}
- if (cap.cap_vndr == PCI_CAP_ID_MSIX) {
- uint16_t flags = ((uint16_t *)&cap)[1];
+ if (cap[0] == PCI_CAP_ID_MSIX) {
+ uint16_t flags;
+
+ ret = rte_pci_read_config(dev, &flags, sizeof(flags),
+ pos + sizeof(cap));
+ if (ret != sizeof(flags)) {
+ PMD_INIT_LOG(DEBUG,
+ "failed to read pci cap at pos:"
+ " %x ret %d", pos + 2, ret);
+ break;
+ }
if (flags & PCI_MSIX_ENABLE)
return VIRTIO_MSIX_ENABLED;
@@ -744,7 +775,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
return VIRTIO_MSIX_DISABLED;
}
- pos = cap.cap_next;
+ pos = cap[1];
}
return VIRTIO_MSIX_NONE;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:48.971545454 -0800
+++ 0085-net-virtio-fix-PCI-config-error-handling.patch 2018-11-29 15:01:45.234959000 -0800
@@ -1,15 +1,16 @@
-From 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd Mon Sep 17 00:00:00 2001
+From b5196f660ce80df58babdd718f26ff980a841513 Mon Sep 17 00:00:00 2001
From: Brian Russell <brussell@brocade.com>
Date: Tue, 28 Aug 2018 11:12:40 +0100
Subject: [PATCH] net/virtio: fix PCI config error handling
+[ upstream commit 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd ]
+
In virtio_read_caps and vtpci_msix_detect, rte_pci_read_config returns
the number of bytes read from PCI config or < 0 on error.
If less than the expected number of bytes are read then log the
failure and return rather than carrying on with garbage.
Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
-Cc: stable@dpdk.org
Signed-off-by: Brian Russell <brussell@brocade.com>
Signed-off-by: Luca Boccassi <bluca@debian.org>
@@ -19,10 +20,10 @@
1 file changed, 48 insertions(+), 17 deletions(-)
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
-index 6bd22e54a..b6a3c80b4 100644
+index 9574498fb..89986c335 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
-@@ -567,16 +567,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
+@@ -596,16 +596,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
}
ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
@@ -47,7 +48,7 @@
break;
}
-@@ -586,7 +588,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
+@@ -615,7 +617,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
* 1st byte is cap ID; 2nd byte is the position of next
* cap; next two bytes are the flags.
*/
@@ -65,7 +66,7 @@
if (flags & PCI_MSIX_ENABLE)
hw->use_msix = VIRTIO_MSIX_ENABLED;
-@@ -601,6 +612,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
+@@ -630,6 +641,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
goto next;
}
@@ -80,7 +81,7 @@
PMD_INIT_LOG(DEBUG,
"[%2x] cfg type: %u, bar: %u, offset: %04x, len: %u",
pos, cap.cfg_type, cap.bar, cap.offset, cap.length);
-@@ -689,25 +708,37 @@ enum virtio_msix_status
+@@ -718,25 +737,37 @@ enum virtio_msix_status
vtpci_msix_detect(struct rte_pci_device *dev)
{
uint8_t pos;
@@ -127,7 +128,7 @@
if (flags & PCI_MSIX_ENABLE)
return VIRTIO_MSIX_ENABLED;
-@@ -715,7 +746,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
+@@ -744,7 +775,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
return VIRTIO_MSIX_DISABLED;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'bus/pci: compare kernel driver instead of interrupt handler' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (83 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix PCI config error handling' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal/linux: handle UIO read failure in " Yongseok Koh
` (41 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Alejandro Lucero; +Cc: Anatoly Burakov, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From d49d8866f1aaa7823b6fed991309ad76e4b6d486 Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Thu, 25 Oct 2018 11:49:28 +0100
Subject: [PATCH] bus/pci: compare kernel driver instead of interrupt handler
[ upstream commit 630deed612ca382f48a3ef4b65dfc74b7cd09cf9 ]
Invoking the right pci read/write functions is based on interrupt
handler type. However, this is not configured for secondary processes
precluding to use those functions.
This patch fixes the issue using the driver name the device is bound
to instead.
Fixes: 632b2d1deeed ("eal: provide functions to access PCI config")
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
drivers/bus/pci/linux/pci.c | 32 ++++++++++++++------------------
1 file changed, 14 insertions(+), 18 deletions(-)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index 44440f223..fc4981038 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -703,23 +703,21 @@ rte_pci_get_iommu_class(void)
int rte_pci_read_config(const struct rte_pci_device *device,
void *buf, size_t len, off_t offset)
{
+ char devname[RTE_DEV_NAME_MAX_LEN] = "";
const struct rte_intr_handle *intr_handle = &device->intr_handle;
- switch (intr_handle->type) {
- case RTE_INTR_HANDLE_UIO:
- case RTE_INTR_HANDLE_UIO_INTX:
+ switch (device->kdrv) {
+ case RTE_KDRV_IGB_UIO:
return pci_uio_read_config(intr_handle, buf, len, offset);
-
#ifdef VFIO_PRESENT
- case RTE_INTR_HANDLE_VFIO_MSIX:
- case RTE_INTR_HANDLE_VFIO_MSI:
- case RTE_INTR_HANDLE_VFIO_LEGACY:
+ case RTE_KDRV_VFIO:
return pci_vfio_read_config(intr_handle, buf, len, offset);
#endif
default:
+ rte_pci_device_name(&device->addr, devname,
+ RTE_DEV_NAME_MAX_LEN);
RTE_LOG(ERR, EAL,
- "Unknown handle type of fd %d\n",
- intr_handle->fd);
+ "Unknown driver type for %s\n", devname);
return -1;
}
}
@@ -728,23 +726,21 @@ int rte_pci_read_config(const struct rte_pci_device *device,
int rte_pci_write_config(const struct rte_pci_device *device,
const void *buf, size_t len, off_t offset)
{
+ char devname[RTE_DEV_NAME_MAX_LEN] = "";
const struct rte_intr_handle *intr_handle = &device->intr_handle;
- switch (intr_handle->type) {
- case RTE_INTR_HANDLE_UIO:
- case RTE_INTR_HANDLE_UIO_INTX:
+ switch (device->kdrv) {
+ case RTE_KDRV_IGB_UIO:
return pci_uio_write_config(intr_handle, buf, len, offset);
-
#ifdef VFIO_PRESENT
- case RTE_INTR_HANDLE_VFIO_MSIX:
- case RTE_INTR_HANDLE_VFIO_MSI:
- case RTE_INTR_HANDLE_VFIO_LEGACY:
+ case RTE_KDRV_VFIO:
return pci_vfio_write_config(intr_handle, buf, len, offset);
#endif
default:
+ rte_pci_device_name(&device->addr, devname,
+ RTE_DEV_NAME_MAX_LEN);
RTE_LOG(ERR, EAL,
- "Unknown handle type of fd %d\n",
- intr_handle->fd);
+ "Unknown driver type for %s\n", devname);
return -1;
}
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.010917062 -0800
+++ 0086-bus-pci-compare-kernel-driver-instead-of-interrupt-h.patch 2018-11-29 15:01:45.235964000 -0800
@@ -1,8 +1,10 @@
-From 630deed612ca382f48a3ef4b65dfc74b7cd09cf9 Mon Sep 17 00:00:00 2001
+From d49d8866f1aaa7823b6fed991309ad76e4b6d486 Mon Sep 17 00:00:00 2001
From: Alejandro Lucero <alejandro.lucero@netronome.com>
Date: Thu, 25 Oct 2018 11:49:28 +0100
Subject: [PATCH] bus/pci: compare kernel driver instead of interrupt handler
+[ upstream commit 630deed612ca382f48a3ef4b65dfc74b7cd09cf9 ]
+
Invoking the right pci read/write functions is based on interrupt
handler type. However, this is not configured for secondary processes
precluding to use those functions.
@@ -11,7 +13,6 @@
to instead.
Fixes: 632b2d1deeed ("eal: provide functions to access PCI config")
-Cc: stable@dpdk.org
Signed-off-by: Alejandro Lucero <alejandro.lucero@netronome.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
@@ -20,10 +21,10 @@
1 file changed, 14 insertions(+), 18 deletions(-)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
-index d5faa893d..45c24ef7e 100644
+index 44440f223..fc4981038 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
-@@ -674,23 +674,21 @@ rte_pci_get_iommu_class(void)
+@@ -703,23 +703,21 @@ rte_pci_get_iommu_class(void)
int rte_pci_read_config(const struct rte_pci_device *device,
void *buf, size_t len, off_t offset)
{
@@ -54,7 +55,7 @@
return -1;
}
}
-@@ -699,23 +697,21 @@ int rte_pci_read_config(const struct rte_pci_device *device,
+@@ -728,23 +726,21 @@ int rte_pci_read_config(const struct rte_pci_device *device,
int rte_pci_write_config(const struct rte_pci_device *device,
const void *buf, size_t len, off_t offset)
{
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal/linux: handle UIO read failure in interrupt handler' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (84 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'bus/pci: compare kernel driver instead of interrupt handler' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'mk: disable gcc AVX512F support' " Yongseok Koh
` (40 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Luca Boccassi; +Cc: Brian Russell, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 06121f31e2304ea8d3bfea4de44a3d435426a97c Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Wed, 31 Oct 2018 18:39:45 +0000
Subject: [PATCH] eal/linux: handle UIO read failure in interrupt handler
[ upstream commit 349ac52bbc5264d774c7e28c62c4e3941055b9c4 ]
If a device is unplugged while an interrupt is pending, the
read call to the uio device to remove it from the poll wait list
can fail resulting in it being continually polled forever. This
change checks for the read failing and if so, unregisters the device
as an interrupt source and causes the wait list to be rebuilt.
This race has been reported and observed in production.
Fixes: 0a45657a6794 ("pci: rework interrupt handling")
Signed-off-by: Brian Russell <brussell@brocade.com>
Signed-off-by: Luca Boccassi <bluca@debian.org>
---
lib/librte_eal/linuxapp/eal/eal_interrupts.c | 19 ++++++++++++++++++-
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
index e1179b85d..c54b8823d 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
@@ -652,7 +652,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
bool call = false;
int n, bytes_read;
struct rte_intr_source *src;
- struct rte_intr_callback *cb;
+ struct rte_intr_callback *cb, *next;
union rte_intr_read_buffer buf;
struct rte_intr_callback active_cb;
@@ -723,6 +723,23 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
"descriptor %d: %s\n",
events[n].data.fd,
strerror(errno));
+ /*
+ * The device is unplugged or buggy, remove
+ * it as an interrupt source and return to
+ * force the wait list to be rebuilt.
+ */
+ rte_spinlock_lock(&intr_lock);
+ TAILQ_REMOVE(&intr_sources, src, next);
+ rte_spinlock_unlock(&intr_lock);
+
+ for (cb = TAILQ_FIRST(&src->callbacks); cb;
+ cb = next) {
+ next = TAILQ_NEXT(cb, next);
+ TAILQ_REMOVE(&src->callbacks, cb, next);
+ free(cb);
+ }
+ free(src);
+ return -1;
} else if (bytes_read == 0)
RTE_LOG(ERR, EAL, "Read nothing from file "
"descriptor %d\n", events[n].data.fd);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.052273191 -0800
+++ 0087-eal-linux-handle-UIO-read-failure-in-interrupt-handl.patch 2018-11-29 15:01:45.238958000 -0800
@@ -1,8 +1,10 @@
-From 349ac52bbc5264d774c7e28c62c4e3941055b9c4 Mon Sep 17 00:00:00 2001
+From 06121f31e2304ea8d3bfea4de44a3d435426a97c Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Wed, 31 Oct 2018 18:39:45 +0000
Subject: [PATCH] eal/linux: handle UIO read failure in interrupt handler
+[ upstream commit 349ac52bbc5264d774c7e28c62c4e3941055b9c4 ]
+
If a device is unplugged while an interrupt is pending, the
read call to the uio device to remove it from the poll wait list
can fail resulting in it being continually polled forever. This
@@ -12,7 +14,6 @@
This race has been reported and observed in production.
Fixes: 0a45657a6794 ("pci: rework interrupt handling")
-Cc: stable@dpdk.org
Signed-off-by: Brian Russell <brussell@brocade.com>
Signed-off-by: Luca Boccassi <bluca@debian.org>
@@ -21,10 +22,10 @@
1 file changed, 18 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_interrupts.c b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
-index 39252a887..cbac451e1 100644
+index e1179b85d..c54b8823d 100644
--- a/lib/librte_eal/linuxapp/eal/eal_interrupts.c
+++ b/lib/librte_eal/linuxapp/eal/eal_interrupts.c
-@@ -700,7 +700,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
+@@ -652,7 +652,7 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
bool call = false;
int n, bytes_read;
struct rte_intr_source *src;
@@ -33,7 +34,7 @@
union rte_intr_read_buffer buf;
struct rte_intr_callback active_cb;
-@@ -780,6 +780,23 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
+@@ -723,6 +723,23 @@ eal_intr_process_interrupts(struct epoll_event *events, int nfds)
"descriptor %d: %s\n",
events[n].data.fd,
strerror(errno));
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'mk: disable gcc AVX512F support' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (85 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal/linux: handle UIO read failure in " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'crypto/scheduler: fix build with gcc 8.2' " Yongseok Koh
` (39 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Yongseok Koh; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c8a1211869451f847fd726a520df800c61dd25a3 Mon Sep 17 00:00:00 2001
From: Yongseok Koh <yskoh@mellanox.com>
Date: Sat, 3 Nov 2018 01:06:32 +0000
Subject: [PATCH] mk: disable gcc AVX512F support
[ upstream commit 8d07c82b239f7782be0d3afbb626390e2cb0c8f5 ]
This is a workaround to prevent a crash, which might be caused by
optimization of newer gcc (7.3.0) on Intel Skylake.
This disables AVX512F support of gcc by adding -mno-avx512f if it is
disabled in DPDK (CONFIG_RTE_ENABLE_AVX512=n).
This does not apply to the meson build as that doesn't have such an option
but always enable AVX512F whenever supported.
Bugzilla ID: 97
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
---
mk/rte.cpuflags.mk | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
index 64caa3dbc..2129510c2 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
@@ -96,6 +96,11 @@ endif
ifneq ($(filter $(AUTO_CPUFLAGS),__AVX512F__),)
ifeq ($(CONFIG_RTE_ENABLE_AVX512),y)
CPUFLAGS += AVX512F
+else
+# disable AVX512F support of gcc as a workaround for Bug 97
+ifeq ($(CONFIG_RTE_TOOLCHAIN_GCC),y)
+MACHINE_CFLAGS += -mno-avx512f
+endif
endif
endif
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.093983176 -0800
+++ 0088-mk-disable-gcc-AVX512F-support.patch 2018-11-29 15:01:45.239957000 -0800
@@ -1,8 +1,10 @@
-From 8d07c82b239f7782be0d3afbb626390e2cb0c8f5 Mon Sep 17 00:00:00 2001
+From c8a1211869451f847fd726a520df800c61dd25a3 Mon Sep 17 00:00:00 2001
From: Yongseok Koh <yskoh@mellanox.com>
Date: Sat, 3 Nov 2018 01:06:32 +0000
Subject: [PATCH] mk: disable gcc AVX512F support
+[ upstream commit 8d07c82b239f7782be0d3afbb626390e2cb0c8f5 ]
+
This is a workaround to prevent a crash, which might be caused by
optimization of newer gcc (7.3.0) on Intel Skylake.
@@ -13,7 +15,6 @@
but always enable AVX512F whenever supported.
Bugzilla ID: 97
-Cc: stable@dpdk.org
Signed-off-by: Yongseok Koh <yskoh@mellanox.com>
---
@@ -21,10 +22,10 @@
1 file changed, 5 insertions(+)
diff --git a/mk/rte.cpuflags.mk b/mk/rte.cpuflags.mk
-index 43ed84155..c3291b17a 100644
+index 64caa3dbc..2129510c2 100644
--- a/mk/rte.cpuflags.mk
+++ b/mk/rte.cpuflags.mk
-@@ -68,6 +68,11 @@ endif
+@@ -96,6 +96,11 @@ endif
ifneq ($(filter $(AUTO_CPUFLAGS),__AVX512F__),)
ifeq ($(CONFIG_RTE_ENABLE_AVX512),y)
CPUFLAGS += AVX512F
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'crypto/scheduler: fix build with gcc 8.2' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (86 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'mk: disable gcc AVX512F support' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build with gcc 9.0' " Yongseok Koh
` (38 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Jerin Jacob; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 148585ff283bb71dcb1037b972ed3bf6a68859a1 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Sat, 3 Nov 2018 14:58:53 +0000
Subject: [PATCH] crypto/scheduler: fix build with gcc 8.2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ backported from upstream commit e5e193acf09c9d4b08e8ed7f2bf9a61b5c204fff ]
build_error:
drivers/crypto/scheduler/scheduler_pmd.c: In function ‘parse_name_arg’:
drivers/crypto/scheduler/scheduler_pmd.c:372:2: error: ‘strncpy’
specified bound 64 equals destination size [-Werror=stringop-truncation]
strncpy(params->name, value, RTE_CRYPTODEV_NAME_MAX_LEN);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
strncpy may result a not null-terminated string,
replaced it with strlcpy
Fixes: 503e9c5afb38 ("crypto/scheduler: register as vdev driver")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
drivers/crypto/scheduler/scheduler_pmd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c
index fcba1197e..07acd7b93 100644
--- a/drivers/crypto/scheduler/scheduler_pmd.c
+++ b/drivers/crypto/scheduler/scheduler_pmd.c
@@ -37,6 +37,7 @@
#include <rte_malloc.h>
#include <rte_cpuflags.h>
#include <rte_reorder.h>
+#include <rte_string_fns.h>
#include "rte_cryptodev_scheduler.h"
#include "scheduler_pmd_private.h"
@@ -342,7 +343,7 @@ parse_name_arg(const char *key __rte_unused,
return -EINVAL;
}
- strncpy(params->name, value, RTE_CRYPTODEV_NAME_MAX_LEN);
+ strlcpy(params->name, value, RTE_CRYPTODEV_NAME_MAX_LEN);
return 0;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.133643121 -0800
+++ 0089-crypto-scheduler-fix-build-with-gcc-8.2.patch 2018-11-29 15:01:45.240961000 -0800
@@ -1,4 +1,4 @@
-From e5e193acf09c9d4b08e8ed7f2bf9a61b5c204fff Mon Sep 17 00:00:00 2001
+From 148585ff283bb71dcb1037b972ed3bf6a68859a1 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Sat, 3 Nov 2018 14:58:53 +0000
Subject: [PATCH] crypto/scheduler: fix build with gcc 8.2
@@ -6,6 +6,8 @@
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+[ backported from upstream commit e5e193acf09c9d4b08e8ed7f2bf9a61b5c204fff ]
+
build_error:
drivers/crypto/scheduler/scheduler_pmd.c: In function ‘parse_name_arg’:
@@ -17,18 +19,25 @@
replaced it with strlcpy
Fixes: 503e9c5afb38 ("crypto/scheduler: register as vdev driver")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
- drivers/crypto/scheduler/scheduler_pmd.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
+ drivers/crypto/scheduler/scheduler_pmd.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/crypto/scheduler/scheduler_pmd.c b/drivers/crypto/scheduler/scheduler_pmd.c
-index 20198ccb0..a1632a2b9 100644
+index fcba1197e..07acd7b93 100644
--- a/drivers/crypto/scheduler/scheduler_pmd.c
+++ b/drivers/crypto/scheduler/scheduler_pmd.c
-@@ -369,7 +369,7 @@ parse_name_arg(const char *key __rte_unused,
+@@ -37,6 +37,7 @@
+ #include <rte_malloc.h>
+ #include <rte_cpuflags.h>
+ #include <rte_reorder.h>
++#include <rte_string_fns.h>
+
+ #include "rte_cryptodev_scheduler.h"
+ #include "scheduler_pmd_private.h"
+@@ -342,7 +343,7 @@ parse_name_arg(const char *key __rte_unused,
return -EINVAL;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: fix build with gcc 9.0' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (87 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'crypto/scheduler: fix build with gcc 8.2' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: fix offload not supported mask' " Yongseok Koh
` (37 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 18423d4380d52616653d390a42faa7b700a4775c Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 2 Nov 2018 19:06:06 +0000
Subject: [PATCH] eal: fix build with gcc 9.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit 3370975b994d793a89812031d86534916067dd67 ]
build error:
In function ‘eal_plugin_add’,
.../lib/librte_eal/common/eal_common_options.c:225:2:
error: ‘strncpy’ output may be truncated copying 4095 bytes from a
string of length 4095 [-Werror=stringop-truncation]
strncpy(solib->name, path, PATH_MAX-1);
strncpy may result a not null-terminated string,
replaced it with strlcpy
Fixes: f9a08f650211 ("eal: add support for shared object drivers")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_eal/common/eal_common_options.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 996a03424..c7eb056b2 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -232,7 +232,7 @@ eal_plugin_add(const char *path)
return -1;
}
memset(solib, 0, sizeof(*solib));
- strncpy(solib->name, path, PATH_MAX-1);
+ strlcpy(solib->name, path, PATH_MAX-1);
solib->name[PATH_MAX-1] = 0;
TAILQ_INSERT_TAIL(&solib_list, solib, next);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.174883033 -0800
+++ 0090-eal-fix-build-with-gcc-9.0.patch 2018-11-29 15:01:45.242960000 -0800
@@ -1,4 +1,4 @@
-From 3370975b994d793a89812031d86534916067dd67 Mon Sep 17 00:00:00 2001
+From 18423d4380d52616653d390a42faa7b700a4775c Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 2 Nov 2018 19:06:06 +0000
Subject: [PATCH] eal: fix build with gcc 9.0
@@ -6,6 +6,8 @@
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+[ upstream commit 3370975b994d793a89812031d86534916067dd67 ]
+
build error:
In function ‘eal_plugin_add’,
.../lib/librte_eal/common/eal_common_options.c:225:2:
@@ -17,7 +19,6 @@
replaced it with strlcpy
Fixes: f9a08f650211 ("eal: add support for shared object drivers")
-Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
@@ -25,10 +26,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
-index b82f3ddd1..e31eca5c0 100644
+index 996a03424..c7eb056b2 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
-@@ -222,7 +222,7 @@ eal_plugin_add(const char *path)
+@@ -232,7 +232,7 @@ eal_plugin_add(const char *path)
return -1;
}
memset(solib, 0, sizeof(*solib));
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e: fix offload not supported mask' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (88 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build with gcc 9.0' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net: fix build with pedantic' " Yongseok Koh
` (36 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Xiaolong Ye; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From b915b36d1b9b7a313f906ccabda24a00c96318eb Mon Sep 17 00:00:00 2001
From: Xiaolong Ye <xiaolong.ye@intel.com>
Date: Fri, 26 Oct 2018 14:33:14 +0800
Subject: [PATCH] net/i40e: fix offload not supported mask
[ upstream commit 09a62d75691fb935c7767d51b750df5910825985 ]
Just as the name I40E_TX_OFFLOAD_NOTSUP_MASK indicates, it should be the
mask of unsupported features (either not in PKT_TX_OFFLOAD_MASK or in
I40E_TX_OFFLOAD_MASK), however, xor will not get desired result here,
assume bit 0 of PKT_TX_OFFLOAD_MASK and I40E_TX_OFFLOAD_MAKS are 0 which
means corresponding feature is not supported in both sides, then we get
value of bit 0 of I40E_TX_OFFLOAD_NOTSUP_MASK which is 0 via xor, it
implies that it is supported which doesn't meet our expectation.
Correct it by a NOT-AND operation.
Fixes: 3f33e643e5c6 ("net/i40e: add Tx preparation")
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/i40e/i40e_rxtx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
index ce6a30507..fb35d1221 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -101,7 +101,7 @@
I40E_TX_IEEE1588_TMST)
#define I40E_TX_OFFLOAD_NOTSUP_MASK \
- (PKT_TX_OFFLOAD_MASK ^ I40E_TX_OFFLOAD_MASK)
+ ~(PKT_TX_OFFLOAD_MASK & I40E_TX_OFFLOAD_MASK)
static uint16_t i40e_xmit_pkts_simple(void *tx_queue,
struct rte_mbuf **tx_pkts,
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.215221295 -0800
+++ 0091-net-i40e-fix-offload-not-supported-mask.patch 2018-11-29 15:01:45.244959000 -0800
@@ -1,8 +1,10 @@
-From 09a62d75691fb935c7767d51b750df5910825985 Mon Sep 17 00:00:00 2001
+From b915b36d1b9b7a313f906ccabda24a00c96318eb Mon Sep 17 00:00:00 2001
From: Xiaolong Ye <xiaolong.ye@intel.com>
Date: Fri, 26 Oct 2018 14:33:14 +0800
Subject: [PATCH] net/i40e: fix offload not supported mask
+[ upstream commit 09a62d75691fb935c7767d51b750df5910825985 ]
+
Just as the name I40E_TX_OFFLOAD_NOTSUP_MASK indicates, it should be the
mask of unsupported features (either not in PKT_TX_OFFLOAD_MASK or in
I40E_TX_OFFLOAD_MASK), however, xor will not get desired result here,
@@ -14,7 +16,6 @@
Correct it by a NOT-AND operation.
Fixes: 3f33e643e5c6 ("net/i40e: add Tx preparation")
-Cc: stable@dpdk.org
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -23,18 +24,18 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/i40e/i40e_rxtx.c b/drivers/net/i40e/i40e_rxtx.c
-index 8bfa25178..e76412207 100644
+index ce6a30507..fb35d1221 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
-@@ -69,7 +69,7 @@
+@@ -101,7 +101,7 @@
I40E_TX_IEEE1588_TMST)
#define I40E_TX_OFFLOAD_NOTSUP_MASK \
- (PKT_TX_OFFLOAD_MASK ^ I40E_TX_OFFLOAD_MASK)
+ ~(PKT_TX_OFFLOAD_MASK & I40E_TX_OFFLOAD_MASK)
- static inline void
- i40e_rxd_to_vlan_tci(struct rte_mbuf *mb, volatile union i40e_rx_desc *rxdp)
+ static uint16_t i40e_xmit_pkts_simple(void *tx_queue,
+ struct rte_mbuf **tx_pkts,
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net: fix build with pedantic' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (89 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: fix offload not supported mask' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: clarify TSO Tx offload prerequisite' " Yongseok Koh
` (35 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Shahaf Shuler; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 91e25491c7b676ffaaeffbeb8aa086a4fae9d8dd Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Thu, 1 Nov 2018 14:46:45 +0200
Subject: [PATCH] net: fix build with pedantic
[ upstream commit be685863a9ea636bf7924f0a8034bb4c21fb1402 ]
The following error popped when compiling with -pedantic:
In file included from
drivers/net/mlx5/mlx5_flow_dv.c:28:0:
include/rte_gre.h:20:2:
error: type of bit-field 'res2' is a GCC extension [-Werror=pedantic]
uint16_t res2:4; /**< Reserved */
Fixing by adding the __extension__ attribute.
Fixes: 894f71a3805d ("net: add GRE header structure")
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_net/rte_gre.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/librte_net/rte_gre.h b/lib/librte_net/rte_gre.h
index 46568ff57..8a3414cfb 100644
--- a/lib/librte_net/rte_gre.h
+++ b/lib/librte_net/rte_gre.h
@@ -43,6 +43,7 @@ extern "C" {
/**
* GRE Header
*/
+__extension__
struct gre_hdr {
#if RTE_BYTE_ORDER == RTE_LITTLE_ENDIAN
uint16_t res2:4; /**< Reserved */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.263404623 -0800
+++ 0092-net-fix-build-with-pedantic.patch 2018-11-29 15:01:45.245966000 -0800
@@ -1,8 +1,10 @@
-From be685863a9ea636bf7924f0a8034bb4c21fb1402 Mon Sep 17 00:00:00 2001
+From 91e25491c7b676ffaaeffbeb8aa086a4fae9d8dd Mon Sep 17 00:00:00 2001
From: Shahaf Shuler <shahafs@mellanox.com>
Date: Thu, 1 Nov 2018 14:46:45 +0200
Subject: [PATCH] net: fix build with pedantic
+[ upstream commit be685863a9ea636bf7924f0a8034bb4c21fb1402 ]
+
The following error popped when compiling with -pedantic:
In file included from
@@ -14,7 +16,6 @@
Fixing by adding the __extension__ attribute.
Fixes: 894f71a3805d ("net: add GRE header structure")
-Cc: stable@dpdk.org
Signed-off-by: Shahaf Shuler <shahafs@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -23,10 +24,10 @@
1 file changed, 1 insertion(+)
diff --git a/lib/librte_net/rte_gre.h b/lib/librte_net/rte_gre.h
-index 69499bb82..05aa9d143 100644
+index 46568ff57..8a3414cfb 100644
--- a/lib/librte_net/rte_gre.h
+++ b/lib/librte_net/rte_gre.h
-@@ -15,6 +15,7 @@ extern "C" {
+@@ -43,6 +43,7 @@ extern "C" {
/**
* GRE Header
*/
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: clarify TSO Tx offload prerequisite' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (90 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net: fix build with pedantic' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/igb: update Tx offload mask' " Yongseok Koh
` (34 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 83526c9d4f4b49a4b4b44b21be19ac70a3ccc733 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Thu, 1 Nov 2018 08:46:42 +0000
Subject: [PATCH] doc: clarify TSO Tx offload prerequisite
[ upstream commit 25b85ae5db74820aab71e07f88e01c3d93932eff ]
Based on the PKT_TX_TCP_SEG definition,
the application needs to update PKT_TX_IPV4 or PKT_TX_IPV6
based on IPV4 or IPV6 packet and PKT_TX_IP_CKSUM ol_flags
to enable Tx TSO offload.
Fixes: dad1ec72a377 ("doc: document NIC features")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/nics/features.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index 69c579404..f31aee930 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -235,7 +235,7 @@ Supports TCP Segmentation Offloading.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_TCP_TSO``.
* **[uses] rte_eth_desc_lim**: ``nb_seg_max``, ``nb_mtu_seg_max``.
-* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_TCP_SEG``.
+* **[uses] mbuf**: ``mbuf.ol_flags:`` ``PKT_TX_TCP_SEG``, ``PKT_TX_IPV4``, ``PKT_TX_IPV6``, ``PKT_TX_IP_CKSUM``.
* **[uses] mbuf**: ``mbuf.tso_segsz``, ``mbuf.l2_len``, ``mbuf.l3_len``, ``mbuf.l4_len``.
* **[implements] datapath**: ``TSO functionality``.
* **[provides] rte_eth_dev_info**: ``tx_offload_capa,tx_queue_offload_capa:DEV_TX_OFFLOAD_TCP_TSO,DEV_TX_OFFLOAD_UDP_TSO``.
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.301782839 -0800
+++ 0093-doc-clarify-TSO-Tx-offload-prerequisite.patch 2018-11-29 15:01:45.247958000 -0800
@@ -1,15 +1,16 @@
-From 25b85ae5db74820aab71e07f88e01c3d93932eff Mon Sep 17 00:00:00 2001
+From 83526c9d4f4b49a4b4b44b21be19ac70a3ccc733 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Thu, 1 Nov 2018 08:46:42 +0000
Subject: [PATCH] doc: clarify TSO Tx offload prerequisite
+[ upstream commit 25b85ae5db74820aab71e07f88e01c3d93932eff ]
+
Based on the PKT_TX_TCP_SEG definition,
the application needs to update PKT_TX_IPV4 or PKT_TX_IPV6
based on IPV4 or IPV6 packet and PKT_TX_IP_CKSUM ol_flags
to enable Tx TSO offload.
Fixes: dad1ec72a377 ("doc: document NIC features")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -18,10 +19,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
-index 3fa5cb745..d3f904839 100644
+index 69c579404..f31aee930 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
-@@ -208,7 +208,7 @@ Supports TCP Segmentation Offloading.
+@@ -235,7 +235,7 @@ Supports TCP Segmentation Offloading.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_TCP_TSO``.
* **[uses] rte_eth_desc_lim**: ``nb_seg_max``, ``nb_mtu_seg_max``.
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/igb: update Tx offload mask' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (91 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: clarify TSO Tx offload prerequisite' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'ip_frag: use key length for key comparison' " Yongseok Koh
` (33 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Zhirun Yan; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a208b5124d36aa32525ee55851b6e118e6925197 Mon Sep 17 00:00:00 2001
From: Zhirun Yan <zhirun.yan@intel.com>
Date: Mon, 5 Nov 2018 12:56:44 +0000
Subject: [PATCH] net/igb: update Tx offload mask
[ upstream commit ac60b2de4f551be7486292cd8c555f4dd955944a ]
Tx offload mask is updated in following commit 1037ed842c37
("mbuf: fix Tx offload mask") Currently, the new added offload
flags are not supported in PMD and application will fail to call
PMD transmit prepare function.
This patch updates IGB_TX_OFFFLOAD_MASK.
Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/net/e1000/igb_rxtx.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
index 4ee12e9e4..b766a5d7b 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
@@ -79,6 +79,10 @@
#endif
/* Bit Mask to indicate what bits required for building TX context */
#define IGB_TX_OFFLOAD_MASK ( \
+ PKT_TX_OUTER_IPV6 | \
+ PKT_TX_OUTER_IPV4 | \
+ PKT_TX_IPV6 | \
+ PKT_TX_IPV4 | \
PKT_TX_VLAN_PKT | \
PKT_TX_IP_CKSUM | \
PKT_TX_L4_MASK | \
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.342634698 -0800
+++ 0094-net-igb-update-Tx-offload-mask.patch 2018-11-29 15:01:45.250962000 -0800
@@ -1,8 +1,10 @@
-From ac60b2de4f551be7486292cd8c555f4dd955944a Mon Sep 17 00:00:00 2001
+From a208b5124d36aa32525ee55851b6e118e6925197 Mon Sep 17 00:00:00 2001
From: Zhirun Yan <zhirun.yan@intel.com>
Date: Mon, 5 Nov 2018 12:56:44 +0000
Subject: [PATCH] net/igb: update Tx offload mask
+[ upstream commit ac60b2de4f551be7486292cd8c555f4dd955944a ]
+
Tx offload mask is updated in following commit 1037ed842c37
("mbuf: fix Tx offload mask") Currently, the new added offload
flags are not supported in PMD and application will fail to call
@@ -11,7 +13,6 @@
This patch updates IGB_TX_OFFFLOAD_MASK.
Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
-Cc: stable@dpdk.org
Signed-off-by: Zhirun Yan <zhirun.yan@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -20,10 +21,10 @@
1 file changed, 4 insertions(+)
diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c
-index 25ff5f68f..ab0a80e15 100644
+index 4ee12e9e4..b766a5d7b 100644
--- a/drivers/net/e1000/igb_rxtx.c
+++ b/drivers/net/e1000/igb_rxtx.c
-@@ -50,6 +50,10 @@
+@@ -79,6 +79,10 @@
#endif
/* Bit Mask to indicate what bits required for building TX context */
#define IGB_TX_OFFLOAD_MASK ( \
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'ip_frag: use key length for key comparison' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (92 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/igb: update Tx offload mask' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'bus/pci: fix config r/w access' " Yongseok Koh
` (32 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Konstantin Ananyev; +Cc: Ryan E Hall, Alexander V Gutkin, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 2d454affa02149e120acd05642d4e91f1fbd4059 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@intel.com>
Date: Mon, 5 Nov 2018 12:18:58 +0000
Subject: [PATCH] ip_frag: use key length for key comparison
[ upstream commit b8d5dfd4a5f006794d85f93fc97134460ffbdfdf ]
Right now reassembly code relies on src_dst[] being all zeroes to
determine is it free/occupied entry in the fragments table.
This is suboptimal and error prone - user can crash DPDK ip_reassembly
app by something like the following scapy script:
x=Ether(src=...,dst=...)/IP(dst='0.0.0.0',src='0.0.0.0',id=0)/('X'*1000)
frags=fragment(x, fragsize=500)
sendp(frags, iface=...)
To overcome that issue and reduce overhead of
'key invalidate' and 'key is empty' operations -
add key_len into keys comparision procedure.
Fixes: 4f1a8f633862 ("ip_frag: add IPv6 reassembly")
Reported-by: Ryan E Hall <ryan.e.hall@intel.com>
Reported-by: Alexander V Gutkin <alexander.v.gutkin@intel.com>
Signed-off-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_ip_frag/ip_frag_common.h | 14 ++++----------
lib/librte_ip_frag/rte_ip_frag.h | 14 +++++++++++---
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/lib/librte_ip_frag/ip_frag_common.h b/lib/librte_ip_frag/ip_frag_common.h
index 472185f6b..f3abc98b3 100644
--- a/lib/librte_ip_frag/ip_frag_common.h
+++ b/lib/librte_ip_frag/ip_frag_common.h
@@ -81,20 +81,14 @@ struct rte_mbuf *ipv6_frag_reassemble(struct ip_frag_pkt *fp);
static inline int
ip_frag_key_is_empty(const struct ip_frag_key * key)
{
- uint32_t i;
- for (i = 0; i < RTE_MIN(key->key_len, RTE_DIM(key->src_dst)); i++)
- if (key->src_dst[i] != 0)
- return 0;
- return 1;
+ return (key->key_len == 0);
}
-/* empty the key */
+/* invalidate the key */
static inline void
ip_frag_key_invalidate(struct ip_frag_key * key)
{
- uint32_t i;
- for (i = 0; i < key->key_len; i++)
- key->src_dst[i] = 0;
+ key->key_len = 0;
}
/* compare two keys */
@@ -103,7 +97,7 @@ ip_frag_key_cmp(const struct ip_frag_key * k1, const struct ip_frag_key * k2)
{
uint32_t i;
uint64_t val;
- val = k1->id ^ k2->id;
+ val = k1->id_key_len ^ k2->id_key_len;
for (i = 0; i < k1->key_len; i++)
val |= k1->src_dst[i] ^ k2->src_dst[i];
return val;
diff --git a/lib/librte_ip_frag/rte_ip_frag.h b/lib/librte_ip_frag/rte_ip_frag.h
index 014416414..407991b98 100644
--- a/lib/librte_ip_frag/rte_ip_frag.h
+++ b/lib/librte_ip_frag/rte_ip_frag.h
@@ -73,9 +73,17 @@ struct ip_frag {
/** @internal <src addr, dst_addr, id> to uniquely identify fragmented datagram. */
struct ip_frag_key {
- uint64_t src_dst[4]; /**< src address, first 8 bytes used for IPv4 */
- uint32_t id; /**< dst address */
- uint32_t key_len; /**< src/dst key length */
+ uint64_t src_dst[4];
+ /**< src and dst address, only first 8 bytes used for IPv4 */
+ RTE_STD_C11
+ union {
+ uint64_t id_key_len; /**< combined for easy fetch */
+ __extension__
+ struct {
+ uint32_t id; /**< packet id */
+ uint32_t key_len; /**< src/dst key length */
+ };
+ };
};
/**
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.387245369 -0800
+++ 0095-ip_frag-use-key-length-for-key-comparison.patch 2018-11-29 15:01:45.252963000 -0800
@@ -1,8 +1,10 @@
-From b8d5dfd4a5f006794d85f93fc97134460ffbdfdf Mon Sep 17 00:00:00 2001
+From 2d454affa02149e120acd05642d4e91f1fbd4059 Mon Sep 17 00:00:00 2001
From: Konstantin Ananyev <konstantin.ananyev@intel.com>
Date: Mon, 5 Nov 2018 12:18:58 +0000
Subject: [PATCH] ip_frag: use key length for key comparison
+[ upstream commit b8d5dfd4a5f006794d85f93fc97134460ffbdfdf ]
+
Right now reassembly code relies on src_dst[] being all zeroes to
determine is it free/occupied entry in the fragments table.
This is suboptimal and error prone - user can crash DPDK ip_reassembly
@@ -15,7 +17,6 @@
add key_len into keys comparision procedure.
Fixes: 4f1a8f633862 ("ip_frag: add IPv6 reassembly")
-Cc: stable@dpdk.org
Reported-by: Ryan E Hall <ryan.e.hall@intel.com>
Reported-by: Alexander V Gutkin <alexander.v.gutkin@intel.com>
@@ -26,10 +27,10 @@
2 files changed, 15 insertions(+), 13 deletions(-)
diff --git a/lib/librte_ip_frag/ip_frag_common.h b/lib/librte_ip_frag/ip_frag_common.h
-index 0f62e2e16..a17a74076 100644
+index 472185f6b..f3abc98b3 100644
--- a/lib/librte_ip_frag/ip_frag_common.h
+++ b/lib/librte_ip_frag/ip_frag_common.h
-@@ -58,20 +58,14 @@ struct rte_mbuf *ipv6_frag_reassemble(struct ip_frag_pkt *fp);
+@@ -81,20 +81,14 @@ struct rte_mbuf *ipv6_frag_reassemble(struct ip_frag_pkt *fp);
static inline int
ip_frag_key_is_empty(const struct ip_frag_key * key)
{
@@ -53,7 +54,7 @@
}
/* compare two keys */
-@@ -80,7 +74,7 @@ ip_frag_key_cmp(const struct ip_frag_key * k1, const struct ip_frag_key * k2)
+@@ -103,7 +97,7 @@ ip_frag_key_cmp(const struct ip_frag_key * k1, const struct ip_frag_key * k2)
{
uint32_t i;
uint64_t val;
@@ -63,10 +64,10 @@
val |= k1->src_dst[i] ^ k2->src_dst[i];
return val;
diff --git a/lib/librte_ip_frag/rte_ip_frag.h b/lib/librte_ip_frag/rte_ip_frag.h
-index 7f425f610..a4ccaf9d1 100644
+index 014416414..407991b98 100644
--- a/lib/librte_ip_frag/rte_ip_frag.h
+++ b/lib/librte_ip_frag/rte_ip_frag.h
-@@ -44,9 +44,17 @@ struct ip_frag {
+@@ -73,9 +73,17 @@ struct ip_frag {
/** @internal <src addr, dst_addr, id> to uniquely identify fragmented datagram. */
struct ip_frag_key {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'bus/pci: fix config r/w access' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (93 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'ip_frag: use key length for key comparison' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test/hash: fix build' " Yongseok Koh
` (31 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Fan Zhang; +Cc: Thomas Monjalon, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c191f9e0a6f99d30476acc91346797d65503b7ac Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Thu, 1 Nov 2018 12:10:09 +0000
Subject: [PATCH] bus/pci: fix config r/w access
[ upstream commit a38eafedda1de14c9fd7219e769e89e4aec92a45 ]
The recent change to rte_pci_read/write_config() missed
uio_pci_generic case.
Fixes: 630deed612ca ("bus/pci: compare kernel driver instead of interrupt handler")
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
drivers/bus/pci/linux/pci.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index fc4981038..f955ede21 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -708,6 +708,7 @@ int rte_pci_read_config(const struct rte_pci_device *device,
switch (device->kdrv) {
case RTE_KDRV_IGB_UIO:
+ case RTE_KDRV_UIO_GENERIC:
return pci_uio_read_config(intr_handle, buf, len, offset);
#ifdef VFIO_PRESENT
case RTE_KDRV_VFIO:
@@ -731,6 +732,7 @@ int rte_pci_write_config(const struct rte_pci_device *device,
switch (device->kdrv) {
case RTE_KDRV_IGB_UIO:
+ case RTE_KDRV_UIO_GENERIC:
return pci_uio_write_config(intr_handle, buf, len, offset);
#ifdef VFIO_PRESENT
case RTE_KDRV_VFIO:
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.429296423 -0800
+++ 0096-bus-pci-fix-config-r-w-access.patch 2018-11-29 15:01:45.254960000 -0800
@@ -1,13 +1,14 @@
-From a38eafedda1de14c9fd7219e769e89e4aec92a45 Mon Sep 17 00:00:00 2001
+From c191f9e0a6f99d30476acc91346797d65503b7ac Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Thu, 1 Nov 2018 12:10:09 +0000
Subject: [PATCH] bus/pci: fix config r/w access
+[ upstream commit a38eafedda1de14c9fd7219e769e89e4aec92a45 ]
+
The recent change to rte_pci_read/write_config() missed
uio_pci_generic case.
Fixes: 630deed612ca ("bus/pci: compare kernel driver instead of interrupt handler")
-Cc: stable@dpdk.org
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
@@ -16,10 +17,10 @@
1 file changed, 2 insertions(+)
diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
-index f87533c5c..c99d523f0 100644
+index fc4981038..f955ede21 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
-@@ -713,6 +713,7 @@ int rte_pci_read_config(const struct rte_pci_device *device,
+@@ -708,6 +708,7 @@ int rte_pci_read_config(const struct rte_pci_device *device,
switch (device->kdrv) {
case RTE_KDRV_IGB_UIO:
@@ -27,7 +28,7 @@
return pci_uio_read_config(intr_handle, buf, len, offset);
#ifdef VFIO_PRESENT
case RTE_KDRV_VFIO:
-@@ -736,6 +737,7 @@ int rte_pci_write_config(const struct rte_pci_device *device,
+@@ -731,6 +732,7 @@ int rte_pci_write_config(const struct rte_pci_device *device,
switch (device->kdrv) {
case RTE_KDRV_IGB_UIO:
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'test/hash: fix build' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (94 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'bus/pci: fix config r/w access' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: introduce rte version of fls' " Yongseok Koh
` (30 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Dharmik Thakkar; +Cc: Honnappa Nagarahalli, Gavin Hu, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From f4e02a9fa7eb230e4314bf7b05f9f56a4bf725fc Mon Sep 17 00:00:00 2001
From: Dharmik Thakkar <dharmik.thakkar@arm.com>
Date: Fri, 26 Oct 2018 16:43:03 -0500
Subject: [PATCH] test/hash: fix build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit 57ed574e263444928b793fff0d287121112fba84 ]
Enable print_key_info() function compilation always.
Compilation error message:
'test_hash.c: In function ‘print_key_info’:
test_hash.c:90:15: error: cast discards ‘const’ qualifier from pointer
target type [-Werror=cast-qual]
uint8_t *p = (uint8_t *)key;
^
cc1: all warnings being treated as errors'
Fixes: af75078fece36 ("first public release")
Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
---
test/test/test_hash.c | 24 +++++++++---------------
1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/test/test/test_hash.c b/test/test/test_hash.c
index 4668cf1a2..2218142a2 100644
--- a/test/test/test_hash.c
+++ b/test/test/test_hash.c
@@ -109,29 +109,23 @@ static uint32_t pseudo_hash(__attribute__((unused)) const void *keys,
return 3;
}
+#define UNIT_TEST_HASH_VERBOSE 0
/*
* Print out result of unit test hash operation.
*/
-#if defined(UNIT_TEST_HASH_VERBOSE)
static void print_key_info(const char *msg, const struct flow_key *key,
int32_t pos)
{
- uint8_t *p = (uint8_t *)key;
- unsigned i;
-
- printf("%s key:0x", msg);
- for (i = 0; i < sizeof(struct flow_key); i++) {
- printf("%02X", p[i]);
+ if (UNIT_TEST_HASH_VERBOSE) {
+ const uint8_t *p = (const uint8_t *)key;
+ unsigned int i;
+
+ printf("%s key:0x", msg);
+ for (i = 0; i < sizeof(struct flow_key); i++)
+ printf("%02X", p[i]);
+ printf(" @ pos %d\n", pos);
}
- printf(" @ pos %d\n", pos);
-}
-#else
-static void print_key_info(__attribute__((unused)) const char *msg,
- __attribute__((unused)) const struct flow_key *key,
- __attribute__((unused)) int32_t pos)
-{
}
-#endif
/* Keys used by unit test functions */
static struct flow_key keys[5] = { {
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.471133847 -0800
+++ 0097-test-hash-fix-build.patch 2018-11-29 15:01:45.256958000 -0800
@@ -1,4 +1,4 @@
-From 57ed574e263444928b793fff0d287121112fba84 Mon Sep 17 00:00:00 2001
+From f4e02a9fa7eb230e4314bf7b05f9f56a4bf725fc Mon Sep 17 00:00:00 2001
From: Dharmik Thakkar <dharmik.thakkar@arm.com>
Date: Fri, 26 Oct 2018 16:43:03 -0500
Subject: [PATCH] test/hash: fix build
@@ -6,6 +6,8 @@
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+[ upstream commit 57ed574e263444928b793fff0d287121112fba84 ]
+
Enable print_key_info() function compilation always.
Compilation error message:
@@ -17,7 +19,6 @@
cc1: all warnings being treated as errors'
Fixes: af75078fece36 ("first public release")
-Cc: stable@dpdk.org
Suggested-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
@@ -28,10 +29,10 @@
1 file changed, 9 insertions(+), 15 deletions(-)
diff --git a/test/test/test_hash.c b/test/test/test_hash.c
-index 6d06eb24c..fe607fadf 100644
+index 4668cf1a2..2218142a2 100644
--- a/test/test/test_hash.c
+++ b/test/test/test_hash.c
-@@ -80,29 +80,23 @@ static uint32_t pseudo_hash(__attribute__((unused)) const void *keys,
+@@ -109,29 +109,23 @@ static uint32_t pseudo_hash(__attribute__((unused)) const void *keys,
return 3;
}
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: introduce rte version of fls' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (95 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'test/hash: fix build' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build' " Yongseok Koh
` (29 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Jerin Jacob; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 91580aacc86f33a96ca7ecbca42b1dd22fb358b5 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Wed, 7 Nov 2018 06:59:03 +0000
Subject: [PATCH] eal: introduce rte version of fls
The function returns the last (most-significant) bit set.
Added unit testcase to verify rte_fls_u32().
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
lib/librte_eal/common/include/rte_common.h | 19 ++++++++++++++++++
test/test/test_common.c | 32 ++++++++++++++++++++++++++++++
2 files changed, 51 insertions(+)
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index f1d24b86d..63bf6b612 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -369,6 +369,25 @@ rte_log2_u32(uint32_t v)
return rte_bsf32(v);
}
+
+/**
+ * Return the last (most-significant) bit set.
+ *
+ * @note The last (most significant) bit is at position 32.
+ * @note rte_fls_u32(0) = 0, rte_fls_u32(1) = 1, rte_fls_u32(0x80000000) = 32
+ *
+ * @param x
+ * The input parameter.
+ * @return
+ * The last (most-significant) bit set, or 0 if the input is 0.
+ */
+static inline int
+rte_fls_u32(uint32_t x)
+{
+ return (x == 0) ? 0 : 32 - __builtin_clz(x);
+}
+
+
#ifndef offsetof
/** Return the offset of a field in a structure. */
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
diff --git a/test/test/test_common.c b/test/test/test_common.c
index ae3482da7..da2ff75b4 100644
--- a/test/test/test_common.c
+++ b/test/test/test_common.c
@@ -180,6 +180,37 @@ test_log2(void)
}
static int
+test_fls(void)
+{
+ struct fls_test_vector {
+ uint32_t arg;
+ int rc;
+ };
+ int expected, rc;
+ uint32_t i, arg;
+
+ const struct fls_test_vector test[] = {
+ {0x0, 0},
+ {0x1, 1},
+ {0x4000, 15},
+ {0x80000000, 32},
+ };
+
+ for (i = 0; i < RTE_DIM(test); i++) {
+ arg = test[i].arg;
+ rc = rte_fls_u32(arg);
+ expected = test[i].rc;
+ if (rc != expected) {
+ printf("Wrong rte_fls_u32(0x%x) rc=%d, expected=%d\n",
+ arg, rc, expected);
+ return TEST_FAILED;
+ }
+ }
+
+ return 0;
+}
+
+static int
test_common(void)
{
int ret = 0;
@@ -187,6 +218,7 @@ test_common(void)
ret |= test_macros(0);
ret |= test_misc();
ret |= test_log2();
+ ret |= test_fls();
return ret;
}
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: fix build' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (96 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: introduce rte version of fls' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'pci: fix parsing of address without function number' " Yongseok Koh
` (28 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Thomas Monjalon, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6099875bea46299385af40c77e11100a2feb0dc3 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Wed, 7 Nov 2018 06:59:06 +0000
Subject: [PATCH] eal: fix build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[ upstream commit 5d08fecdd39f2373713a0475b75a4126800c9acf ]
Some toolchain has fls() definition in string.h as argument type int,
which is conflicting uint32_t argument type.
/export/dpdk.org/lib/librte_eal/common/rte_reciprocal.c:47:19:
error: conflicting types for ‘fls’
static inline int fls(uint32_t x)
^~~
/opt/marvell-tools-201/aarch64-marvell-elf/include/strings.h:59:6:
note: previous declaration of ‘fls’ was here
int fls(int) __pure2;
FreeBSD string.h also has fls() with argument as int type.
https://www.freebsd.org/cgi/man.cgi?query=fls&sektion=3
Fixing the conflict by using rte version of fls.
Fixes: ffe3ec811ef5 ("sched: introduce reciprocal divide")
Fixes: faf2b25c9f80 ("fm10k: support VMDQ in multi-queue configuration")
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
drivers/net/fm10k/fm10k_ethdev.c | 11 +++--------
lib/librte_sched/rte_reciprocal.c | 17 +----------------
2 files changed, 4 insertions(+), 24 deletions(-)
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
index 58dac3894..a0263f6d7 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
@@ -483,11 +483,6 @@ fm10k_dev_configure(struct rte_eth_dev *dev)
return 0;
}
-/* fls = find last set bit = 32 minus the number of leading zeros */
-#ifndef fls
-#define fls(x) (((x) == 0) ? 0 : (32 - __builtin_clz((x))))
-#endif
-
static void
fm10k_dev_vmdq_rx_configure(struct rte_eth_dev *dev)
{
@@ -1061,8 +1056,8 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev)
macvlan = FM10K_DEV_PRIVATE_TO_MACVLAN(dev->data->dev_private);
nb_queue_pools = macvlan->nb_queue_pools;
- pool_len = nb_queue_pools ? fls(nb_queue_pools - 1) : 0;
- rss_len = fls(dev->data->nb_rx_queues - 1) - pool_len;
+ pool_len = nb_queue_pools ? rte_fls_u32(nb_queue_pools - 1) : 0;
+ rss_len = rte_fls_u32(dev->data->nb_rx_queues - 1) - pool_len;
/* GLORT 0x0-0x3F are used by PF and VMDQ, 0x40-0x7F used by FD */
dglortdec = (rss_len << FM10K_DGLORTDEC_RSSLENGTH_SHIFT) | pool_len;
@@ -1073,7 +1068,7 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev)
FM10K_WRITE_REG(hw, FM10K_DGLORTDEC(0), dglortdec);
/* Flow Director configurations, only queue number is valid. */
- dglortdec = fls(dev->data->nb_rx_queues - 1);
+ dglortdec = rte_fls_u32(dev->data->nb_rx_queues - 1);
dglortmask = (GLORT_FD_MASK << FM10K_DGLORTMAP_MASK_SHIFT) |
(hw->mac.dglort_map + GLORT_FD_Q_BASE);
FM10K_WRITE_REG(hw, FM10K_DGLORTMAP(1), dglortmask);
diff --git a/lib/librte_sched/rte_reciprocal.c b/lib/librte_sched/rte_reciprocal.c
index 652f0237a..385109cd5 100644
--- a/lib/librte_sched/rte_reciprocal.c
+++ b/lib/librte_sched/rte_reciprocal.c
@@ -38,28 +38,13 @@
#include "rte_reciprocal.h"
-/* find largest set bit.
- * portable and slow but does not matter for this usage.
- */
-static inline int fls(uint32_t x)
-{
- int b;
-
- for (b = 31; b >= 0; --b) {
- if (x & (1u << b))
- return b + 1;
- }
-
- return 0;
-}
-
struct rte_reciprocal rte_reciprocal_value(uint32_t d)
{
struct rte_reciprocal R;
uint64_t m;
int l;
- l = fls(d - 1);
+ l = rte_fls_u32(d - 1);
m = ((1ULL << 32) * ((1ULL << l) - d));
m /= d;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.543531612 -0800
+++ 0099-eal-fix-build.patch 2018-11-29 15:01:45.262963000 -0800
@@ -1,4 +1,4 @@
-From 5d08fecdd39f2373713a0475b75a4126800c9acf Mon Sep 17 00:00:00 2001
+From 6099875bea46299385af40c77e11100a2feb0dc3 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Wed, 7 Nov 2018 06:59:06 +0000
Subject: [PATCH] eal: fix build
@@ -6,6 +6,8 @@
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
+[ upstream commit 5d08fecdd39f2373713a0475b75a4126800c9acf ]
+
Some toolchain has fls() definition in string.h as argument type int,
which is conflicting uint32_t argument type.
@@ -25,20 +27,19 @@
Fixes: ffe3ec811ef5 ("sched: introduce reciprocal divide")
Fixes: faf2b25c9f80 ("fm10k: support VMDQ in multi-queue configuration")
-Cc: stable@dpdk.org
Suggested-by: Thomas Monjalon <thomas@monjalon.net>
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
- drivers/net/fm10k/fm10k_ethdev.c | 11 +++--------
- lib/librte_eal/common/rte_reciprocal.c | 17 +----------------
+ drivers/net/fm10k/fm10k_ethdev.c | 11 +++--------
+ lib/librte_sched/rte_reciprocal.c | 17 +----------------
2 files changed, 4 insertions(+), 24 deletions(-)
diff --git a/drivers/net/fm10k/fm10k_ethdev.c b/drivers/net/fm10k/fm10k_ethdev.c
-index c852022dd..85fb6c5cb 100644
+index 58dac3894..a0263f6d7 100644
--- a/drivers/net/fm10k/fm10k_ethdev.c
+++ b/drivers/net/fm10k/fm10k_ethdev.c
-@@ -464,11 +464,6 @@ fm10k_dev_configure(struct rte_eth_dev *dev)
+@@ -483,11 +483,6 @@ fm10k_dev_configure(struct rte_eth_dev *dev)
return 0;
}
@@ -50,7 +51,7 @@
static void
fm10k_dev_vmdq_rx_configure(struct rte_eth_dev *dev)
{
-@@ -1030,8 +1025,8 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev)
+@@ -1061,8 +1056,8 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev)
macvlan = FM10K_DEV_PRIVATE_TO_MACVLAN(dev->data->dev_private);
nb_queue_pools = macvlan->nb_queue_pools;
@@ -61,7 +62,7 @@
/* GLORT 0x0-0x3F are used by PF and VMDQ, 0x40-0x7F used by FD */
dglortdec = (rss_len << FM10K_DGLORTDEC_RSSLENGTH_SHIFT) | pool_len;
-@@ -1042,7 +1037,7 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev)
+@@ -1073,7 +1068,7 @@ fm10k_dev_dglort_map_configure(struct rte_eth_dev *dev)
FM10K_WRITE_REG(hw, FM10K_DGLORTDEC(0), dglortdec);
/* Flow Director configurations, only queue number is valid. */
@@ -70,11 +71,11 @@
dglortmask = (GLORT_FD_MASK << FM10K_DGLORTMAP_MASK_SHIFT) |
(hw->mac.dglort_map + GLORT_FD_Q_BASE);
FM10K_WRITE_REG(hw, FM10K_DGLORTMAP(1), dglortmask);
-diff --git a/lib/librte_eal/common/rte_reciprocal.c b/lib/librte_eal/common/rte_reciprocal.c
-index d81b11db6..f017d0c28 100644
---- a/lib/librte_eal/common/rte_reciprocal.c
-+++ b/lib/librte_eal/common/rte_reciprocal.c
-@@ -41,28 +41,13 @@
+diff --git a/lib/librte_sched/rte_reciprocal.c b/lib/librte_sched/rte_reciprocal.c
+index 652f0237a..385109cd5 100644
+--- a/lib/librte_sched/rte_reciprocal.c
++++ b/lib/librte_sched/rte_reciprocal.c
+@@ -38,28 +38,13 @@
#include "rte_reciprocal.h"
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'pci: fix parsing of address without function number' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (97 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/tap: fix file descriptor check' " Yongseok Koh
` (27 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: Wisam Jaddo, Gaetan Rivet, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 64e8119d022160bc98a167bc0affc2b7043496a5 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Mon, 12 Nov 2018 00:58:56 +0100
Subject: [PATCH] pci: fix parsing of address without function number
[ upstream commit 31f19a9beb8d88b67be6e469404081eb834d199c ]
If the last part of the PCI address (function number) is missing,
the parsing was successful, assuming function 0.
The call to strtoul is not returning an error in such a case,
so an explicit check is inserted before.
This bug has always been there in older parsing macros:
- GET_PCIADDR_FIELD
- GET_BLACKLIST_FIELD
Fixes: af75078fece3 ("first public release")
Reported-by: Wisam Jaddo <wisamm@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
lib/librte_pci/rte_pci.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/librte_pci/rte_pci.c b/lib/librte_pci/rte_pci.c
index 0160fc1eb..ac0b1a6f0 100644
--- a/lib/librte_pci/rte_pci.c
+++ b/lib/librte_pci/rte_pci.c
@@ -59,6 +59,10 @@ get_u8_pciaddr_field(const char *in, void *_u8, char dlm)
uint8_t *u8 = _u8;
char *end;
+ /* empty string is an error though strtoul() returns 0 */
+ if (*in == '\0')
+ return NULL;
+
errno = 0;
val = strtoul(in, &end, 16);
if (errno != 0 || end[0] != dlm || val > UINT8_MAX) {
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.587285321 -0800
+++ 0100-pci-fix-parsing-of-address-without-function-number.patch 2018-11-29 15:01:45.264959000 -0800
@@ -1,8 +1,10 @@
-From 31f19a9beb8d88b67be6e469404081eb834d199c Mon Sep 17 00:00:00 2001
+From 64e8119d022160bc98a167bc0affc2b7043496a5 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Mon, 12 Nov 2018 00:58:56 +0100
Subject: [PATCH] pci: fix parsing of address without function number
+[ upstream commit 31f19a9beb8d88b67be6e469404081eb834d199c ]
+
If the last part of the PCI address (function number) is missing,
the parsing was successful, assuming function 0.
The call to strtoul is not returning an error in such a case,
@@ -13,7 +15,6 @@
- GET_BLACKLIST_FIELD
Fixes: af75078fece3 ("first public release")
-Cc: stable@dpdk.org
Reported-by: Wisam Jaddo <wisamm@mellanox.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
@@ -23,10 +24,10 @@
1 file changed, 4 insertions(+)
diff --git a/lib/librte_pci/rte_pci.c b/lib/librte_pci/rte_pci.c
-index 530738dbd..f400178bb 100644
+index 0160fc1eb..ac0b1a6f0 100644
--- a/lib/librte_pci/rte_pci.c
+++ b/lib/librte_pci/rte_pci.c
-@@ -30,6 +30,10 @@ get_u8_pciaddr_field(const char *in, void *_u8, char dlm)
+@@ -59,6 +59,10 @@ get_u8_pciaddr_field(const char *in, void *_u8, char dlm)
uint8_t *u8 = _u8;
char *end;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/tap: fix file descriptor check' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (98 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'pci: fix parsing of address without function number' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/e1000/base: fix uninitialized variable' " Yongseok Koh
` (26 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Keith Wiles, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 428973bd5398209c43f69ac956f4239a43db2239 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 6 Nov 2018 11:30:05 -0800
Subject: [PATCH] net/tap: fix file descriptor check
[ upstream commit e0a10f4691c2fa74d228a1c21772456afef1e060 ]
Static analysis tools don't like the fact that fd could be zero
in the error path. This won't happen in real world because
stdin would have to be closed, then other error occurring.
Coverity issue: 14079
Fixes: 02f96a0a82d1 ("net/tap: add TUN/TAP device PMD")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Keith Wiles <keith.wiles@intel.com>
---
drivers/net/tap/rte_eth_tap.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
index c38c02ef1..466624ae6 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -222,7 +222,7 @@ tun_alloc(struct pmd_internals *pmd)
return fd;
error:
- if (fd > 0)
+ if (fd >= 0)
close(fd);
return -1;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.627649044 -0800
+++ 0101-net-tap-fix-file-descriptor-check.patch 2018-11-29 15:01:45.266958000 -0800
@@ -1,15 +1,16 @@
-From e0a10f4691c2fa74d228a1c21772456afef1e060 Mon Sep 17 00:00:00 2001
+From 428973bd5398209c43f69ac956f4239a43db2239 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Tue, 6 Nov 2018 11:30:05 -0800
Subject: [PATCH] net/tap: fix file descriptor check
+[ upstream commit e0a10f4691c2fa74d228a1c21772456afef1e060 ]
+
Static analysis tools don't like the fact that fd could be zero
in the error path. This won't happen in real world because
stdin would have to be closed, then other error occurring.
Coverity issue: 14079
Fixes: 02f96a0a82d1 ("net/tap: add TUN/TAP device PMD")
-Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Keith Wiles <keith.wiles@intel.com>
@@ -18,10 +19,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/tap/rte_eth_tap.c b/drivers/net/tap/rte_eth_tap.c
-index e7817e896..75b82f2b3 100644
+index c38c02ef1..466624ae6 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
-@@ -248,7 +248,7 @@ tun_alloc(struct pmd_internals *pmd, int is_keepalive)
+@@ -222,7 +222,7 @@ tun_alloc(struct pmd_internals *pmd)
return fd;
error:
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/e1000/base: fix uninitialized variable' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (99 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/tap: fix file descriptor check' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/mlx5: fix build on PPC64' " Yongseok Koh
` (25 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Yunjian Wang; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 3a4ad0a6836591c211ef4bd541b2ba9a51b1f962 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Tue, 6 Nov 2018 15:57:01 +0800
Subject: [PATCH] net/e1000/base: fix uninitialized variable
[ upstream commit ba46f5e60f03fdc357e5fcbc370eb2812c3120ff ]
This patch fixes the variable 'phy_word' may be used uninitialized.
Fixes: 5b6439cf03a4 ("e1000/base: support different EEARBC for i210")
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/e1000/base/e1000_i210.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/e1000/base/e1000_i210.c b/drivers/net/e1000/base/e1000_i210.c
index 277331c42..c2abb43fb 100644
--- a/drivers/net/e1000/base/e1000_i210.c
+++ b/drivers/net/e1000/base/e1000_i210.c
@@ -941,6 +941,7 @@ STATIC s32 e1000_pll_workaround_i210(struct e1000_hw *hw)
if (ret_val != E1000_SUCCESS)
nvm_word = E1000_INVM_DEFAULT_AL;
tmp_nvm = nvm_word | E1000_INVM_PLL_WO_VAL;
+ phy_word = E1000_PHY_PLL_UNCONF;
for (i = 0; i < E1000_MAX_PLL_TRIES; i++) {
/* check current state directly from internal PHY */
e1000_read_phy_reg_gs40g(hw, (E1000_PHY_PLL_FREQ_PAGE |
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.669222602 -0800
+++ 0102-net-e1000-base-fix-uninitialized-variable.patch 2018-11-29 15:01:45.267965000 -0800
@@ -1,12 +1,13 @@
-From ba46f5e60f03fdc357e5fcbc370eb2812c3120ff Mon Sep 17 00:00:00 2001
+From 3a4ad0a6836591c211ef4bd541b2ba9a51b1f962 Mon Sep 17 00:00:00 2001
From: Yunjian Wang <wangyunjian@huawei.com>
Date: Tue, 6 Nov 2018 15:57:01 +0800
Subject: [PATCH] net/e1000/base: fix uninitialized variable
+[ upstream commit ba46f5e60f03fdc357e5fcbc370eb2812c3120ff ]
+
This patch fixes the variable 'phy_word' may be used uninitialized.
Fixes: 5b6439cf03a4 ("e1000/base: support different EEARBC for i210")
-Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/mlx5: fix build on PPC64' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (100 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/e1000/base: fix uninitialized variable' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-12-20 0:20 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/thunderx: fix Tx desc corruption in scatter-gather mode' " Yongseok Koh
` (24 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Christian Ehrhardt, Adrien Mazarguil, David Wilder, Chao Zhu,
dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Wed, 7 Nov 2018 17:00:28 +0100
Subject: [PATCH] net/mlx5: fix build on PPC64
[ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]
The AltiVec header file breaks boolean type:
error: incompatible types when initializing type
'__vector _bool int' {aka '_vector(4) __bool int'} using type 'int'
If __APPLE_ALTIVEC__ is defined, then bool type is redefined
and conflicts with stdbool.h.
There is no good solution to fix it for the whole project without
breaking something else, so a workaround is inserted in mlx5 PMD.
This workaround is not compatible with C++ but there is no C++ in DPDK.
Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
Suggested-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Tested-by: David Wilder <dwilder@us.ibm.com>
Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
---
drivers/net/mlx5/mlx5_utils.h | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
index e48352f37..572296575 100644
--- a/drivers/net/mlx5/mlx5_utils.h
+++ b/drivers/net/mlx5/mlx5_utils.h
@@ -43,6 +43,16 @@
#include "mlx5_defs.h"
+/*
+ * Compilation workaround for PPC64 when AltiVec is fully enabled, e.g. std=c11.
+ * Otherwise there would be a type conflict between stdbool and altivec.
+ */
+#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
+#undef bool
+/* redefine as in stdbool.h */
+#define bool _Bool
+#endif
+
/* Bit-field manipulation. */
#define BITFIELD_DECLARE(bf, type, size) \
type bf[(((size_t)(size) / (sizeof(type) * CHAR_BIT)) + \
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.710766496 -0800
+++ 0103-net-mlx5-fix-build-on-PPC64.patch 2018-11-29 15:01:45.273961000 -0800
@@ -1,8 +1,10 @@
-From 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d Mon Sep 17 00:00:00 2001
+From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Wed, 7 Nov 2018 17:00:28 +0100
Subject: [PATCH] net/mlx5: fix build on PPC64
+[ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]
+
The AltiVec header file breaks boolean type:
error: incompatible types when initializing type
@@ -25,10 +27,10 @@
1 file changed, 10 insertions(+)
diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
-index 886f60e61..97092c749 100644
+index e48352f37..572296575 100644
--- a/drivers/net/mlx5/mlx5_utils.h
+++ b/drivers/net/mlx5/mlx5_utils.h
-@@ -15,6 +15,16 @@
+@@ -43,6 +43,16 @@
#include "mlx5_defs.h"
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/thunderx: fix Tx desc corruption in scatter-gather mode' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (101 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/mlx5: fix build on PPC64' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio-user: fix typo in error message' " Yongseok Koh
` (23 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Subrahmanyam Nilla; +Cc: Nithin Dabilpuram, Jerin Jacob, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From dc72884a15aeef1a473ac22a51db24dd0d59f918 Mon Sep 17 00:00:00 2001
From: Subrahmanyam Nilla <snilla@caviumnetworks.com>
Date: Fri, 9 Nov 2018 05:50:55 +0000
Subject: [PATCH] net/thunderx: fix Tx desc corruption in scatter-gather mode
[ upstream commit 823ebfc219f3fa53361afc7ce663f72464bfb3ff ]
For performance reasons, word1 of send_hdr_s
sub descriptor was not cleared assuming it is always
having default value of zero since it comes from fixed
offsets of SQ buffer.
This is causing issues in case of SG mode because,
the size of send command might change and hence the word1
of send_hdr_s is not always at fixed offsets of the SQ buffer
and hence not having default value of zero.
This fixes the issue by clearing the word1 in case of SG mode
for every packet.
Fixes: 1c421f18e095 ("net/thunderx: add single and multi-segment Tx")
Signed-off-by: Subrahmanyam Nilla <snilla@caviumnetworks.com>
Signed-off-by: Nithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
drivers/net/thunderx/nicvf_rxtx.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/thunderx/nicvf_rxtx.c b/drivers/net/thunderx/nicvf_rxtx.c
index 06cbc4635..7e8688b42 100644
--- a/drivers/net/thunderx/nicvf_rxtx.c
+++ b/drivers/net/thunderx/nicvf_rxtx.c
@@ -89,6 +89,14 @@ fill_sq_desc_header(union sq_entry_t *entry, struct rte_mbuf *pkt)
entry->buff[0] = sqe.buff[0];
}
+static inline void __hot
+fill_sq_desc_header_zero_w1(union sq_entry_t *entry,
+ struct rte_mbuf *pkt)
+{
+ fill_sq_desc_header(entry, pkt);
+ entry->buff[1] = 0ULL;
+}
+
void __hot
nicvf_single_pool_free_xmited_buffers(struct nicvf_txq *sq)
{
@@ -232,7 +240,7 @@ nicvf_xmit_pkts_multiseg(void *tx_queue, struct rte_mbuf **tx_pkts,
used_bufs += nb_segs;
txbuffs[tail] = NULL;
- fill_sq_desc_header(desc_ptr + tail, pkt);
+ fill_sq_desc_header_zero_w1(desc_ptr + tail, pkt);
tail = (tail + 1) & qlen_mask;
txbuffs[tail] = pkt;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.751133618 -0800
+++ 0104-net-thunderx-fix-Tx-desc-corruption-in-scatter-gathe.patch 2018-11-29 15:01:45.275958000 -0800
@@ -1,8 +1,10 @@
-From 823ebfc219f3fa53361afc7ce663f72464bfb3ff Mon Sep 17 00:00:00 2001
+From dc72884a15aeef1a473ac22a51db24dd0d59f918 Mon Sep 17 00:00:00 2001
From: Subrahmanyam Nilla <snilla@caviumnetworks.com>
Date: Fri, 9 Nov 2018 05:50:55 +0000
Subject: [PATCH] net/thunderx: fix Tx desc corruption in scatter-gather mode
+[ upstream commit 823ebfc219f3fa53361afc7ce663f72464bfb3ff ]
+
For performance reasons, word1 of send_hdr_s
sub descriptor was not cleared assuming it is always
having default value of zero since it comes from fixed
@@ -16,7 +18,6 @@
for every packet.
Fixes: 1c421f18e095 ("net/thunderx: add single and multi-segment Tx")
-Cc: stable@dpdk.org
Signed-off-by: Subrahmanyam Nilla <snilla@caviumnetworks.com>
Signed-off-by: Nithin Dabilpuram <nithin.dabilpuram@caviumnetworks.com>
@@ -26,10 +27,10 @@
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/drivers/net/thunderx/nicvf_rxtx.c b/drivers/net/thunderx/nicvf_rxtx.c
-index 247c35685..1c4287431 100644
+index 06cbc4635..7e8688b42 100644
--- a/drivers/net/thunderx/nicvf_rxtx.c
+++ b/drivers/net/thunderx/nicvf_rxtx.c
-@@ -61,6 +61,14 @@ fill_sq_desc_header(union sq_entry_t *entry, struct rte_mbuf *pkt)
+@@ -89,6 +89,14 @@ fill_sq_desc_header(union sq_entry_t *entry, struct rte_mbuf *pkt)
entry->buff[0] = sqe.buff[0];
}
@@ -44,7 +45,7 @@
void __hot
nicvf_single_pool_free_xmited_buffers(struct nicvf_txq *sq)
{
-@@ -204,7 +212,7 @@ nicvf_xmit_pkts_multiseg(void *tx_queue, struct rte_mbuf **tx_pkts,
+@@ -232,7 +240,7 @@ nicvf_xmit_pkts_multiseg(void *tx_queue, struct rte_mbuf **tx_pkts,
used_bufs += nb_segs;
txbuffs[tail] = NULL;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/virtio-user: fix typo in error message' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (102 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/thunderx: fix Tx desc corruption in scatter-gather mode' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix unchecked return value' " Yongseok Koh
` (22 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Jens Freimann, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From ab8e8312236d7abc9e04d1e178dd7c2070bb10ea Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Tue, 6 Nov 2018 14:40:22 +0800
Subject: [PATCH] net/virtio-user: fix typo in error message
[ upstream commit 2dac0df47c5666fe53513a9320cc95f1c5e72d4e ]
The param we are checking is VIRTIO_USER_ARG_PATH, instead
of VIRTIO_USER_ARG_QUEUE_SIZE.
Fixes: ce2eabdd43ec ("net/virtio-user: add virtual device")
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
---
drivers/net/virtio/virtio_user_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c
index 7be57ce66..15d459d3c 100644
--- a/drivers/net/virtio/virtio_user_ethdev.c
+++ b/drivers/net/virtio/virtio_user_ethdev.c
@@ -423,7 +423,7 @@ virtio_user_pmd_probe(struct rte_vdev_device *dev)
}
} else {
PMD_INIT_LOG(ERR, "arg %s is mandatory for virtio_user",
- VIRTIO_USER_ARG_QUEUE_SIZE);
+ VIRTIO_USER_ARG_PATH);
goto end;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.791623342 -0800
+++ 0105-net-virtio-user-fix-typo-in-error-message.patch 2018-11-29 15:01:45.276963000 -0800
@@ -1,13 +1,14 @@
-From 2dac0df47c5666fe53513a9320cc95f1c5e72d4e Mon Sep 17 00:00:00 2001
+From ab8e8312236d7abc9e04d1e178dd7c2070bb10ea Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Tue, 6 Nov 2018 14:40:22 +0800
Subject: [PATCH] net/virtio-user: fix typo in error message
+[ upstream commit 2dac0df47c5666fe53513a9320cc95f1c5e72d4e ]
+
The param we are checking is VIRTIO_USER_ARG_PATH, instead
of VIRTIO_USER_ARG_QUEUE_SIZE.
Fixes: ce2eabdd43ec ("net/virtio-user: add virtual device")
-Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
@@ -16,10 +17,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/virtio/virtio_user_ethdev.c b/drivers/net/virtio/virtio_user_ethdev.c
-index 61b7c0a38..f8791391a 100644
+index 7be57ce66..15d459d3c 100644
--- a/drivers/net/virtio/virtio_user_ethdev.c
+++ b/drivers/net/virtio/virtio_user_ethdev.c
-@@ -484,7 +484,7 @@ virtio_user_pmd_probe(struct rte_vdev_device *dev)
+@@ -423,7 +423,7 @@ virtio_user_pmd_probe(struct rte_vdev_device *dev)
}
} else {
PMD_INIT_LOG(ERR, "arg %s is mandatory for virtio_user",
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/virtio: fix unchecked return value' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (103 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio-user: fix typo in error message' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-30 15:23 ` Tiwei Bie
2018-11-29 23:11 ` [dpdk-stable] patch 'vhost: remove unneeded null pointer check' " Yongseok Koh
` (21 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 85fa65d2e2a0b9e0ac4baa0ff2c5f99bed5427ec Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 7 Nov 2018 17:01:01 +0800
Subject: [PATCH] net/virtio: fix unchecked return value
[ upstream commit ecfae1510edc1391285aa566a2d31e7eae8fc6d2 ]
Coverity issue: 302861
Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
drivers/net/virtio/virtio_pci.c | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
index 89986c335..249ec6d3a 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
@@ -658,9 +658,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
hw->common_cfg = get_cfg_addr(dev, &cap);
break;
case VIRTIO_PCI_CAP_NOTIFY_CFG:
- rte_pci_read_config(dev, &hw->notify_off_multiplier,
+ ret = rte_pci_read_config(dev,
+ &hw->notify_off_multiplier,
4, pos + sizeof(cap));
- hw->notify_base = get_cfg_addr(dev, &cap);
+ if (ret != 4)
+ PMD_INIT_LOG(DEBUG,
+ "failed to read notify_off_multiplier, ret %d",
+ ret);
+ else
+ hw->notify_base = get_cfg_addr(dev, &cap);
break;
case VIRTIO_PCI_CAP_DEVICE_CFG:
hw->dev_cfg = get_cfg_addr(dev, &cap);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.832061811 -0800
+++ 0106-net-virtio-fix-unchecked-return-value.patch 2018-11-29 15:01:45.278957000 -0800
@@ -1,11 +1,12 @@
-From ecfae1510edc1391285aa566a2d31e7eae8fc6d2 Mon Sep 17 00:00:00 2001
+From 85fa65d2e2a0b9e0ac4baa0ff2c5f99bed5427ec Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 7 Nov 2018 17:01:01 +0800
Subject: [PATCH] net/virtio: fix unchecked return value
+[ upstream commit ecfae1510edc1391285aa566a2d31e7eae8fc6d2 ]
+
Coverity issue: 302861
Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
-Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
@@ -14,10 +15,10 @@
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
-index 21110cd69..c8883c32e 100644
+index 89986c335..249ec6d3a 100644
--- a/drivers/net/virtio/virtio_pci.c
+++ b/drivers/net/virtio/virtio_pci.c
-@@ -614,9 +614,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
+@@ -658,9 +658,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
hw->common_cfg = get_cfg_addr(dev, &cap);
break;
case VIRTIO_PCI_CAP_NOTIFY_CFG:
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'vhost: remove unneeded null pointer check' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (104 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix unchecked return value' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/bonding: fix crash when stopping mode 4 port' " Yongseok Koh
` (20 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From dd95fe299f3cb7e76d48d2503841fd9532b91421 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 7 Nov 2018 17:01:02 +0800
Subject: [PATCH] vhost: remove unneeded null pointer check
[ upstream commit 0541588a44bff07e4aae4c9cde8586326955c378 ]
The caller will guarantee that msg won't be null. Remove
the unneeded null pointer check which caused a Coverity
warning.
Coverity issue: 323484
Fixes: 8f972312b8f4 ("vhost: support vhost-user")
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
lib/librte_vhost/vhost_user.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 0eb5e0d65..9ab37ae5e 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1204,7 +1204,7 @@ read_vhost_message(int sockfd, struct VhostUserMsg *msg)
if (ret <= 0)
return ret;
- if (msg && msg->size) {
+ if (msg->size) {
if (msg->size > sizeof(msg->payload)) {
RTE_LOG(ERR, VHOST_CONFIG,
"invalid msg size: %d\n", msg->size);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.872618053 -0800
+++ 0107-vhost-remove-unneeded-null-pointer-check.patch 2018-11-29 15:01:45.280957000 -0800
@@ -1,15 +1,16 @@
-From 0541588a44bff07e4aae4c9cde8586326955c378 Mon Sep 17 00:00:00 2001
+From dd95fe299f3cb7e76d48d2503841fd9532b91421 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Wed, 7 Nov 2018 17:01:02 +0800
Subject: [PATCH] vhost: remove unneeded null pointer check
+[ upstream commit 0541588a44bff07e4aae4c9cde8586326955c378 ]
+
The caller will guarantee that msg won't be null. Remove
the unneeded null pointer check which caused a Coverity
warning.
Coverity issue: 323484
Fixes: 8f972312b8f4 ("vhost: support vhost-user")
-Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
@@ -18,10 +19,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
-index cc154f312..3ea64eba6 100644
+index 0eb5e0d65..9ab37ae5e 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
-@@ -1732,7 +1732,7 @@ read_vhost_message(int sockfd, struct VhostUserMsg *msg)
+@@ -1204,7 +1204,7 @@ read_vhost_message(int sockfd, struct VhostUserMsg *msg)
if (ret <= 0)
return ret;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/bonding: fix crash when stopping mode 4 port' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (105 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'vhost: remove unneeded null pointer check' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/qede: fix crash when configure fails' " Yongseok Koh
` (19 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Radu Nicolau; +Cc: Chas Williams, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 9766f95a972d6a1fc3cbe62db60ef9b901defce7 Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Thu, 8 Nov 2018 15:26:42 +0000
Subject: [PATCH] net/bonding: fix crash when stopping mode 4 port
[ upstream commit 0911d4ec01839c9149a0df5758d00d9d57a47cea ]
When stopping a bonded port all slaves are deactivated. Attempting
to deactivate a slave that was never activated will result in a segfault
when mode 4 is used.
Fixes: 7486331308f6 ("net/bonding: stop and deactivate slaves on stop")
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Chas Williams <chas3@att.com>
---
drivers/net/bonding/rte_eth_bond_pmd.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
index d4b37d183..bf39a8ff6 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
@@ -2068,9 +2068,14 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
internals->link_status_polling_enabled = 0;
for (i = 0; i < internals->slave_count; i++) {
- internals->slaves[i].last_link_status = 0;
- rte_eth_dev_stop(internals->slaves[i].port_id);
- deactivate_slave(eth_dev, internals->slaves[i].port_id);
+ uint16_t slave_id = internals->slaves[i].port_id;
+ if (find_slave_by_id(internals->active_slaves,
+ internals->active_slave_count, slave_id) !=
+ internals->active_slave_count) {
+ internals->slaves[i].last_link_status = 0;
+ rte_eth_dev_stop(slave_id);
+ deactivate_slave(eth_dev, slave_id);
+ }
}
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.915881598 -0800
+++ 0108-net-bonding-fix-crash-when-stopping-mode-4-port.patch 2018-11-29 15:01:45.282957000 -0800
@@ -1,14 +1,15 @@
-From 0911d4ec01839c9149a0df5758d00d9d57a47cea Mon Sep 17 00:00:00 2001
+From 9766f95a972d6a1fc3cbe62db60ef9b901defce7 Mon Sep 17 00:00:00 2001
From: Radu Nicolau <radu.nicolau@intel.com>
Date: Thu, 8 Nov 2018 15:26:42 +0000
Subject: [PATCH] net/bonding: fix crash when stopping mode 4 port
+[ upstream commit 0911d4ec01839c9149a0df5758d00d9d57a47cea ]
+
When stopping a bonded port all slaves are deactivated. Attempting
to deactivate a slave that was never activated will result in a segfault
when mode 4 is used.
Fixes: 7486331308f6 ("net/bonding: stop and deactivate slaves on stop")
-Cc: stable@dpdk.org
Signed-off-by: Radu Nicolau <radu.nicolau@intel.com>
Acked-by: Chas Williams <chas3@att.com>
@@ -17,10 +18,10 @@
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/drivers/net/bonding/rte_eth_bond_pmd.c b/drivers/net/bonding/rte_eth_bond_pmd.c
-index 1a6d8e4df..2661620ab 100644
+index d4b37d183..bf39a8ff6 100644
--- a/drivers/net/bonding/rte_eth_bond_pmd.c
+++ b/drivers/net/bonding/rte_eth_bond_pmd.c
-@@ -2181,9 +2181,14 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
+@@ -2068,9 +2068,14 @@ bond_ethdev_stop(struct rte_eth_dev *eth_dev)
internals->link_status_polling_enabled = 0;
for (i = 0; i < internals->slave_count; i++) {
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/qede: fix crash when configure fails' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (106 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/bonding: fix crash when stopping mode 4 port' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' " Yongseok Koh
` (18 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Timothy Redaelli; +Cc: Rasesh Mody, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From aebc3d7f39255c7dfc2f458baa8c63570c1bc5f0 Mon Sep 17 00:00:00 2001
From: Timothy Redaelli <tredaelli@redhat.com>
Date: Fri, 9 Nov 2018 16:45:40 +0100
Subject: [PATCH] net/qede: fix crash when configure fails
[ upstream commit 69d3e963e446be9c8d98638223589e8cdf44dd9e ]
Currently, if configuration fails (for example if a 100G card is used
with an odd number of RX/TX queues) QEDE crashes due to a null pointer
dereference.
This commit fixes it by checking that the pointer is not NULL before
using it.
Fixes: 7105b24f4bb8 ("net/qede: fix memory alloc for multiple port reconfig")
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Rasesh Mody <rasesh.mody@cavium.com>
---
drivers/net/qede/qede_rxtx.c | 18 ++++++++++--------
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
index ffe196a68..c88182be4 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
@@ -192,12 +192,13 @@ static void qede_rx_queue_release_mbufs(struct qede_rx_queue *rxq)
void qede_rx_queue_release(void *rx_queue)
{
struct qede_rx_queue *rxq = rx_queue;
- struct qede_dev *qdev = rxq->qdev;
- struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
-
- PMD_INIT_FUNC_TRACE(edev);
+ struct qede_dev *qdev;
+ struct ecore_dev *edev;
if (rxq) {
+ qdev = rxq->qdev;
+ edev = QEDE_INIT_EDEV(qdev);
+ PMD_INIT_FUNC_TRACE(edev);
qede_rx_queue_release_mbufs(rxq);
qdev->ops->common->chain_free(edev, &rxq->rx_bd_ring);
qdev->ops->common->chain_free(edev, &rxq->rx_comp_ring);
@@ -356,12 +357,13 @@ static void qede_tx_queue_release_mbufs(struct qede_tx_queue *txq)
void qede_tx_queue_release(void *tx_queue)
{
struct qede_tx_queue *txq = tx_queue;
- struct qede_dev *qdev = txq->qdev;
- struct ecore_dev *edev = QEDE_INIT_EDEV(qdev);
-
- PMD_INIT_FUNC_TRACE(edev);
+ struct qede_dev *qdev;
+ struct ecore_dev *edev;
if (txq) {
+ qdev = txq->qdev;
+ edev = QEDE_INIT_EDEV(qdev);
+ PMD_INIT_FUNC_TRACE(edev);
qede_tx_queue_release_mbufs(txq);
qdev->ops->common->chain_free(edev, &txq->tx_pbl);
rte_free(txq->sw_tx_ring);
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:49.959471031 -0800
+++ 0109-net-qede-fix-crash-when-configure-fails.patch 2018-11-29 15:01:45.285958000 -0800
@@ -1,8 +1,10 @@
-From 69d3e963e446be9c8d98638223589e8cdf44dd9e Mon Sep 17 00:00:00 2001
+From aebc3d7f39255c7dfc2f458baa8c63570c1bc5f0 Mon Sep 17 00:00:00 2001
From: Timothy Redaelli <tredaelli@redhat.com>
Date: Fri, 9 Nov 2018 16:45:40 +0100
Subject: [PATCH] net/qede: fix crash when configure fails
+[ upstream commit 69d3e963e446be9c8d98638223589e8cdf44dd9e ]
+
Currently, if configuration fails (for example if a 100G card is used
with an odd number of RX/TX queues) QEDE crashes due to a null pointer
dereference.
@@ -11,7 +13,6 @@
using it.
Fixes: 7105b24f4bb8 ("net/qede: fix memory alloc for multiple port reconfig")
-Cc: stable@dpdk.org
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Acked-by: Rasesh Mody <rasesh.mody@cavium.com>
@@ -20,10 +21,10 @@
1 file changed, 10 insertions(+), 8 deletions(-)
diff --git a/drivers/net/qede/qede_rxtx.c b/drivers/net/qede/qede_rxtx.c
-index 8a4772f46..296189107 100644
+index ffe196a68..c88182be4 100644
--- a/drivers/net/qede/qede_rxtx.c
+++ b/drivers/net/qede/qede_rxtx.c
-@@ -235,12 +235,13 @@ static void qede_rx_queue_release_mbufs(struct qede_rx_queue *rxq)
+@@ -192,12 +192,13 @@ static void qede_rx_queue_release_mbufs(struct qede_rx_queue *rxq)
void qede_rx_queue_release(void *rx_queue)
{
struct qede_rx_queue *rxq = rx_queue;
@@ -41,7 +42,7 @@
qede_rx_queue_release_mbufs(rxq);
qdev->ops->common->chain_free(edev, &rxq->rx_bd_ring);
qdev->ops->common->chain_free(edev, &rxq->rx_comp_ring);
-@@ -399,12 +400,13 @@ static void qede_tx_queue_release_mbufs(struct qede_tx_queue *txq)
+@@ -356,12 +357,13 @@ static void qede_tx_queue_release_mbufs(struct qede_tx_queue *txq)
void qede_tx_queue_release(void *tx_queue)
{
struct qede_tx_queue *txq = tx_queue;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (107 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/qede: fix crash when configure fails' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbevf: fix link state' " Yongseok Koh
` (17 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Raslan Darawsheh; +Cc: Ophir Munk, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From f081f8c65088f7fab4b1071230ca723bc817c980 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland@mellanox.com>
Date: Sun, 11 Nov 2018 15:31:37 +0000
Subject: [PATCH] app/testpmd: fix L4 length for UDP checksum
[ upstream commit 2b5651c026d8d1a687a8f7a210b1b8f13f906911 ]
testpmd only sets the L4 len in case of TCP packets.
some PMD's like tap rely on mbuf meta data to calculate csum
This will set the L4 len for UDP packets same as TCP
Fixes: 160c3dc9458c ("app/testpmd: introduce IP parsing functions in csum fwd engine")
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
app/test-pmd/csumonly.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
index aa29f5fc1..4800e74e5 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
@@ -135,7 +135,9 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct testpmd_offload_info *info)
if (info->l4_proto == IPPROTO_TCP) {
tcp_hdr = (struct tcp_hdr *)((char *)ipv4_hdr + info->l3_len);
info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
- } else
+ } else if (info->l4_proto == IPPROTO_UDP)
+ info->l4_len = sizeof(struct udp_hdr);
+ else
info->l4_len = 0;
}
@@ -152,7 +154,9 @@ parse_ipv6(struct ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
if (info->l4_proto == IPPROTO_TCP) {
tcp_hdr = (struct tcp_hdr *)((char *)ipv6_hdr + info->l3_len);
info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
- } else
+ } else if (info->l4_proto == IPPROTO_UDP)
+ info->l4_len = sizeof(struct udp_hdr);
+ else
info->l4_len = 0;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.002712297 -0800
+++ 0110-app-testpmd-fix-L4-length-for-UDP-checksum.patch 2018-11-29 15:01:45.287957000 -0800
@@ -1,15 +1,16 @@
-From 2b5651c026d8d1a687a8f7a210b1b8f13f906911 Mon Sep 17 00:00:00 2001
+From f081f8c65088f7fab4b1071230ca723bc817c980 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland@mellanox.com>
Date: Sun, 11 Nov 2018 15:31:37 +0000
Subject: [PATCH] app/testpmd: fix L4 length for UDP checksum
+[ upstream commit 2b5651c026d8d1a687a8f7a210b1b8f13f906911 ]
+
testpmd only sets the L4 len in case of TCP packets.
some PMD's like tap rely on mbuf meta data to calculate csum
This will set the L4 len for UDP packets same as TCP
Fixes: 160c3dc9458c ("app/testpmd: introduce IP parsing functions in csum fwd engine")
-CC: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
@@ -19,10 +20,10 @@
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/app/test-pmd/csumonly.c b/app/test-pmd/csumonly.c
-index dce4b9be7..ffeee2051 100644
+index aa29f5fc1..4800e74e5 100644
--- a/app/test-pmd/csumonly.c
+++ b/app/test-pmd/csumonly.c
-@@ -111,7 +111,9 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct testpmd_offload_info *info)
+@@ -135,7 +135,9 @@ parse_ipv4(struct ipv4_hdr *ipv4_hdr, struct testpmd_offload_info *info)
if (info->l4_proto == IPPROTO_TCP) {
tcp_hdr = (struct tcp_hdr *)((char *)ipv4_hdr + info->l3_len);
info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
@@ -33,7 +34,7 @@
info->l4_len = 0;
}
-@@ -128,7 +130,9 @@ parse_ipv6(struct ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
+@@ -152,7 +154,9 @@ parse_ipv6(struct ipv6_hdr *ipv6_hdr, struct testpmd_offload_info *info)
if (info->l4_proto == IPPROTO_TCP) {
tcp_hdr = (struct tcp_hdr *)((char *)ipv6_hdr + info->l3_len);
info->l4_len = (tcp_hdr->data_off & 0xf0) >> 2;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/ixgbevf: fix link state' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (108 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test/reorder: fix out of bound access' " Yongseok Koh
` (16 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Yanglong Wu; +Cc: Rosen Xu, Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a73f60edb12c420fc8c04c1e42b37d9efb2ebab5 Mon Sep 17 00:00:00 2001
From: Yanglong Wu <yanglong.wu@intel.com>
Date: Tue, 13 Nov 2018 14:34:43 +0800
Subject: [PATCH] net/ixgbevf: fix link state
[ upstream commit 91546fb62e675943a574c2542c0486f2928fed49 ]
For ixgbevf kernel driver, link status changes from down to up
will trigger vf kernel driver send IXGBE_VF_RESET message to pf
kernel driver, after this, vf kernel driver will disable and enable
it self. By these series operations, the vf kernel driver report
link up. Besides, all these operations handles in kernel thread.
For DPDK user space driver, it only gets link status changes from
down to up, but miss IXGBE_VF_RESET message sending and reset itself.
If we will add fully implementation of link status change for DPDK
user space driver, we need take much more modification. We have
aligned that for link status changes from down to up we only notify
link is up, users need to reset vf port.
Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/ixgbe/ixgbe_ethdev.c | 15 +--------------
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
index d7eb4580d..5f7fb0f1d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
@@ -3865,11 +3865,6 @@ static int
ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
int *link_up, int wait_to_complete)
{
- /**
- * for a quick link status checking, wait_to_compelet == 0,
- * skip PF link status checking
- */
- bool no_pflink_check = wait_to_complete == 0;
struct ixgbe_mbx_info *mbx = &hw->mbx;
struct ixgbe_mac_info *mac = &hw->mac;
uint32_t links_reg, in_msg;
@@ -3930,14 +3925,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
*speed = IXGBE_LINK_SPEED_UNKNOWN;
}
- if (no_pflink_check) {
- if (*speed == IXGBE_LINK_SPEED_UNKNOWN)
- mac->get_link_status = true;
- else
- mac->get_link_status = false;
-
- goto out;
- }
/* if the read failed it could just be a mailbox collision, best wait
* until we are called again and don't report an error
*/
@@ -3947,7 +3934,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
/* msg is not CTS and is NACK we must have lost CTS status */
if (in_msg & IXGBE_VT_MSGTYPE_NACK)
- ret_val = -1;
+ mac->get_link_status = false;
goto out;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.046724361 -0800
+++ 0111-net-ixgbevf-fix-link-state.patch 2018-11-29 15:01:45.294958000 -0800
@@ -1,8 +1,10 @@
-From 91546fb62e675943a574c2542c0486f2928fed49 Mon Sep 17 00:00:00 2001
+From a73f60edb12c420fc8c04c1e42b37d9efb2ebab5 Mon Sep 17 00:00:00 2001
From: Yanglong Wu <yanglong.wu@intel.com>
Date: Tue, 13 Nov 2018 14:34:43 +0800
Subject: [PATCH] net/ixgbevf: fix link state
+[ upstream commit 91546fb62e675943a574c2542c0486f2928fed49 ]
+
For ixgbevf kernel driver, link status changes from down to up
will trigger vf kernel driver send IXGBE_VF_RESET message to pf
kernel driver, after this, vf kernel driver will disable and enable
@@ -16,7 +18,6 @@
link is up, users need to reset vf port.
Fixes: dc66e5fd01b9 ("net/ixgbe: improve link state check on VF")
-Cc: stable@dpdk.org
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Signed-off-by: Yanglong Wu <yanglong.wu@intel.com>
@@ -26,10 +27,10 @@
1 file changed, 1 insertion(+), 14 deletions(-)
diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c b/drivers/net/ixgbe/ixgbe_ethdev.c
-index 8148577f5..91ba6201d 100644
+index d7eb4580d..5f7fb0f1d 100644
--- a/drivers/net/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/ixgbe/ixgbe_ethdev.c
-@@ -3880,11 +3880,6 @@ static int
+@@ -3865,11 +3865,6 @@ static int
ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
int *link_up, int wait_to_complete)
{
@@ -41,7 +42,7 @@
struct ixgbe_mbx_info *mbx = &hw->mbx;
struct ixgbe_mac_info *mac = &hw->mac;
uint32_t links_reg, in_msg;
-@@ -3945,14 +3940,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
+@@ -3930,14 +3925,6 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
*speed = IXGBE_LINK_SPEED_UNKNOWN;
}
@@ -56,7 +57,7 @@
/* if the read failed it could just be a mailbox collision, best wait
* until we are called again and don't report an error
*/
-@@ -3962,7 +3949,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
+@@ -3947,7 +3934,7 @@ ixgbevf_check_link(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
if (!(in_msg & IXGBE_VT_MSGTYPE_CTS)) {
/* msg is not CTS and is NACK we must have lost CTS status */
if (in_msg & IXGBE_VT_MSGTYPE_NACK)
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'test/reorder: fix out of bound access' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (109 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbevf: fix link state' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'efd: fix write unlock during ring creation' " Yongseok Koh
` (15 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 58c39aedb3724255b877df3d6d7e71202031ee20 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Tue, 13 Nov 2018 23:31:37 +0000
Subject: [PATCH] test/reorder: fix out of bound access
[ upstream commit 1af9bc9c60291e43aa26f8ee92371c8b04a9b55f ]
The value of array index 'i' is out of bound because of the previous
loop it has been used.
Assuming intention is using '0' since the check before free is robufs[0]
check, fixing according.
Fixes: ecd867faa860 ("test/reorder: fix freeing mbuf twice")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
test/test/test_reorder.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/test/test_reorder.c b/test/test/test_reorder.c
index 6f2c23069..d5f9d2299 100644
--- a/test/test/test_reorder.c
+++ b/test/test/test_reorder.c
@@ -298,7 +298,7 @@ test_reorder_drain(void)
goto exit;
}
if (robufs[0] != NULL)
- rte_pktmbuf_free(robufs[i]);
+ rte_pktmbuf_free(robufs[0]);
/* Insert more packets
* RB[] = {NULL, NULL, NULL, NULL}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.094756381 -0800
+++ 0112-test-reorder-fix-out-of-bound-access.patch 2018-11-29 15:01:45.295962000 -0800
@@ -1,8 +1,10 @@
-From 1af9bc9c60291e43aa26f8ee92371c8b04a9b55f Mon Sep 17 00:00:00 2001
+From 58c39aedb3724255b877df3d6d7e71202031ee20 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Tue, 13 Nov 2018 23:31:37 +0000
Subject: [PATCH] test/reorder: fix out of bound access
+[ upstream commit 1af9bc9c60291e43aa26f8ee92371c8b04a9b55f ]
+
The value of array index 'i' is out of bound because of the previous
loop it has been used.
@@ -10,7 +12,6 @@
check, fixing according.
Fixes: ecd867faa860 ("test/reorder: fix freeing mbuf twice")
-Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
@@ -18,10 +19,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/test/test/test_reorder.c b/test/test/test_reorder.c
-index ccee4d086..58fa9c71b 100644
+index 6f2c23069..d5f9d2299 100644
--- a/test/test/test_reorder.c
+++ b/test/test/test_reorder.c
-@@ -269,7 +269,7 @@ test_reorder_drain(void)
+@@ -298,7 +298,7 @@ test_reorder_drain(void)
goto exit;
}
if (robufs[0] != NULL)
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'efd: fix write unlock during ring creation' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (110 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'test/reorder: fix out of bound access' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: fix X710 Rx after reading some registers' " Yongseok Koh
` (14 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Chaitanya Babu Talluri; +Cc: Reshma Pattan, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From d6ec4aa1a7977bdf0282c6139851b868566bd71d Mon Sep 17 00:00:00 2001
From: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Date: Wed, 14 Nov 2018 11:24:06 +0000
Subject: [PATCH] efd: fix write unlock during ring creation
[ upstream commit f493119397d0f5dbe33f67697ff09aa646e5f17c ]
In rte_efd_create() write lock has already been unlocked
before ring creation itself.
So second unlock after the ring creation has been removed.
Fixes: 56b6ef874f80 ("efd: new Elastic Flow Distributor library")
Signed-off-by: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_efd/rte_efd.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c
index 7d0b5cc6d..6b611b555 100644
--- a/lib/librte_efd/rte_efd.c
+++ b/lib/librte_efd/rte_efd.c
@@ -721,7 +721,8 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
offline_cpu_socket, 0);
if (r == NULL) {
RTE_LOG(ERR, EFD, "memory allocation failed\n");
- goto error_unlock_exit;
+ rte_efd_free(table);
+ return NULL;
}
/* Populate free slots ring. Entry zero is reserved for key misses. */
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.144019875 -0800
+++ 0113-efd-fix-write-unlock-during-ring-creation.patch 2018-11-29 15:01:45.298957000 -0800
@@ -1,14 +1,15 @@
-From f493119397d0f5dbe33f67697ff09aa646e5f17c Mon Sep 17 00:00:00 2001
+From d6ec4aa1a7977bdf0282c6139851b868566bd71d Mon Sep 17 00:00:00 2001
From: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Date: Wed, 14 Nov 2018 11:24:06 +0000
Subject: [PATCH] efd: fix write unlock during ring creation
+[ upstream commit f493119397d0f5dbe33f67697ff09aa646e5f17c ]
+
In rte_efd_create() write lock has already been unlocked
before ring creation itself.
So second unlock after the ring creation has been removed.
Fixes: 56b6ef874f80 ("efd: new Elastic Flow Distributor library")
-Cc: stable@dpdk.org
Signed-off-by: Chaitanya Babu Talluri <tallurix.chaitanya.babu@intel.com>
Acked-by: Reshma Pattan <reshma.pattan@intel.com>
@@ -18,10 +19,10 @@
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/lib/librte_efd/rte_efd.c b/lib/librte_efd/rte_efd.c
-index a780e2fe8..e6e5cfda2 100644
+index 7d0b5cc6d..6b611b555 100644
--- a/lib/librte_efd/rte_efd.c
+++ b/lib/librte_efd/rte_efd.c
-@@ -692,7 +692,8 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
+@@ -721,7 +721,8 @@ rte_efd_create(const char *name, uint32_t max_num_rules, uint32_t key_len,
offline_cpu_socket, 0);
if (r == NULL) {
RTE_LOG(ERR, EFD, "memory allocation failed\n");
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e: fix X710 Rx after reading some registers' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (111 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'efd: fix write unlock during ring creation' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbe: fix maximum wait time in comment' " Yongseok Koh
` (13 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Beilei Xing; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 01208c8e526e1efdd8b81d8042c6c161489421ae Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Thu, 15 Nov 2018 11:17:02 +0800
Subject: [PATCH] net/i40e: fix X710 Rx after reading some registers
[ upstream commit 199efc4ac5409403d24a0f21fe382bbce86638ac ]
There's an issue that X710 can't receive any packet after
reading some special registers. That's because these
registers are only valid for X722, read access for non-X722
will cause ECC error.
Fixes: d9efd0136ac1 ("i40e: add EEPROM and registers dumping")
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/i40e/i40e_ethdev.c | 33 +++++++++++++++++++++++++++++++--
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
index 5e2a0f79f..470f67542 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -11205,6 +11205,32 @@ i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
return 0;
}
+/**
+ * This function is used to check if the register is valid.
+ * Below is the valid registers list for X722 only:
+ * 0x2b800--0x2bb00
+ * 0x38700--0x38a00
+ * 0x3d800--0x3db00
+ * 0x208e00--0x209000
+ * 0x20be00--0x20c000
+ * 0x263c00--0x264000
+ * 0x265c00--0x266000
+ */
+static inline int i40e_valid_regs(enum i40e_mac_type type, uint32_t reg_offset)
+{
+ if ((type != I40E_MAC_X722) &&
+ ((reg_offset >= 0x2b800 && reg_offset <= 0x2bb00) ||
+ (reg_offset >= 0x38700 && reg_offset <= 0x38a00) ||
+ (reg_offset >= 0x3d800 && reg_offset <= 0x3db00) ||
+ (reg_offset >= 0x208e00 && reg_offset <= 0x209000) ||
+ (reg_offset >= 0x20be00 && reg_offset <= 0x20c000) ||
+ (reg_offset >= 0x263c00 && reg_offset <= 0x264000) ||
+ (reg_offset >= 0x265c00 && reg_offset <= 0x266000)))
+ return 0;
+ else
+ return 1;
+}
+
static int i40e_get_regs(struct rte_eth_dev *dev,
struct rte_dev_reg_info *regs)
{
@@ -11246,8 +11272,11 @@ static int i40e_get_regs(struct rte_eth_dev *dev,
reg_offset = arr_idx * reg_info->stride1 +
arr_idx2 * reg_info->stride2;
reg_offset += reg_info->base_addr;
- ptr_data[reg_offset >> 2] =
- I40E_READ_REG(hw, reg_offset);
+ if (!i40e_valid_regs(hw->mac.type, reg_offset))
+ ptr_data[reg_offset >> 2] = 0;
+ else
+ ptr_data[reg_offset >> 2] =
+ I40E_READ_REG(hw, reg_offset);
}
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.187294304 -0800
+++ 0114-net-i40e-fix-X710-Rx-after-reading-some-registers.patch 2018-11-29 15:01:45.304958000 -0800
@@ -1,15 +1,16 @@
-From 199efc4ac5409403d24a0f21fe382bbce86638ac Mon Sep 17 00:00:00 2001
+From 01208c8e526e1efdd8b81d8042c6c161489421ae Mon Sep 17 00:00:00 2001
From: Beilei Xing <beilei.xing@intel.com>
Date: Thu, 15 Nov 2018 11:17:02 +0800
Subject: [PATCH] net/i40e: fix X710 Rx after reading some registers
+[ upstream commit 199efc4ac5409403d24a0f21fe382bbce86638ac ]
+
There's an issue that X710 can't receive any packet after
reading some special registers. That's because these
registers are only valid for X722, read access for non-X722
will cause ECC error.
Fixes: d9efd0136ac1 ("i40e: add EEPROM and registers dumping")
-Cc: stable@dpdk.org
Signed-off-by: Beilei Xing <beilei.xing@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -18,10 +19,10 @@
1 file changed, 31 insertions(+), 2 deletions(-)
diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c
-index 790ecc3cc..3628d7f2a 100644
+index 5e2a0f79f..470f67542 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
-@@ -11609,6 +11609,32 @@ i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
+@@ -11205,6 +11205,32 @@ i40e_dev_rx_queue_intr_disable(struct rte_eth_dev *dev, uint16_t queue_id)
return 0;
}
@@ -54,7 +55,7 @@
static int i40e_get_regs(struct rte_eth_dev *dev,
struct rte_dev_reg_info *regs)
{
-@@ -11650,8 +11676,11 @@ static int i40e_get_regs(struct rte_eth_dev *dev,
+@@ -11246,8 +11272,11 @@ static int i40e_get_regs(struct rte_eth_dev *dev,
reg_offset = arr_idx * reg_info->stride1 +
arr_idx2 * reg_info->stride2;
reg_offset += reg_info->base_addr;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/ixgbe: fix maximum wait time in comment' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (112 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: fix X710 Rx after reading some registers' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'examples/ipv4_multicast: fix leak of cloned packets' " Yongseok Koh
` (12 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Xiaolong Ye; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 17e1987fc95d5e700af60555a09e009d1b2ca1bc Mon Sep 17 00:00:00 2001
From: Xiaolong Ye <xiaolong.ye@intel.com>
Date: Thu, 15 Nov 2018 15:20:05 +0800
Subject: [PATCH] net/ixgbe: fix maximum wait time in comment
[ upstream commit 73247f1ced303c16987bb366d38a2d8a0fc40db4 ]
As the code has changed the max wait time to 1000ms, the comment should
be changed accordingly.
Fixes: 64f1c8539c8c ("net/ixgbe: wait longer for link after fiber MAC setup")
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@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 4fd954116..4076dd562 100644
--- a/drivers/net/ixgbe/base/ixgbe_common.c
+++ b/drivers/net/ixgbe/base/ixgbe_common.c
@@ -5147,7 +5147,7 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
ixgbe_flap_tx_laser(hw);
/* Wait for the controller to acquire link. Per IEEE 802.3ap,
- * Section 73.10.2, we may have to wait up to 500ms if KR is
+ * Section 73.10.2, we may have to wait up to 1000ms if KR is
* attempted. 82599 uses the same timing for 10g SFI.
*/
for (i = 0; i < 10; i++) {
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.236625451 -0800
+++ 0115-net-ixgbe-fix-maximum-wait-time-in-comment.patch 2018-11-29 15:01:45.307957000 -0800
@@ -1,13 +1,14 @@
-From 73247f1ced303c16987bb366d38a2d8a0fc40db4 Mon Sep 17 00:00:00 2001
+From 17e1987fc95d5e700af60555a09e009d1b2ca1bc Mon Sep 17 00:00:00 2001
From: Xiaolong Ye <xiaolong.ye@intel.com>
Date: Thu, 15 Nov 2018 15:20:05 +0800
Subject: [PATCH] net/ixgbe: fix maximum wait time in comment
+[ upstream commit 73247f1ced303c16987bb366d38a2d8a0fc40db4 ]
+
As the code has changed the max wait time to 1000ms, the comment should
be changed accordingly.
Fixes: 64f1c8539c8c ("net/ixgbe: wait longer for link after fiber MAC setup")
-Cc: stable@dpdk.org
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
@@ -16,10 +17,10 @@
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 21f973e5e..fb50719fb 100644
+index 4fd954116..4076dd562 100644
--- a/drivers/net/ixgbe/base/ixgbe_common.c
+++ b/drivers/net/ixgbe/base/ixgbe_common.c
-@@ -5259,7 +5259,7 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
+@@ -5147,7 +5147,7 @@ s32 ixgbe_setup_mac_link_multispeed_fiber(struct ixgbe_hw *hw,
ixgbe_flap_tx_laser(hw);
/* Wait for the controller to acquire link. Per IEEE 802.3ap,
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'examples/ipv4_multicast: fix leak of cloned packets' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (113 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbe: fix maximum wait time in comment' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test: release ring resources after PMD perf test' " Yongseok Koh
` (11 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Herakliusz Lipiec; +Cc: Dong Wang, Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From c57aeca6d1e1ad8f09324b710fc66bc357c0c3fa Mon Sep 17 00:00:00 2001
From: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Date: Tue, 13 Nov 2018 11:49:29 +0000
Subject: [PATCH] examples/ipv4_multicast: fix leak of cloned packets
[ upstream commit 91dc9c13ba978fb8147240ed6fa20c41145bf0db ]
The ipv4_multicast sample application was dropping packets
when using mbuf clone. When creating an L2 header and copying
metadata from the source packet, the ol_flags were also copied
along with all the other metadata. Because the cloned packet
had IND_ATTACHED_MBUF flag set in its ol_flags,
this caused the packets to never be freed when using rte_pktmbuf_free.
Since copying ol_flags from the cloned packet is
not necessary in the first place, just don't do it.
Fixes: af75078fece3 ("first public release")
Reported-by: Dong Wang <dong1.wang@intel.com>
Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
Acked-by: Dong Wang <dong1.wang@intel.com>
---
doc/guides/sample_app_ug/ipv4_multicast.rst | 1 -
examples/ipv4_multicast/main.c | 2 --
2 files changed, 3 deletions(-)
diff --git a/doc/guides/sample_app_ug/ipv4_multicast.rst b/doc/guides/sample_app_ug/ipv4_multicast.rst
index 7a8e7ebce..cca53096c 100644
--- a/doc/guides/sample_app_ug/ipv4_multicast.rst
+++ b/doc/guides/sample_app_ug/ipv4_multicast.rst
@@ -346,7 +346,6 @@ It is the mcast_out_pkt() function that performs the packet duplication (either
hdr->pkt.in_port = pkt->pkt.in_port;
hdr->pkt.vlan_macip = pkt->pkt.vlan_macip;
hdr->pkt.hash = pkt->pkt.hash;
- hdr->ol_flags = pkt->ol_flags;
rte_mbuf_sanity_check(hdr, RTE_MBUF_PKT, 1);
return hdr;
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
index 1c5851654..6cfa6ebb4 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
@@ -298,8 +298,6 @@ mcast_out_pkt(struct rte_mbuf *pkt, int use_clone)
hdr->tx_offload = pkt->tx_offload;
hdr->hash = pkt->hash;
- hdr->ol_flags = pkt->ol_flags;
-
__rte_mbuf_sanity_check(hdr, 1);
return hdr;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.283468259 -0800
+++ 0116-examples-ipv4_multicast-fix-leak-of-cloned-packets.patch 2018-11-29 15:01:45.310961000 -0800
@@ -1,8 +1,10 @@
-From 91dc9c13ba978fb8147240ed6fa20c41145bf0db Mon Sep 17 00:00:00 2001
+From c57aeca6d1e1ad8f09324b710fc66bc357c0c3fa Mon Sep 17 00:00:00 2001
From: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
Date: Tue, 13 Nov 2018 11:49:29 +0000
Subject: [PATCH] examples/ipv4_multicast: fix leak of cloned packets
+[ upstream commit 91dc9c13ba978fb8147240ed6fa20c41145bf0db ]
+
The ipv4_multicast sample application was dropping packets
when using mbuf clone. When creating an L2 header and copying
metadata from the source packet, the ol_flags were also copied
@@ -13,7 +15,6 @@
not necessary in the first place, just don't do it.
Fixes: af75078fece3 ("first public release")
-Cc: stable@dpdk.org
Reported-by: Dong Wang <dong1.wang@intel.com>
Signed-off-by: Herakliusz Lipiec <herakliusz.lipiec@intel.com>
@@ -25,10 +26,10 @@
2 files changed, 3 deletions(-)
diff --git a/doc/guides/sample_app_ug/ipv4_multicast.rst b/doc/guides/sample_app_ug/ipv4_multicast.rst
-index ce1474ec7..f6efa7f6f 100644
+index 7a8e7ebce..cca53096c 100644
--- a/doc/guides/sample_app_ug/ipv4_multicast.rst
+++ b/doc/guides/sample_app_ug/ipv4_multicast.rst
-@@ -319,7 +319,6 @@ It is the mcast_out_pkt() function that performs the packet duplication (either
+@@ -346,7 +346,6 @@ It is the mcast_out_pkt() function that performs the packet duplication (either
hdr->pkt.in_port = pkt->pkt.in_port;
hdr->pkt.vlan_macip = pkt->pkt.vlan_macip;
hdr->pkt.hash = pkt->pkt.hash;
@@ -37,10 +38,10 @@
return hdr;
diff --git a/examples/ipv4_multicast/main.c b/examples/ipv4_multicast/main.c
-index 4073a4907..428ca4694 100644
+index 1c5851654..6cfa6ebb4 100644
--- a/examples/ipv4_multicast/main.c
+++ b/examples/ipv4_multicast/main.c
-@@ -266,8 +266,6 @@ mcast_out_pkt(struct rte_mbuf *pkt, int use_clone)
+@@ -298,8 +298,6 @@ mcast_out_pkt(struct rte_mbuf *pkt, int use_clone)
hdr->tx_offload = pkt->tx_offload;
hdr->hash = pkt->hash;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'test: release ring resources after PMD perf test' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (114 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'examples/ipv4_multicast: fix leak of cloned packets' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'usertools: check for lspci dependency' " Yongseok Koh
` (10 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Phil Yang; +Cc: Gavin Hu, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From acceb2833dda32f85881e2cb279ddd0a0feebc9c Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Fri, 19 Oct 2018 19:00:38 +0800
Subject: [PATCH] test: release ring resources after PMD perf test
[ upstream commit bc44d448479846966f7aedb90fefe2fa5bd20d2e ]
Need to release the port and the ring resources after test. Otherwise,
it will cause failure to allocate memory when reentry the test.
Fixes: ea764af ("app/test: add performance test for ring driver")
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
---
test/test/test_pmd_ring_perf.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/test/test/test_pmd_ring_perf.c b/test/test/test_pmd_ring_perf.c
index 8e9cd3310..e44676680 100644
--- a/test/test/test_pmd_ring_perf.c
+++ b/test/test/test_pmd_ring_perf.c
@@ -39,6 +39,7 @@
#include <rte_launch.h>
#include <rte_ethdev.h>
#include <rte_eth_ring.h>
+#include <rte_bus_vdev.h>
#include "test.h"
@@ -164,6 +165,8 @@ test_bulk_enqueue_dequeue(void)
static int
test_ring_pmd_perf(void)
{
+ char name[RTE_ETH_NAME_MAX_LEN];
+
r = rte_ring_create(RING_NAME, RING_SIZE, rte_socket_id(),
RING_F_SP_ENQ|RING_F_SC_DEQ);
if (r == NULL && (r = rte_ring_lookup(RING_NAME)) == NULL)
@@ -180,6 +183,11 @@ test_ring_pmd_perf(void)
printf("\n### Testing using a single lcore ###\n");
test_bulk_enqueue_dequeue();
+ /* release port and ring resources */
+ rte_eth_dev_stop(ring_ethdev_port);
+ rte_eth_dev_get_name_by_port(ring_ethdev_port, name);
+ rte_vdev_uninit(name);
+ rte_ring_free(r);
return 0;
}
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.326262291 -0800
+++ 0117-test-release-ring-resources-after-PMD-perf-test.patch 2018-11-29 15:01:45.312957000 -0800
@@ -1,13 +1,14 @@
-From bc44d448479846966f7aedb90fefe2fa5bd20d2e Mon Sep 17 00:00:00 2001
+From acceb2833dda32f85881e2cb279ddd0a0feebc9c Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Fri, 19 Oct 2018 19:00:38 +0800
Subject: [PATCH] test: release ring resources after PMD perf test
+[ upstream commit bc44d448479846966f7aedb90fefe2fa5bd20d2e ]
+
Need to release the port and the ring resources after test. Otherwise,
it will cause failure to allocate memory when reentry the test.
Fixes: ea764af ("app/test: add performance test for ring driver")
-Cc: stable@dpdk.org
Signed-off-by: Phil Yang <phil.yang@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
@@ -16,10 +17,10 @@
1 file changed, 8 insertions(+)
diff --git a/test/test/test_pmd_ring_perf.c b/test/test/test_pmd_ring_perf.c
-index ad5004a69..6318da18f 100644
+index 8e9cd3310..e44676680 100644
--- a/test/test/test_pmd_ring_perf.c
+++ b/test/test/test_pmd_ring_perf.c
-@@ -10,6 +10,7 @@
+@@ -39,6 +39,7 @@
#include <rte_launch.h>
#include <rte_ethdev.h>
#include <rte_eth_ring.h>
@@ -27,7 +28,7 @@
#include "test.h"
-@@ -135,6 +136,8 @@ test_bulk_enqueue_dequeue(void)
+@@ -164,6 +165,8 @@ test_bulk_enqueue_dequeue(void)
static int
test_ring_pmd_perf(void)
{
@@ -36,7 +37,7 @@
r = rte_ring_create(RING_NAME, RING_SIZE, rte_socket_id(),
RING_F_SP_ENQ|RING_F_SC_DEQ);
if (r == NULL && (r = rte_ring_lookup(RING_NAME)) == NULL)
-@@ -151,6 +154,11 @@ test_ring_pmd_perf(void)
+@@ -180,6 +183,11 @@ test_ring_pmd_perf(void)
printf("\n### Testing using a single lcore ###\n");
test_bulk_enqueue_dequeue();
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'usertools: check for lspci dependency' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (115 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'test: release ring resources after PMD perf test' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' " Yongseok Koh
` (9 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: Rami Rosen, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From b3608bc279d1c2978f6f766d74bdadcabe96afae Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Tue, 13 Nov 2018 16:06:26 +0000
Subject: [PATCH] usertools: check for lspci dependency
[ upstream commit 1a5a9cb32a93da47fa6aa0da8407337feaf901f8 ]
On some distributions (such as CentOS 7) lspci may not be installed
by default, causing exceptions which are difficult to interpret.
Fix devbind script to check if lspci is installed at script startup.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Rami Rosen <roszenrami@gmail.com>
---
usertools/dpdk-devbind.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py
index df9b21a6d..05711fdc3 100755
--- a/usertools/dpdk-devbind.py
+++ b/usertools/dpdk-devbind.py
@@ -705,6 +705,13 @@ def do_arg_actions():
def main():
'''program main function'''
+ # check if lspci is installed, suppress any output
+ with open(os.devnull, 'w') as devnull:
+ ret = subprocess.call(['which', 'lspci'],
+ stdout=devnull, stderr=devnull)
+ if ret != 0:
+ print("'lspci' not found - please install 'pciutils'")
+ sys.exit(1)
parse_args()
check_modules()
clear_data()
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.366528826 -0800
+++ 0118-usertools-check-for-lspci-dependency.patch 2018-11-29 15:01:45.313959000 -0800
@@ -1,15 +1,15 @@
-From 1a5a9cb32a93da47fa6aa0da8407337feaf901f8 Mon Sep 17 00:00:00 2001
+From b3608bc279d1c2978f6f766d74bdadcabe96afae Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Tue, 13 Nov 2018 16:06:26 +0000
Subject: [PATCH] usertools: check for lspci dependency
+[ upstream commit 1a5a9cb32a93da47fa6aa0da8407337feaf901f8 ]
+
On some distributions (such as CentOS 7) lspci may not be installed
by default, causing exceptions which are difficult to interpret.
Fix devbind script to check if lspci is installed at script startup.
-Cc: stable@dpdk.org
-
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Rami Rosen <roszenrami@gmail.com>
---
@@ -17,10 +17,10 @@
1 file changed, 7 insertions(+)
diff --git a/usertools/dpdk-devbind.py b/usertools/dpdk-devbind.py
-index 7d564634c..40dc28a7d 100755
+index df9b21a6d..05711fdc3 100755
--- a/usertools/dpdk-devbind.py
+++ b/usertools/dpdk-devbind.py
-@@ -655,6 +655,13 @@ def do_arg_actions():
+@@ -705,6 +705,13 @@ def do_arg_actions():
def main():
'''program main function'''
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (116 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'usertools: check for lspci dependency' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-12-20 0:21 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix formatting in IP reassembly app " Yongseok Koh
` (8 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Yong Wang; +Cc: Anatoly Burakov, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00 2001
From: Yong Wang <wang.yong19@zte.com.cn>
Date: Tue, 6 Nov 2018 21:40:52 -0500
Subject: [PATCH] doc: fix NUMA library name in Linux guide
[ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
The library for handling NUMA is not libnuma-devel, but numactl-devel
in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
doc/guides/linux_gsg/sys_reqs.rst | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
index 3e7fe6373..7a91b31c7 100644
--- a/doc/guides/linux_gsg/sys_reqs.rst
+++ b/doc/guides/linux_gsg/sys_reqs.rst
@@ -91,7 +91,11 @@ Compilation of the DPDK
x86_x32 ABI is currently supported with distribution packages only on Ubuntu
higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+.
-* libnuma-devel - library for handling NUMA (Non Uniform Memory Access).
+* Library for handling NUMA (Non Uniform Memory Access).
+
+ * numactl-devel in Red Hat/Fedora;
+
+ * libnuma-dev in Debian/Ubuntu;
* Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.406698523 -0800
+++ 0119-doc-fix-NUMA-library-name-in-Linux-guide.patch 2018-11-29 15:01:45.315956000 -0800
@@ -1,8 +1,10 @@
-From ee57170c4acb7b477091948caa8ea9e887222867 Mon Sep 17 00:00:00 2001
+From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00 2001
From: Yong Wang <wang.yong19@zte.com.cn>
Date: Tue, 6 Nov 2018 21:40:52 -0500
Subject: [PATCH] doc: fix NUMA library name in Linux guide
+[ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
+
The library for handling NUMA is not libnuma-devel, but numactl-devel
in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
@@ -13,10 +15,10 @@
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
-index 96f5ce9b5..29c5f47a5 100644
+index 3e7fe6373..7a91b31c7 100644
--- a/doc/guides/linux_gsg/sys_reqs.rst
+++ b/doc/guides/linux_gsg/sys_reqs.rst
-@@ -64,7 +64,11 @@ Compilation of the DPDK
+@@ -91,7 +91,11 @@ Compilation of the DPDK
x86_x32 ABI is currently supported with distribution packages only on Ubuntu
higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+.
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: fix formatting in IP reassembly app guide' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (117 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix function name in flow filtering " Yongseok Koh
` (7 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Marko Kovacevic; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From a982de1a90e80d9476df17fb222cb77d8e08a5fd Mon Sep 17 00:00:00 2001
From: Marko Kovacevic <marko.kovacevic@intel.com>
Date: Thu, 16 Aug 2018 17:35:38 +0100
Subject: [PATCH] doc: fix formatting in IP reassembly app guide
[ upstream commit 49cc0a0d1a51fd7c10a0b6226784912028f04eb3 ]
Fixed formatting an extra header was added making it an extra
section when it was not intended.
Fixes: d0dff9ba445e ("doc: sample application user guide")
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/sample_app_ug/ip_reassembly.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst
index 7dc80d0bf..e5b8ef70a 100644
--- a/doc/guides/sample_app_ug/ip_reassembly.rst
+++ b/doc/guides/sample_app_ug/ip_reassembly.rst
@@ -50,8 +50,8 @@ There are two key differences from the L2 Forwarding sample application:
* The second difference is that the application differentiates between IP and non-IP traffic by means of offload flags.
-The Longest Prefix Match (LPM for IPv4, LPM6 for IPv6) table is used to store/lookup an outgoing port number, associated with that IPv4 address. Any unmatched packets are forwarded to the originating port.Compiling the Application
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
+The Longest Prefix Match (LPM for IPv4, LPM6 for IPv6) table is used to store/lookup an outgoing port number,
+associated with that IPv4 address. Any unmatched packets are forwarded to the originating port.
Compiling the Application
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.446428339 -0800
+++ 0120-doc-fix-formatting-in-IP-reassembly-app-guide.patch 2018-11-29 15:01:45.316961000 -0800
@@ -1,13 +1,14 @@
-From 49cc0a0d1a51fd7c10a0b6226784912028f04eb3 Mon Sep 17 00:00:00 2001
+From a982de1a90e80d9476df17fb222cb77d8e08a5fd Mon Sep 17 00:00:00 2001
From: Marko Kovacevic <marko.kovacevic@intel.com>
Date: Thu, 16 Aug 2018 17:35:38 +0100
Subject: [PATCH] doc: fix formatting in IP reassembly app guide
+[ upstream commit 49cc0a0d1a51fd7c10a0b6226784912028f04eb3 ]
+
Fixed formatting an extra header was added making it an extra
section when it was not intended.
Fixes: d0dff9ba445e ("doc: sample application user guide")
-Cc: stable@dpdk.org
Signed-off-by: Marko Kovacevic <marko.kovacevic@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -16,10 +17,10 @@
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/doc/guides/sample_app_ug/ip_reassembly.rst b/doc/guides/sample_app_ug/ip_reassembly.rst
-index 18912cd2f..e1b56d7be 100644
+index 7dc80d0bf..e5b8ef70a 100644
--- a/doc/guides/sample_app_ug/ip_reassembly.rst
+++ b/doc/guides/sample_app_ug/ip_reassembly.rst
-@@ -23,8 +23,8 @@ There are two key differences from the L2 Forwarding sample application:
+@@ -50,8 +50,8 @@ There are two key differences from the L2 Forwarding sample application:
* The second difference is that the application differentiates between IP and non-IP traffic by means of offload flags.
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'doc: fix function name in flow filtering app guide' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (118 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix formatting in IP reassembly app " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-12-20 0:21 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build with -O1' " Yongseok Koh
` (6 subsequent siblings)
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Rami Rosen; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 8145e9ac5465a2801908c80488ac3f0b8dc31159 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Thu, 8 Nov 2018 21:46:48 +0200
Subject: [PATCH] doc: fix function name in flow filtering app guide
[ upstream commit eaee9659037e7ee7c77feba76c1d940929f4a8af ]
This patch fixes a typo in flow_filtering.rst. There is no
method named generate_ipv4_rule in DPDK, it should be generate_ipv4_flow.
Signed-off-by: Rami Rosen <ramirose@gmail.com>
---
doc/guides/sample_app_ug/flow_filtering.rst | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/sample_app_ug/flow_filtering.rst b/doc/guides/sample_app_ug/flow_filtering.rst
index 725dcb445..f6177e152 100644
--- a/doc/guides/sample_app_ug/flow_filtering.rst
+++ b/doc/guides/sample_app_ug/flow_filtering.rst
@@ -365,7 +365,7 @@ The forwarding loop can be interrupted and the application closed using
The generate_ipv4_flow function
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-The generate_ipv4_rule function is responsible for creating the flow rule.
+The generate_ipv4_flow function is responsible for creating the flow rule.
This function is located in the ``flow_blocks.c`` file.
.. code-block:: c
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.487754897 -0800
+++ 0121-doc-fix-function-name-in-flow-filtering-app-guide.patch 2018-11-29 15:01:45.318957000 -0800
@@ -1,8 +1,10 @@
-From eaee9659037e7ee7c77feba76c1d940929f4a8af Mon Sep 17 00:00:00 2001
+From 8145e9ac5465a2801908c80488ac3f0b8dc31159 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Thu, 8 Nov 2018 21:46:48 +0200
Subject: [PATCH] doc: fix function name in flow filtering app guide
+[ upstream commit eaee9659037e7ee7c77feba76c1d940929f4a8af ]
+
This patch fixes a typo in flow_filtering.rst. There is no
method named generate_ipv4_rule in DPDK, it should be generate_ipv4_flow.
@@ -12,10 +14,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/doc/guides/sample_app_ug/flow_filtering.rst b/doc/guides/sample_app_ug/flow_filtering.rst
-index 0d6fe2bb3..840d557c5 100644
+index 725dcb445..f6177e152 100644
--- a/doc/guides/sample_app_ug/flow_filtering.rst
+++ b/doc/guides/sample_app_ug/flow_filtering.rst
-@@ -367,7 +367,7 @@ The forwarding loop can be interrupted and the application closed using
+@@ -365,7 +365,7 @@ The forwarding loop can be interrupted and the application closed using
The generate_ipv4_flow function
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: fix build with -O1' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (119 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix function name in flow filtering " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix possible uninitialized variable' " Yongseok Koh
` (5 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 4d81c106393da4a865435733db753f8a4ae97f98 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 16 Nov 2018 17:58:50 +0100
Subject: [PATCH] eal: fix build with -O1
[ upstream commit e357e8ebd99c9c394a276fdffd37f13005cb1c63 ]
In case of optimized compilation, RTE_BUILD_BUG_ON use an external
variable which is neither defined, nor used.
It seems not optimized out in case of OPDL compiled with clang -O1:
opdl_ring.c: undefined reference to `RTE_BUILD_BUG_ON_detected_error'
clang-6.0: fatal error: linker command failed with exit code 1
Fixes: af75078fece3 ("first public release")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
lib/librte_eal/common/include/rte_common.h | 9 ---------
1 file changed, 9 deletions(-)
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
index 63bf6b612..f24cbe6e2 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
@@ -241,16 +241,7 @@ rte_is_aligned(void *ptr, unsigned align)
/**
* Triggers an error at compilation time if the condition is true.
*/
-#ifndef __OPTIMIZE__
#define RTE_BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
-#else
-extern int RTE_BUILD_BUG_ON_detected_error;
-#define RTE_BUILD_BUG_ON(condition) do { \
- ((void)sizeof(char[1 - 2*!!(condition)])); \
- if (condition) \
- RTE_BUILD_BUG_ON_detected_error = 1; \
-} while(0)
-#endif
/*********** Macros to work with powers of 2 ********/
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.531743574 -0800
+++ 0122-eal-fix-build-with-O1.patch 2018-11-29 15:01:45.319959000 -0800
@@ -1,8 +1,10 @@
-From e357e8ebd99c9c394a276fdffd37f13005cb1c63 Mon Sep 17 00:00:00 2001
+From 4d81c106393da4a865435733db753f8a4ae97f98 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 16 Nov 2018 17:58:50 +0100
Subject: [PATCH] eal: fix build with -O1
+[ upstream commit e357e8ebd99c9c394a276fdffd37f13005cb1c63 ]
+
In case of optimized compilation, RTE_BUILD_BUG_ON use an external
variable which is neither defined, nor used.
It seems not optimized out in case of OPDL compiled with clang -O1:
@@ -10,7 +12,6 @@
clang-6.0: fatal error: linker command failed with exit code 1
Fixes: af75078fece3 ("first public release")
-Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
@@ -18,10 +19,10 @@
1 file changed, 9 deletions(-)
diff --git a/lib/librte_eal/common/include/rte_common.h b/lib/librte_eal/common/include/rte_common.h
-index d115b175c..66cdf60b2 100644
+index 63bf6b612..f24cbe6e2 100644
--- a/lib/librte_eal/common/include/rte_common.h
+++ b/lib/librte_eal/common/include/rte_common.h
-@@ -270,16 +270,7 @@ rte_is_aligned(void *ptr, unsigned align)
+@@ -241,16 +241,7 @@ rte_is_aligned(void *ptr, unsigned align)
/**
* Triggers an error at compilation time if the condition is true.
*/
@@ -36,8 +37,8 @@
-} while(0)
-#endif
- /**
- * Combines 32b inputs most significant set bits into the least
+ /*********** Macros to work with powers of 2 ********/
+
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'kni: fix possible uninitialized variable' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (120 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build with -O1' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e/base: fix comment referencing internal data' " Yongseok Koh
` (4 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 1fd94133e5aa10aade539d72046e6911c2b8d190 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 16 Nov 2018 17:58:51 +0100
Subject: [PATCH] kni: fix possible uninitialized variable
[ upstream commit a17842c1421c1b26f9deed4f6684abdba06e7a56 ]
This error can be raised:
lib/librte_kni/rte_kni.c:531:15: error:
'req' may be used uninitialized in this function
It should not happen because kni_fifo_get() would return 0 if
req is not initialized, so the function would return before using req.
But GCC complains about it in -O1 optimization,
and a NULL initialization is harmless here.
Fixes: 3fc5ca2f6352 ("kni: initial import")
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
lib/librte_kni/rte_kni.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c
index 4b45d1a01..fbd250da6 100644
--- a/lib/librte_kni/rte_kni.c
+++ b/lib/librte_kni/rte_kni.c
@@ -532,7 +532,7 @@ int
rte_kni_handle_request(struct rte_kni *kni)
{
unsigned ret;
- struct rte_kni_request *req;
+ struct rte_kni_request *req = NULL;
if (kni == NULL)
return -1;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.575441648 -0800
+++ 0123-kni-fix-possible-uninitialized-variable.patch 2018-11-29 15:01:45.321957000 -0800
@@ -1,8 +1,10 @@
-From a17842c1421c1b26f9deed4f6684abdba06e7a56 Mon Sep 17 00:00:00 2001
+From 1fd94133e5aa10aade539d72046e6911c2b8d190 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 16 Nov 2018 17:58:51 +0100
Subject: [PATCH] kni: fix possible uninitialized variable
+[ upstream commit a17842c1421c1b26f9deed4f6684abdba06e7a56 ]
+
This error can be raised:
lib/librte_kni/rte_kni.c:531:15: error:
'req' may be used uninitialized in this function
@@ -13,7 +15,6 @@
and a NULL initialization is harmless here.
Fixes: 3fc5ca2f6352 ("kni: initial import")
-Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
---
@@ -21,10 +22,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_kni/rte_kni.c b/lib/librte_kni/rte_kni.c
-index c9726d4f8..73aeccccf 100644
+index 4b45d1a01..fbd250da6 100644
--- a/lib/librte_kni/rte_kni.c
+++ b/lib/librte_kni/rte_kni.c
-@@ -483,7 +483,7 @@ int
+@@ -532,7 +532,7 @@ int
rte_kni_handle_request(struct rte_kni *kni)
{
unsigned ret;
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/i40e/base: fix comment referencing internal data' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (121 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix possible uninitialized variable' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/qede: fix Tx offload mask' " Yongseok Koh
` (3 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 72b61781f2c4d554cb5956f2e292dc65071adc38 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 16 Nov 2018 16:29:57 +0000
Subject: [PATCH] net/i40e/base: fix comment referencing internal data
[ upstream commit 1a0833efde700134532aa8e2e8a069da7b9fe78b ]
DCR is Intel internal information, no need to be in public code.
Fixes: de2cd512b176 ("net/i40e/base: new AQ commands for cloud filter")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/net/i40e/base/i40e_adminq_cmd.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h
index c36da2a32..ca4fa23ce 100644
--- a/drivers/net/i40e/base/i40e_adminq_cmd.h
+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
@@ -1430,8 +1430,7 @@ struct i40e_aqc_add_remove_cloud_filters_element_data {
};
/* i40e_aqc_add_rm_cloud_filt_elem_ext is used when
- * I40E_AQC_ADD_REM_CLOUD_CMD_BIG_BUFFER flag is set. refer to
- * DCR288
+ * I40E_AQC_ADD_REM_CLOUD_CMD_BIG_BUFFER flag is set.
*/
struct i40e_aqc_add_rm_cloud_filt_elem_ext {
struct i40e_aqc_add_remove_cloud_filters_element_data element;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.617247418 -0800
+++ 0124-net-i40e-base-fix-comment-referencing-internal-data.patch 2018-11-29 15:01:45.331956000 -0800
@@ -1,12 +1,13 @@
-From 1a0833efde700134532aa8e2e8a069da7b9fe78b Mon Sep 17 00:00:00 2001
+From 72b61781f2c4d554cb5956f2e292dc65071adc38 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 16 Nov 2018 16:29:57 +0000
Subject: [PATCH] net/i40e/base: fix comment referencing internal data
+[ upstream commit 1a0833efde700134532aa8e2e8a069da7b9fe78b ]
+
DCR is Intel internal information, no need to be in public code.
Fixes: de2cd512b176 ("net/i40e/base: new AQ commands for cloud filter")
-Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
@@ -14,10 +15,10 @@
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/i40e/base/i40e_adminq_cmd.h b/drivers/net/i40e/base/i40e_adminq_cmd.h
-index 83062602f..cf6ef63e3 100644
+index c36da2a32..ca4fa23ce 100644
--- a/drivers/net/i40e/base/i40e_adminq_cmd.h
+++ b/drivers/net/i40e/base/i40e_adminq_cmd.h
-@@ -1440,8 +1440,7 @@ struct i40e_aqc_cloud_filters_element_data {
+@@ -1430,8 +1430,7 @@ struct i40e_aqc_add_remove_cloud_filters_element_data {
};
/* i40e_aqc_add_rm_cloud_filt_elem_ext is used when
@@ -26,7 +27,7 @@
+ * I40E_AQC_ADD_REM_CLOUD_CMD_BIG_BUFFER flag is set.
*/
struct i40e_aqc_add_rm_cloud_filt_elem_ext {
- struct i40e_aqc_cloud_filters_element_data element;
+ struct i40e_aqc_add_remove_cloud_filters_element_data element;
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'net/qede: fix Tx offload mask' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (122 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e/base: fix comment referencing internal data' " Yongseok Koh
@ 2018-11-29 23:11 ` Yongseok Koh
2018-11-29 23:12 ` [dpdk-stable] patch 'bus/pci: fix allocation of device path' " Yongseok Koh
` (2 subsequent siblings)
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:11 UTC (permalink / raw)
To: Shahed Shaikh; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 9c78277fa68914c557648d83403334ec9ca73e38 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shahed.shaikh@cavium.com>
Date: Wed, 21 Nov 2018 21:20:49 +0000
Subject: [PATCH] net/qede: fix Tx offload mask
[ upstream commit 3985ea528a9b74a49af4c8b557b7e145a21692af ]
Following commit updated the Tx offload mask
commit 1037ed842c37 ("mbuf: fix Tx offload mask").
So, not having PKT_TX_IPV6 and PKT_TX_IPV4 in qede PMDs supported
Tx offload mask breaks TSO support since application will fail in transmit
prepare function.
Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
---
drivers/net/qede/qede_rxtx.h | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/qede/qede_rxtx.h b/drivers/net/qede/qede_rxtx.h
index ae88206d6..9db9fedb2 100644
--- a/drivers/net/qede/qede_rxtx.h
+++ b/drivers/net/qede/qede_rxtx.h
@@ -145,7 +145,9 @@
PKT_TX_TCP_CKSUM | \
PKT_TX_UDP_CKSUM | \
PKT_TX_OUTER_IP_CKSUM | \
- PKT_TX_TCP_SEG)
+ PKT_TX_TCP_SEG | \
+ PKT_TX_IPV4 | \
+ PKT_TX_IPV6)
#define QEDE_TX_OFFLOAD_MASK (QEDE_TX_CSUM_OFFLOAD_MASK | \
PKT_TX_QINQ_PKT | \
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.662170242 -0800
+++ 0125-net-qede-fix-Tx-offload-mask.patch 2018-11-29 15:01:45.332960000 -0800
@@ -1,8 +1,10 @@
-From 3985ea528a9b74a49af4c8b557b7e145a21692af Mon Sep 17 00:00:00 2001
+From 9c78277fa68914c557648d83403334ec9ca73e38 Mon Sep 17 00:00:00 2001
From: Shahed Shaikh <shahed.shaikh@cavium.com>
Date: Wed, 21 Nov 2018 21:20:49 +0000
Subject: [PATCH] net/qede: fix Tx offload mask
+[ upstream commit 3985ea528a9b74a49af4c8b557b7e145a21692af ]
+
Following commit updated the Tx offload mask
commit 1037ed842c37 ("mbuf: fix Tx offload mask").
@@ -11,7 +13,6 @@
prepare function.
Fixes: 1037ed842c37 ("mbuf: fix Tx offload mask")
-Cc: stable@dpdk.org
Signed-off-by: Shahed Shaikh <shahed.shaikh@cavium.com>
---
@@ -19,10 +20,10 @@
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/net/qede/qede_rxtx.h b/drivers/net/qede/qede_rxtx.h
-index 0afadd8da..454daa07b 100644
+index ae88206d6..9db9fedb2 100644
--- a/drivers/net/qede/qede_rxtx.h
+++ b/drivers/net/qede/qede_rxtx.h
-@@ -149,7 +149,9 @@
+@@ -145,7 +145,9 @@
PKT_TX_TCP_CKSUM | \
PKT_TX_UDP_CKSUM | \
PKT_TX_OUTER_IP_CKSUM | \
@@ -32,7 +33,7 @@
+ PKT_TX_IPV6)
#define QEDE_TX_OFFLOAD_MASK (QEDE_TX_CSUM_OFFLOAD_MASK | \
- PKT_TX_VLAN_PKT | \
+ PKT_TX_QINQ_PKT | \
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'bus/pci: fix allocation of device path' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (123 preceding siblings ...)
2018-11-29 23:11 ` [dpdk-stable] patch 'net/qede: fix Tx offload mask' " Yongseok Koh
@ 2018-11-29 23:12 ` Yongseok Koh
2018-11-29 23:12 ` [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' " Yongseok Koh
2018-11-29 23:12 ` [dpdk-stable] patch 'eal: fix devargs reference after probing failure' " Yongseok Koh
126 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:12 UTC (permalink / raw)
To: Ferruh Yigit
Cc: Stephen Hemminger, Andrew Rybchenko, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From 6da495fe52f2ab24989936b520899ed805236e2b Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 23 Nov 2018 00:29:45 +0000
Subject: [PATCH] bus/pci: fix allocation of device path
[ upstream commit d3110b124af64199b0901223c7e0117f7480480f ]
The pci_resource_by_index called strlen() on uninitialized
memory which would lead to the wrong size of memory allocated
for the path portion of the resource map. This would either cause
excessively large allocation, or worse memory corruption.
Coverity issue: 300868
Fixes: ea9d56226e72 ("pci: introduce function to map uio resource by index")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
drivers/bus/pci/linux/pci_uio.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/bus/pci/linux/pci_uio.c b/drivers/bus/pci/linux/pci_uio.c
index 92b7f0275..39176ac73 100644
--- a/drivers/bus/pci/linux/pci_uio.c
+++ b/drivers/bus/pci/linux/pci_uio.c
@@ -328,7 +328,7 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
loc->function, res_idx);
/* allocate memory to keep path */
- maps[map_idx].path = rte_malloc(NULL, strlen(devname) + 1, 0);
+ maps[map_idx].path = rte_malloc(NULL, sizeof(devname), 0);
if (maps[map_idx].path == NULL) {
RTE_LOG(ERR, EAL, "Cannot allocate memory for path: %s\n",
strerror(errno));
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.703693290 -0800
+++ 0126-bus-pci-fix-allocation-of-device-path.patch 2018-11-29 15:01:45.334958000 -0800
@@ -1,8 +1,10 @@
-From d3110b124af64199b0901223c7e0117f7480480f Mon Sep 17 00:00:00 2001
+From 6da495fe52f2ab24989936b520899ed805236e2b Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Fri, 23 Nov 2018 00:29:45 +0000
Subject: [PATCH] bus/pci: fix allocation of device path
+[ upstream commit d3110b124af64199b0901223c7e0117f7480480f ]
+
The pci_resource_by_index called strlen() on uninitialized
memory which would lead to the wrong size of memory allocated
for the path portion of the resource map. This would either cause
@@ -10,7 +12,6 @@
Coverity issue: 300868
Fixes: ea9d56226e72 ("pci: introduce function to map uio resource by index")
-Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -21,11 +22,11 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/bus/pci/linux/pci_uio.c b/drivers/bus/pci/linux/pci_uio.c
-index a7c14421a..09ecbb7aa 100644
+index 92b7f0275..39176ac73 100644
--- a/drivers/bus/pci/linux/pci_uio.c
+++ b/drivers/bus/pci/linux/pci_uio.c
-@@ -296,7 +296,7 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
- maps = uio_res->maps;
+@@ -328,7 +328,7 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
+ loc->function, res_idx);
/* allocate memory to keep path */
- maps[map_idx].path = rte_malloc(NULL, strlen(devname) + 1, 0);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (124 preceding siblings ...)
2018-11-29 23:12 ` [dpdk-stable] patch 'bus/pci: fix allocation of device path' " Yongseok Koh
@ 2018-11-29 23:12 ` Yongseok Koh
2018-12-20 0:22 ` Yongseok Koh
2018-11-29 23:12 ` [dpdk-stable] patch 'eal: fix devargs reference after probing failure' " Yongseok Koh
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:12 UTC (permalink / raw)
To: Darek Stojaczyk; +Cc: Anatoly Burakov, Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00 2001
From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Date: Wed, 21 Nov 2018 19:41:32 +0100
Subject: [PATCH] vfio: do not needlessly setup device in secondary process
[ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
Setting up a device that wasn't setup in the primary
process will possibly break the primary process. That's
because the IPC message to retrieve the group fd in the
primary will also *open* that group if it wasn't opened
before. Even though the secondary process closes that fd
soon after as a part of its error handling path, the
primary process leaks it.
What's worse, opening that fd on the primary will
increment the process-local counter of opened groups.
If it was 0 before, then the group will never be added
to the vfio container, nor dpdk memory will be ever
mapped.
This patch moves the proper error checks earlier in the
code to fully prevent setting up devices in secondary
processes that weren't setup in the primary process.
Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
drivers/bus/pci/linux/pci_vfio.c | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index 745db260c..654897284 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
loc->domain, loc->bus, loc->devid, loc->function);
- ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
- &vfio_dev_fd, &device_info);
- if (ret)
- return ret;
-
/* if we're in a secondary process, just find our tailq entry */
TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
if (rte_pci_addr_cmp(&vfio_res->pci_addr,
@@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
if (vfio_res == NULL) {
RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI device!\n",
pci_addr);
- goto err_vfio_dev_fd;
+ return -1;
}
+ ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
+ &vfio_dev_fd, &device_info);
+ if (ret)
+ return ret;
+
/* map BARs */
maps = vfio_res->maps;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.745484864 -0800
+++ 0127-vfio-do-not-needlessly-setup-device-in-secondary-pro.patch 2018-11-29 15:01:45.335961000 -0800
@@ -1,8 +1,10 @@
-From 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 Mon Sep 17 00:00:00 2001
+From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00 2001
From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Date: Wed, 21 Nov 2018 19:41:32 +0100
Subject: [PATCH] vfio: do not needlessly setup device in secondary process
+[ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
+
Setting up a device that wasn't setup in the primary
process will possibly break the primary process. That's
because the IPC message to retrieve the group fd in the
@@ -31,10 +33,10 @@
1 file changed, 6 insertions(+), 6 deletions(-)
diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
-index ffd26f195..54a4c959e 100644
+index 745db260c..654897284 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
-@@ -794,11 +794,6 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
+@@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
loc->domain, loc->bus, loc->devid, loc->function);
@@ -46,7 +48,7 @@
/* if we're in a secondary process, just find our tailq entry */
TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
if (rte_pci_addr_cmp(&vfio_res->pci_addr,
-@@ -810,9 +805,14 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
+@@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
if (vfio_res == NULL) {
RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI device!\n",
pci_addr);
^ permalink raw reply [flat|nested] 150+ messages in thread
* [dpdk-stable] patch 'eal: fix devargs reference after probing failure' has been queued to LTS release 17.11.5
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
` (125 preceding siblings ...)
2018-11-29 23:12 ` [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' " Yongseok Koh
@ 2018-11-29 23:12 ` Yongseok Koh
2018-12-20 0:22 ` Yongseok Koh
126 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-11-29 23:12 UTC (permalink / raw)
To: Darek Stojaczyk; +Cc: Maxime Coquelin, Thomas Monjalon, dpdk stable
Hi,
FYI, your patch has been queued to LTS release 17.11.5
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
a change in context or macro names, please double check it.
Thanks.
Yongseok
---
>From abdb0f9a8b0fe291ef411fff1a44d0f1d49a40f6 Mon Sep 17 00:00:00 2001
From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Date: Fri, 23 Nov 2018 16:43:28 +0100
Subject: [PATCH] eal: fix devargs reference after probing failure
[ upstream commit 161419983da296f329039e15b88e11ea31b15702 ]
Even if a device failed to plug, it's still a device
object that references the devargs. Those devargs will
be freed automatically together with the device, but
freeing them any earlier - like it's done in the hotplug
error handling path right now - will give us a dangling
pointer and a segfault scenario.
Consider the following case:
* secondary process receives the hotplug request IPC message
* devargs are either created or updated
* the bus is scanned
* a new device object is created with the latest devargs
* the device can't be plugged for whatever reason,
bus->plug returns error
* the devargs are freed, even though they're still referenced
by the device object on the bus
For PCI devices, the generic device name comes from
a buffer within the devargs. Freeing those will make
EAL segfault whenever the device name is checked.
This patch just prevents the hotplug error handling
path from removing the devargs when there's a device
that references them. This is done by simply exiting
early from the hotplug function. As mentioned in the
beginning, those devargs will be freed later, together
with the device itself.
Fixes: 7e8b26650146 ("eal: fix hotplug add / remove")
Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Thomas Monjalon <thomas@monjalon.net>
---
lib/librte_eal/common/eal_common_dev.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
index dda8f5835..582cf3a31 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
@@ -183,12 +183,16 @@ int rte_eal_hotplug_add(const char *busname, const char *devname,
ret = -ENODEV;
goto err_devarg;
}
+ /* Since there is a matching device, it is now its responsibility
+ * to manage the devargs we've just inserted. From this point
+ * those devargs shouldn't be removed manually anymore.
+ */
ret = bus->plug(dev);
if (ret) {
RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n",
dev->name);
- goto err_devarg;
+ return ret;
}
free(name);
return 0;
--
2.11.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-29 15:01:50.787743434 -0800
+++ 0128-eal-fix-devargs-reference-after-probing-failure.patch 2018-11-29 15:01:45.337956000 -0800
@@ -1,8 +1,10 @@
-From 161419983da296f329039e15b88e11ea31b15702 Mon Sep 17 00:00:00 2001
+From abdb0f9a8b0fe291ef411fff1a44d0f1d49a40f6 Mon Sep 17 00:00:00 2001
From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
Date: Fri, 23 Nov 2018 16:43:28 +0100
Subject: [PATCH] eal: fix devargs reference after probing failure
+[ upstream commit 161419983da296f329039e15b88e11ea31b15702 ]
+
Even if a device failed to plug, it's still a device
object that references the devargs. Those devargs will
be freed automatically together with the device, but
@@ -41,10 +43,10 @@
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
-index a08dc085f..fd7f5ca7d 100644
+index dda8f5835..582cf3a31 100644
--- a/lib/librte_eal/common/eal_common_dev.c
+++ b/lib/librte_eal/common/eal_common_dev.c
-@@ -166,12 +166,16 @@ local_dev_probe(const char *devargs, struct rte_device **new_dev)
+@@ -183,12 +183,16 @@ int rte_eal_hotplug_add(const char *busname, const char *devname,
ret = -ENODEV;
goto err_devarg;
}
@@ -53,15 +55,15 @@
+ * those devargs shouldn't be removed manually anymore.
+ */
- ret = dev->bus->plug(dev);
- if (ret && !rte_dev_is_probed(dev)) { /* if hasn't ever succeeded */
+ ret = bus->plug(dev);
+ if (ret) {
RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n",
dev->name);
- goto err_devarg;
+ return ret;
}
-
- *new_dev = dev;
+ free(name);
+ return 0;
--
2.11.0
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/virtio: fix PCI config error handling' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix PCI config error handling' " Yongseok Koh
@ 2018-11-30 15:23 ` Tiwei Bie
2018-11-30 18:02 ` Yongseok Koh
0 siblings, 1 reply; 150+ messages in thread
From: Tiwei Bie @ 2018-11-30 15:23 UTC (permalink / raw)
To: Yongseok Koh; +Cc: Brian Russell, Luca Boccassi, dpdk stable
On Thu, Nov 29, 2018 at 03:11:19PM -0800, Yongseok Koh wrote:
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 12/01/18. So please
> shout if anyone has objections.
Hi,
This patch can't be backported, as it depends on some API
change in newer release.
Thanks,
Tiwei
>
> Also note that after the patch there's a diff of the upstream commit vs the patch applied
> to the branch. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From b5196f660ce80df58babdd718f26ff980a841513 Mon Sep 17 00:00:00 2001
> From: Brian Russell <brussell@brocade.com>
> Date: Tue, 28 Aug 2018 11:12:40 +0100
> Subject: [PATCH] net/virtio: fix PCI config error handling
>
> [ upstream commit 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd ]
>
> In virtio_read_caps and vtpci_msix_detect, rte_pci_read_config returns
> the number of bytes read from PCI config or < 0 on error.
> If less than the expected number of bytes are read then log the
> failure and return rather than carrying on with garbage.
>
> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
>
> Signed-off-by: Brian Russell <brussell@brocade.com>
> Signed-off-by: Luca Boccassi <bluca@debian.org>
> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
> ---
> drivers/net/virtio/virtio_pci.c | 65 ++++++++++++++++++++++++++++++-----------
> 1 file changed, 48 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
> index 9574498fb..89986c335 100644
> --- a/drivers/net/virtio/virtio_pci.c
> +++ b/drivers/net/virtio/virtio_pci.c
> @@ -596,16 +596,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> }
>
> ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
> - if (ret < 0) {
> - PMD_INIT_LOG(DEBUG, "failed to read pci capability list");
> + if (ret != 1) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci capability list, ret %d", ret);
> return -1;
> }
>
> while (pos) {
> - ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
> - if (ret < 0) {
> - PMD_INIT_LOG(ERR,
> - "failed to read pci cap at pos: %x", pos);
> + ret = rte_pci_read_config(dev, &cap, 2, pos);
> + if (ret != 2) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci cap at pos: %x ret %d",
> + pos, ret);
> break;
> }
>
> @@ -615,7 +617,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> * 1st byte is cap ID; 2nd byte is the position of next
> * cap; next two bytes are the flags.
> */
> - uint16_t flags = ((uint16_t *)&cap)[1];
> + uint16_t flags;
> +
> + ret = rte_pci_read_config(dev, &flags, sizeof(flags),
> + pos + 2);
> + if (ret != sizeof(flags)) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci cap at pos:"
> + " %x ret %d", pos + 2, ret);
> + break;
> + }
>
> if (flags & PCI_MSIX_ENABLE)
> hw->use_msix = VIRTIO_MSIX_ENABLED;
> @@ -630,6 +641,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> goto next;
> }
>
> + ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
> + if (ret != sizeof(cap)) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci cap at pos: %x ret %d",
> + pos, ret);
> + break;
> + }
> +
> PMD_INIT_LOG(DEBUG,
> "[%2x] cfg type: %u, bar: %u, offset: %04x, len: %u",
> pos, cap.cfg_type, cap.bar, cap.offset, cap.length);
> @@ -718,25 +737,37 @@ enum virtio_msix_status
> vtpci_msix_detect(struct rte_pci_device *dev)
> {
> uint8_t pos;
> - struct virtio_pci_cap cap;
> int ret;
>
> ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
> - if (ret < 0) {
> - PMD_INIT_LOG(DEBUG, "failed to read pci capability list");
> + if (ret != 1) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci capability list, ret %d", ret);
> return VIRTIO_MSIX_NONE;
> }
>
> while (pos) {
> - ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
> - if (ret < 0) {
> - PMD_INIT_LOG(ERR,
> - "failed to read pci cap at pos: %x", pos);
> + uint8_t cap[2];
> +
> + ret = rte_pci_read_config(dev, cap, sizeof(cap), pos);
> + if (ret != sizeof(cap)) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci cap at pos: %x ret %d",
> + pos, ret);
> break;
> }
>
> - if (cap.cap_vndr == PCI_CAP_ID_MSIX) {
> - uint16_t flags = ((uint16_t *)&cap)[1];
> + if (cap[0] == PCI_CAP_ID_MSIX) {
> + uint16_t flags;
> +
> + ret = rte_pci_read_config(dev, &flags, sizeof(flags),
> + pos + sizeof(cap));
> + if (ret != sizeof(flags)) {
> + PMD_INIT_LOG(DEBUG,
> + "failed to read pci cap at pos:"
> + " %x ret %d", pos + 2, ret);
> + break;
> + }
>
> if (flags & PCI_MSIX_ENABLE)
> return VIRTIO_MSIX_ENABLED;
> @@ -744,7 +775,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
> return VIRTIO_MSIX_DISABLED;
> }
>
> - pos = cap.cap_next;
> + pos = cap[1];
> }
>
> return VIRTIO_MSIX_NONE;
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:48.971545454 -0800
> +++ 0085-net-virtio-fix-PCI-config-error-handling.patch 2018-11-29 15:01:45.234959000 -0800
> @@ -1,15 +1,16 @@
> -From 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd Mon Sep 17 00:00:00 2001
> +From b5196f660ce80df58babdd718f26ff980a841513 Mon Sep 17 00:00:00 2001
> From: Brian Russell <brussell@brocade.com>
> Date: Tue, 28 Aug 2018 11:12:40 +0100
> Subject: [PATCH] net/virtio: fix PCI config error handling
>
> +[ upstream commit 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd ]
> +
> In virtio_read_caps and vtpci_msix_detect, rte_pci_read_config returns
> the number of bytes read from PCI config or < 0 on error.
> If less than the expected number of bytes are read then log the
> failure and return rather than carrying on with garbage.
>
> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
> -Cc: stable@dpdk.org
>
> Signed-off-by: Brian Russell <brussell@brocade.com>
> Signed-off-by: Luca Boccassi <bluca@debian.org>
> @@ -19,10 +20,10 @@
> 1 file changed, 48 insertions(+), 17 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
> -index 6bd22e54a..b6a3c80b4 100644
> +index 9574498fb..89986c335 100644
> --- a/drivers/net/virtio/virtio_pci.c
> +++ b/drivers/net/virtio/virtio_pci.c
> -@@ -567,16 +567,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> +@@ -596,16 +596,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> }
>
> ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
> @@ -47,7 +48,7 @@
> break;
> }
>
> -@@ -586,7 +588,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> +@@ -615,7 +617,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> * 1st byte is cap ID; 2nd byte is the position of next
> * cap; next two bytes are the flags.
> */
> @@ -65,7 +66,7 @@
>
> if (flags & PCI_MSIX_ENABLE)
> hw->use_msix = VIRTIO_MSIX_ENABLED;
> -@@ -601,6 +612,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> +@@ -630,6 +641,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> goto next;
> }
>
> @@ -80,7 +81,7 @@
> PMD_INIT_LOG(DEBUG,
> "[%2x] cfg type: %u, bar: %u, offset: %04x, len: %u",
> pos, cap.cfg_type, cap.bar, cap.offset, cap.length);
> -@@ -689,25 +708,37 @@ enum virtio_msix_status
> +@@ -718,25 +737,37 @@ enum virtio_msix_status
> vtpci_msix_detect(struct rte_pci_device *dev)
> {
> uint8_t pos;
> @@ -127,7 +128,7 @@
>
> if (flags & PCI_MSIX_ENABLE)
> return VIRTIO_MSIX_ENABLED;
> -@@ -715,7 +746,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
> +@@ -744,7 +775,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
> return VIRTIO_MSIX_DISABLED;
> }
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/virtio: fix unchecked return value' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix unchecked return value' " Yongseok Koh
@ 2018-11-30 15:23 ` Tiwei Bie
2018-11-30 18:01 ` Yongseok Koh
0 siblings, 1 reply; 150+ messages in thread
From: Tiwei Bie @ 2018-11-30 15:23 UTC (permalink / raw)
To: Yongseok Koh; +Cc: Maxime Coquelin, dpdk stable
On Thu, Nov 29, 2018 at 03:11:40PM -0800, Yongseok Koh wrote:
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 12/01/18. So please
> shout if anyone has objections.
Hi,
This patch can't be backported, as it depends on some API
change in newer release.
Thanks,
Tiwei
>
> Also note that after the patch there's a diff of the upstream commit vs the patch applied
> to the branch. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From 85fa65d2e2a0b9e0ac4baa0ff2c5f99bed5427ec Mon Sep 17 00:00:00 2001
> From: Tiwei Bie <tiwei.bie@intel.com>
> Date: Wed, 7 Nov 2018 17:01:01 +0800
> Subject: [PATCH] net/virtio: fix unchecked return value
>
> [ upstream commit ecfae1510edc1391285aa566a2d31e7eae8fc6d2 ]
>
> Coverity issue: 302861
> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
>
> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
> drivers/net/virtio/virtio_pci.c | 10 ++++++++--
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
> index 89986c335..249ec6d3a 100644
> --- a/drivers/net/virtio/virtio_pci.c
> +++ b/drivers/net/virtio/virtio_pci.c
> @@ -658,9 +658,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> hw->common_cfg = get_cfg_addr(dev, &cap);
> break;
> case VIRTIO_PCI_CAP_NOTIFY_CFG:
> - rte_pci_read_config(dev, &hw->notify_off_multiplier,
> + ret = rte_pci_read_config(dev,
> + &hw->notify_off_multiplier,
> 4, pos + sizeof(cap));
> - hw->notify_base = get_cfg_addr(dev, &cap);
> + if (ret != 4)
> + PMD_INIT_LOG(DEBUG,
> + "failed to read notify_off_multiplier, ret %d",
> + ret);
> + else
> + hw->notify_base = get_cfg_addr(dev, &cap);
> break;
> case VIRTIO_PCI_CAP_DEVICE_CFG:
> hw->dev_cfg = get_cfg_addr(dev, &cap);
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:49.832061811 -0800
> +++ 0106-net-virtio-fix-unchecked-return-value.patch 2018-11-29 15:01:45.278957000 -0800
> @@ -1,11 +1,12 @@
> -From ecfae1510edc1391285aa566a2d31e7eae8fc6d2 Mon Sep 17 00:00:00 2001
> +From 85fa65d2e2a0b9e0ac4baa0ff2c5f99bed5427ec Mon Sep 17 00:00:00 2001
> From: Tiwei Bie <tiwei.bie@intel.com>
> Date: Wed, 7 Nov 2018 17:01:01 +0800
> Subject: [PATCH] net/virtio: fix unchecked return value
>
> +[ upstream commit ecfae1510edc1391285aa566a2d31e7eae8fc6d2 ]
> +
> Coverity issue: 302861
> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
> -Cc: stable@dpdk.org
>
> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> @@ -14,10 +15,10 @@
> 1 file changed, 8 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
> -index 21110cd69..c8883c32e 100644
> +index 89986c335..249ec6d3a 100644
> --- a/drivers/net/virtio/virtio_pci.c
> +++ b/drivers/net/virtio/virtio_pci.c
> -@@ -614,9 +614,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> +@@ -658,9 +658,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
> hw->common_cfg = get_cfg_addr(dev, &cap);
> break;
> case VIRTIO_PCI_CAP_NOTIFY_CFG:
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/virtio: fix unchecked return value' has been queued to LTS release 17.11.5
2018-11-30 15:23 ` Tiwei Bie
@ 2018-11-30 18:01 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-30 18:01 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable
> On Nov 30, 2018, at 7:23 AM, Tiwei Bie <tiwei.bie@intel.com> wrote:
>
> On Thu, Nov 29, 2018 at 03:11:40PM -0800, Yongseok Koh wrote:
>> Hi,
>>
>> FYI, your patch has been queued to LTS release 17.11.5
>>
>> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C801f0fcce7f94e96370c08d656d814a0%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791883479064321&sdata=3yB8cI3v5wGyFIHIi%2FnPc0PpoLmIi%2F3o63dcgAd9EzY%3D&reserved=0 yet.
>> It will be pushed if I get no objections before 12/01/18. So please
>> shout if anyone has objections.
>
> Hi,
>
> This patch can't be backported, as it depends on some API
> change in newer release.
This patch could be applied cleanly but I'll remove it.
Thanks for confirming,
Yongseok
>>
>> Also note that after the patch there's a diff of the upstream commit vs the patch applied
>> to the branch. If the code is different (ie: not only metadata diffs), due for example to
>> a change in context or macro names, please double check it.
>>
>> Thanks.
>>
>> Yongseok
>>
>> ---
>> From 85fa65d2e2a0b9e0ac4baa0ff2c5f99bed5427ec Mon Sep 17 00:00:00 2001
>> From: Tiwei Bie <tiwei.bie@intel.com>
>> Date: Wed, 7 Nov 2018 17:01:01 +0800
>> Subject: [PATCH] net/virtio: fix unchecked return value
>>
>> [ upstream commit ecfae1510edc1391285aa566a2d31e7eae8fc6d2 ]
>>
>> Coverity issue: 302861
>> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
>>
>> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>> ---
>> drivers/net/virtio/virtio_pci.c | 10 ++++++++--
>> 1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
>> index 89986c335..249ec6d3a 100644
>> --- a/drivers/net/virtio/virtio_pci.c
>> +++ b/drivers/net/virtio/virtio_pci.c
>> @@ -658,9 +658,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> hw->common_cfg = get_cfg_addr(dev, &cap);
>> break;
>> case VIRTIO_PCI_CAP_NOTIFY_CFG:
>> - rte_pci_read_config(dev, &hw->notify_off_multiplier,
>> + ret = rte_pci_read_config(dev,
>> + &hw->notify_off_multiplier,
>> 4, pos + sizeof(cap));
>> - hw->notify_base = get_cfg_addr(dev, &cap);
>> + if (ret != 4)
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read notify_off_multiplier, ret %d",
>> + ret);
>> + else
>> + hw->notify_base = get_cfg_addr(dev, &cap);
>> break;
>> case VIRTIO_PCI_CAP_DEVICE_CFG:
>> hw->dev_cfg = get_cfg_addr(dev, &cap);
>> --
>> 2.11.0
>>
>> ---
>> Diff of the applied patch vs upstream commit (please double-check if non-empty:
>> ---
>> --- - 2018-11-29 15:01:49.832061811 -0800
>> +++ 0106-net-virtio-fix-unchecked-return-value.patch 2018-11-29 15:01:45.278957000 -0800
>> @@ -1,11 +1,12 @@
>> -From ecfae1510edc1391285aa566a2d31e7eae8fc6d2 Mon Sep 17 00:00:00 2001
>> +From 85fa65d2e2a0b9e0ac4baa0ff2c5f99bed5427ec Mon Sep 17 00:00:00 2001
>> From: Tiwei Bie <tiwei.bie@intel.com>
>> Date: Wed, 7 Nov 2018 17:01:01 +0800
>> Subject: [PATCH] net/virtio: fix unchecked return value
>>
>> +[ upstream commit ecfae1510edc1391285aa566a2d31e7eae8fc6d2 ]
>> +
>> Coverity issue: 302861
>> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
>> -Cc: stable@dpdk.org
>>
>> Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>> @@ -14,10 +15,10 @@
>> 1 file changed, 8 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
>> -index 21110cd69..c8883c32e 100644
>> +index 89986c335..249ec6d3a 100644
>> --- a/drivers/net/virtio/virtio_pci.c
>> +++ b/drivers/net/virtio/virtio_pci.c
>> -@@ -614,9 +614,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> +@@ -658,9 +658,15 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> hw->common_cfg = get_cfg_addr(dev, &cap);
>> break;
>> case VIRTIO_PCI_CAP_NOTIFY_CFG:
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/virtio: fix PCI config error handling' has been queued to LTS release 17.11.5
2018-11-30 15:23 ` Tiwei Bie
@ 2018-11-30 18:02 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-11-30 18:02 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Brian Russell, Luca Boccassi, dpdk stable
> On Nov 30, 2018, at 7:23 AM, Tiwei Bie <tiwei.bie@intel.com> wrote:
>
> On Thu, Nov 29, 2018 at 03:11:19PM -0800, Yongseok Koh wrote:
>> Hi,
>>
>> FYI, your patch has been queued to LTS release 17.11.5
>>
>> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C1766cef373824913300308d656d824fa%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791883664358292&sdata=qS38KVRaj5V%2BAjZkosvooP7Zj%2F1EC52pOgdA5hyU8mw%3D&reserved=0 yet.
>> It will be pushed if I get no objections before 12/01/18. So please
>> shout if anyone has objections.
>
> Hi,
>
> This patch can't be backported, as it depends on some API
> change in newer release.
This patch could be applied cleanly but I'll remove it.
Thanks for confirming,
Yongseok
>>
>> Also note that after the patch there's a diff of the upstream commit vs the patch applied
>> to the branch. If the code is different (ie: not only metadata diffs), due for example to
>> a change in context or macro names, please double check it.
>>
>> Thanks.
>>
>> Yongseok
>>
>> ---
>> From b5196f660ce80df58babdd718f26ff980a841513 Mon Sep 17 00:00:00 2001
>> From: Brian Russell <brussell@brocade.com>
>> Date: Tue, 28 Aug 2018 11:12:40 +0100
>> Subject: [PATCH] net/virtio: fix PCI config error handling
>>
>> [ upstream commit 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd ]
>>
>> In virtio_read_caps and vtpci_msix_detect, rte_pci_read_config returns
>> the number of bytes read from PCI config or < 0 on error.
>> If less than the expected number of bytes are read then log the
>> failure and return rather than carrying on with garbage.
>>
>> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
>>
>> Signed-off-by: Brian Russell <brussell@brocade.com>
>> Signed-off-by: Luca Boccassi <bluca@debian.org>
>> Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
>> ---
>> drivers/net/virtio/virtio_pci.c | 65 ++++++++++++++++++++++++++++++-----------
>> 1 file changed, 48 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
>> index 9574498fb..89986c335 100644
>> --- a/drivers/net/virtio/virtio_pci.c
>> +++ b/drivers/net/virtio/virtio_pci.c
>> @@ -596,16 +596,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> }
>>
>> ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
>> - if (ret < 0) {
>> - PMD_INIT_LOG(DEBUG, "failed to read pci capability list");
>> + if (ret != 1) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci capability list, ret %d", ret);
>> return -1;
>> }
>>
>> while (pos) {
>> - ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
>> - if (ret < 0) {
>> - PMD_INIT_LOG(ERR,
>> - "failed to read pci cap at pos: %x", pos);
>> + ret = rte_pci_read_config(dev, &cap, 2, pos);
>> + if (ret != 2) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci cap at pos: %x ret %d",
>> + pos, ret);
>> break;
>> }
>>
>> @@ -615,7 +617,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> * 1st byte is cap ID; 2nd byte is the position of next
>> * cap; next two bytes are the flags.
>> */
>> - uint16_t flags = ((uint16_t *)&cap)[1];
>> + uint16_t flags;
>> +
>> + ret = rte_pci_read_config(dev, &flags, sizeof(flags),
>> + pos + 2);
>> + if (ret != sizeof(flags)) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci cap at pos:"
>> + " %x ret %d", pos + 2, ret);
>> + break;
>> + }
>>
>> if (flags & PCI_MSIX_ENABLE)
>> hw->use_msix = VIRTIO_MSIX_ENABLED;
>> @@ -630,6 +641,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> goto next;
>> }
>>
>> + ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
>> + if (ret != sizeof(cap)) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci cap at pos: %x ret %d",
>> + pos, ret);
>> + break;
>> + }
>> +
>> PMD_INIT_LOG(DEBUG,
>> "[%2x] cfg type: %u, bar: %u, offset: %04x, len: %u",
>> pos, cap.cfg_type, cap.bar, cap.offset, cap.length);
>> @@ -718,25 +737,37 @@ enum virtio_msix_status
>> vtpci_msix_detect(struct rte_pci_device *dev)
>> {
>> uint8_t pos;
>> - struct virtio_pci_cap cap;
>> int ret;
>>
>> ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
>> - if (ret < 0) {
>> - PMD_INIT_LOG(DEBUG, "failed to read pci capability list");
>> + if (ret != 1) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci capability list, ret %d", ret);
>> return VIRTIO_MSIX_NONE;
>> }
>>
>> while (pos) {
>> - ret = rte_pci_read_config(dev, &cap, sizeof(cap), pos);
>> - if (ret < 0) {
>> - PMD_INIT_LOG(ERR,
>> - "failed to read pci cap at pos: %x", pos);
>> + uint8_t cap[2];
>> +
>> + ret = rte_pci_read_config(dev, cap, sizeof(cap), pos);
>> + if (ret != sizeof(cap)) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci cap at pos: %x ret %d",
>> + pos, ret);
>> break;
>> }
>>
>> - if (cap.cap_vndr == PCI_CAP_ID_MSIX) {
>> - uint16_t flags = ((uint16_t *)&cap)[1];
>> + if (cap[0] == PCI_CAP_ID_MSIX) {
>> + uint16_t flags;
>> +
>> + ret = rte_pci_read_config(dev, &flags, sizeof(flags),
>> + pos + sizeof(cap));
>> + if (ret != sizeof(flags)) {
>> + PMD_INIT_LOG(DEBUG,
>> + "failed to read pci cap at pos:"
>> + " %x ret %d", pos + 2, ret);
>> + break;
>> + }
>>
>> if (flags & PCI_MSIX_ENABLE)
>> return VIRTIO_MSIX_ENABLED;
>> @@ -744,7 +775,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
>> return VIRTIO_MSIX_DISABLED;
>> }
>>
>> - pos = cap.cap_next;
>> + pos = cap[1];
>> }
>>
>> return VIRTIO_MSIX_NONE;
>> --
>> 2.11.0
>>
>> ---
>> Diff of the applied patch vs upstream commit (please double-check if non-empty:
>> ---
>> --- - 2018-11-29 15:01:48.971545454 -0800
>> +++ 0085-net-virtio-fix-PCI-config-error-handling.patch 2018-11-29 15:01:45.234959000 -0800
>> @@ -1,15 +1,16 @@
>> -From 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd Mon Sep 17 00:00:00 2001
>> +From b5196f660ce80df58babdd718f26ff980a841513 Mon Sep 17 00:00:00 2001
>> From: Brian Russell <brussell@brocade.com>
>> Date: Tue, 28 Aug 2018 11:12:40 +0100
>> Subject: [PATCH] net/virtio: fix PCI config error handling
>>
>> +[ upstream commit 49bb1f7a0ab760a0f1fb39e27c90a1cb2ad42edd ]
>> +
>> In virtio_read_caps and vtpci_msix_detect, rte_pci_read_config returns
>> the number of bytes read from PCI config or < 0 on error.
>> If less than the expected number of bytes are read then log the
>> failure and return rather than carrying on with garbage.
>>
>> Fixes: 6ba1f63b5ab0 ("virtio: support specification 1.0")
>> -Cc: stable@dpdk.org
>>
>> Signed-off-by: Brian Russell <brussell@brocade.com>
>> Signed-off-by: Luca Boccassi <bluca@debian.org>
>> @@ -19,10 +20,10 @@
>> 1 file changed, 48 insertions(+), 17 deletions(-)
>>
>> diff --git a/drivers/net/virtio/virtio_pci.c b/drivers/net/virtio/virtio_pci.c
>> -index 6bd22e54a..b6a3c80b4 100644
>> +index 9574498fb..89986c335 100644
>> --- a/drivers/net/virtio/virtio_pci.c
>> +++ b/drivers/net/virtio/virtio_pci.c
>> -@@ -567,16 +567,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> +@@ -596,16 +596,18 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> }
>>
>> ret = rte_pci_read_config(dev, &pos, 1, PCI_CAPABILITY_LIST);
>> @@ -47,7 +48,7 @@
>> break;
>> }
>>
>> -@@ -586,7 +588,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> +@@ -615,7 +617,16 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> * 1st byte is cap ID; 2nd byte is the position of next
>> * cap; next two bytes are the flags.
>> */
>> @@ -65,7 +66,7 @@
>>
>> if (flags & PCI_MSIX_ENABLE)
>> hw->use_msix = VIRTIO_MSIX_ENABLED;
>> -@@ -601,6 +612,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> +@@ -630,6 +641,14 @@ virtio_read_caps(struct rte_pci_device *dev, struct virtio_hw *hw)
>> goto next;
>> }
>>
>> @@ -80,7 +81,7 @@
>> PMD_INIT_LOG(DEBUG,
>> "[%2x] cfg type: %u, bar: %u, offset: %04x, len: %u",
>> pos, cap.cfg_type, cap.bar, cap.offset, cap.length);
>> -@@ -689,25 +708,37 @@ enum virtio_msix_status
>> +@@ -718,25 +737,37 @@ enum virtio_msix_status
>> vtpci_msix_detect(struct rte_pci_device *dev)
>> {
>> uint8_t pos;
>> @@ -127,7 +128,7 @@
>>
>> if (flags & PCI_MSIX_ENABLE)
>> return VIRTIO_MSIX_ENABLED;
>> -@@ -715,7 +746,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
>> +@@ -744,7 +775,7 @@ vtpci_msix_detect(struct rte_pci_device *dev)
>> return VIRTIO_MSIX_DISABLED;
>> }
>>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/failsafe: use prefix for function' has been queued to LTS release 17.11.5
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: use prefix for function' " Yongseok Koh
@ 2018-12-20 0:17 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:17 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Gaetan Rivet, dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:10 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7Cc67ee1031dab42ef000608d65650629c%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791300627516921&sdata=Bw1JWchNKSVXoEB8U3NWJXyOtnQYixGcqOsOY8ndXYg%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From 1e254728404576db680bf5e3e1ec99204aa0815f Mon Sep 17 00:00:00 2001
> From: Stephen Hemminger <stephen@networkplumber.org>
> Date: Mon, 8 Oct 2018 15:31:40 -0700
> Subject: [PATCH] net/failsafe: use prefix for function
>
> [ upstream commit 86123c2dfb94416b4fb17e07bf31d32172308623 ]
>
> All other visible functions in failsafe driver have 'failsafe_'
> prefix.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> Acked-by: Gaetan Rivet <gaetan.rivet@6wind.com>
> ---
> drivers/net/failsafe/failsafe_ether.c | 2 +-
> drivers/net/failsafe/failsafe_private.h | 4 ++--
> drivers/net/failsafe/failsafe_rxtx.c | 2 +-
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/failsafe/failsafe_ether.c b/drivers/net/failsafe/failsafe_ether.c
> index 5b5ac42ba..06aeea7ab 100644
> --- a/drivers/net/failsafe/failsafe_ether.c
> +++ b/drivers/net/failsafe/failsafe_ether.c
> @@ -488,7 +488,7 @@ failsafe_eth_rmv_event_callback(uint16_t port_id __rte_unused,
> /* Switch as soon as possible tx_dev. */
> fs_switch_dev(sdev->fs_dev, sdev);
> /* Use safe bursts in any case. */
> - set_burst_fn(sdev->fs_dev, 1);
> + failsafe_set_burst_fn(sdev->fs_dev, 1);
> /*
> * Async removal, the sub-PMD will try to unregister
> * the callback at the source of the current thread context.
> diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h
> index 40eabb784..c71baea38 100644
> --- a/drivers/net/failsafe/failsafe_private.h
> +++ b/drivers/net/failsafe/failsafe_private.h
> @@ -164,7 +164,7 @@ int failsafe_hotplug_alarm_cancel(struct rte_eth_dev *dev);
>
> /* RX / TX */
>
> -void set_burst_fn(struct rte_eth_dev *dev, int force_safe);
> +void failsafe_set_burst_fn(struct rte_eth_dev *dev, int force_safe);
>
> uint16_t failsafe_rx_burst(void *rxq,
> struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
> @@ -376,7 +376,7 @@ fs_switch_dev(struct rte_eth_dev *dev,
> } else {
> return;
> }
> - set_burst_fn(dev, 0);
> + failsafe_set_burst_fn(dev, 0);
> rte_wmb();
> }
>
> diff --git a/drivers/net/failsafe/failsafe_rxtx.c b/drivers/net/failsafe/failsafe_rxtx.c
> index 178294c2e..4744702cd 100644
> --- a/drivers/net/failsafe/failsafe_rxtx.c
> +++ b/drivers/net/failsafe/failsafe_rxtx.c
> @@ -57,7 +57,7 @@ fs_tx_unsafe(struct sub_device *sdev)
> }
>
> void
> -set_burst_fn(struct rte_eth_dev *dev, int force_safe)
> +failsafe_set_burst_fn(struct rte_eth_dev *dev, int force_safe)
> {
> struct sub_device *sdev;
> uint8_t i;
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:47.834705064 -0800
> +++ 0059-net-failsafe-use-prefix-for-function.patch 2018-11-29 15:01:45.141959000 -0800
> @@ -1,8 +1,10 @@
> -From 86123c2dfb94416b4fb17e07bf31d32172308623 Mon Sep 17 00:00:00 2001
> +From 1e254728404576db680bf5e3e1ec99204aa0815f Mon Sep 17 00:00:00 2001
> From: Stephen Hemminger <stephen@networkplumber.org>
> Date: Mon, 8 Oct 2018 15:31:40 -0700
> Subject: [PATCH] net/failsafe: use prefix for function
>
> +[ upstream commit 86123c2dfb94416b4fb17e07bf31d32172308623 ]
> +
> All other visible functions in failsafe driver have 'failsafe_'
> prefix.
>
> @@ -15,10 +17,10 @@
> 3 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/net/failsafe/failsafe_ether.c b/drivers/net/failsafe/failsafe_ether.c
> -index 884b86882..178316521 100644
> +index 5b5ac42ba..06aeea7ab 100644
> --- a/drivers/net/failsafe/failsafe_ether.c
> +++ b/drivers/net/failsafe/failsafe_ether.c
> -@@ -570,7 +570,7 @@ failsafe_eth_rmv_event_callback(uint16_t port_id __rte_unused,
> +@@ -488,7 +488,7 @@ failsafe_eth_rmv_event_callback(uint16_t port_id __rte_unused,
> /* Switch as soon as possible tx_dev. */
> fs_switch_dev(sdev->fs_dev, sdev);
> /* Use safe bursts in any case. */
> @@ -28,10 +30,10 @@
> * Async removal, the sub-PMD will try to unregister
> * the callback at the source of the current thread context.
> diff --git a/drivers/net/failsafe/failsafe_private.h b/drivers/net/failsafe/failsafe_private.h
> -index b9d4608ab..442e6199f 100644
> +index 40eabb784..c71baea38 100644
> --- a/drivers/net/failsafe/failsafe_private.h
> +++ b/drivers/net/failsafe/failsafe_private.h
> -@@ -193,7 +193,7 @@ int failsafe_hotplug_alarm_cancel(struct rte_eth_dev *dev);
> +@@ -164,7 +164,7 @@ int failsafe_hotplug_alarm_cancel(struct rte_eth_dev *dev);
>
> /* RX / TX */
>
> @@ -40,7 +42,7 @@
>
> uint16_t failsafe_rx_burst(void *rxq,
> struct rte_mbuf **rx_pkts, uint16_t nb_pkts);
> -@@ -473,7 +473,7 @@ fs_switch_dev(struct rte_eth_dev *dev,
> +@@ -376,7 +376,7 @@ fs_switch_dev(struct rte_eth_dev *dev,
> } else {
> return;
> }
> @@ -50,10 +52,10 @@
> }
>
> diff --git a/drivers/net/failsafe/failsafe_rxtx.c b/drivers/net/failsafe/failsafe_rxtx.c
> -index 7bd0f963e..034f47b87 100644
> +index 178294c2e..4744702cd 100644
> --- a/drivers/net/failsafe/failsafe_rxtx.c
> +++ b/drivers/net/failsafe/failsafe_rxtx.c
> -@@ -29,7 +29,7 @@ fs_tx_unsafe(struct sub_device *sdev)
> +@@ -57,7 +57,7 @@ fs_tx_unsafe(struct sub_device *sdev)
> }
>
> void
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Yongseok Koh
@ 2018-12-20 0:18 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:18 UTC (permalink / raw)
To: Jeff Guo; +Cc: Ferruh Yigit, dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C9a85707264f84fa23fbc08d656506c13%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791300746459390&sdata=RiJcaNBcf8to1Bfkg%2FfrK7lG%2FxBlKu%2F5EYnIxD2MBhI%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From 8933c679415efb064aa46025fc84df6765577897 Mon Sep 17 00:00:00 2001
> From: Jeff Guo <jia.guo@intel.com>
> Date: Thu, 18 Oct 2018 14:27:15 +0800
> Subject: [PATCH] igb_uio: fix unexpected removal for hot-unplug
>
> [ upstream commit 70efa4116420b6f7a0734711dd603d3024366c79 ]
>
> When a device is hot-unplugged, pci_remove will be invoked unexpectedly
> before pci_release, it will caused kernel hung issue which will throw the
> error info of "Trying to free already-free IRQ XXX". And on the other hand,
> if pci_remove before pci_release, the interrupt will not got chance to be
> disabled. So this patch aim to fix this issue by adding pci_release call
> in pci_remove, it will gurranty that all pci clean up will be done before
> pci removal.
>
> Signed-off-by: Jeff Guo <jia.guo@intel.com>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> index 45d70272d..22484ac14 100644
> --- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> +++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> @@ -577,6 +577,8 @@ igbuio_pci_remove(struct pci_dev *dev)
> {
> struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
>
> + igbuio_pci_release(&udev->info, NULL);
> +
> sysfs_remove_group(&dev->dev.kobj, &dev_attr_grp);
> uio_unregister_device(&udev->info);
> igbuio_pci_release_iomem(&udev->info);
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:48.264909796 -0800
> +++ 0069-igb_uio-fix-unexpected-removal-for-hot-unplug.patch 2018-11-29 15:01:45.176961000 -0800
> @@ -1,8 +1,10 @@
> -From 70efa4116420b6f7a0734711dd603d3024366c79 Mon Sep 17 00:00:00 2001
> +From 8933c679415efb064aa46025fc84df6765577897 Mon Sep 17 00:00:00 2001
> From: Jeff Guo <jia.guo@intel.com>
> Date: Thu, 18 Oct 2018 14:27:15 +0800
> Subject: [PATCH] igb_uio: fix unexpected removal for hot-unplug
>
> +[ upstream commit 70efa4116420b6f7a0734711dd603d3024366c79 ]
> +
> When a device is hot-unplugged, pci_remove will be invoked unexpectedly
> before pci_release, it will caused kernel hung issue which will throw the
> error info of "Trying to free already-free IRQ XXX". And on the other hand,
> @@ -14,14 +16,14 @@
> Signed-off-by: Jeff Guo <jia.guo@intel.com>
> Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> - kernel/linux/igb_uio/igb_uio.c | 2 ++
> + lib/librte_eal/linuxapp/igb_uio/igb_uio.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> -diff --git a/kernel/linux/igb_uio/igb_uio.c b/kernel/linux/igb_uio/igb_uio.c
> -index fede66cf2..3cf394bdf 100644
> ---- a/kernel/linux/igb_uio/igb_uio.c
> -+++ b/kernel/linux/igb_uio/igb_uio.c
> -@@ -570,6 +570,8 @@ igbuio_pci_remove(struct pci_dev *dev)
> +diff --git a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> +index 45d70272d..22484ac14 100644
> +--- a/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> ++++ b/lib/librte_eal/linuxapp/igb_uio/igb_uio.c
> +@@ -577,6 +577,8 @@ igbuio_pci_remove(struct pci_dev *dev)
> {
> struct rte_uio_pci_dev *udev = pci_get_drvdata(dev);
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'kni: fix build on Linux 4.19' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Yongseok Koh
@ 2018-12-20 0:19 ` Yongseok Koh
2019-01-04 20:33 ` Yongseok Koh
0 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:19 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C51fc11b217f144eebd3908d656507234%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791300854681425&sdata=RpmoYsiaObdXcq9wBWLCGeJ1LZ%2FSe%2BkwdqryVD9fFOU%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From e013021836efb2d1a228b525d5aee8c7e41e8bb9 Mon Sep 17 00:00:00 2001
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Date: Wed, 24 Oct 2018 12:10:10 +0100
> Subject: [PATCH] kni: fix build on Linux 4.19
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> [ upstream commit a9460a0b2efb80a913d8770dc188e816b227622f ]
>
> The build error observed with Linux kernel 4.19 when KNI ethtool
> support enabled (CONFIG_RTE_KNI_KMOD_ETHTOOL=y)
>
> .../build/build/kernel/linux/kni/kni_ethtool.c:193:3:
> error: ‘struct ethtool_ops’ has no member named ‘get_settings’;
> .get_settings = kni_get_settings,
> ^~~~~~~~~~~~
>
> .../build/build/kernel/linux/kni/kni_ethtool.c:194:3:
> error: ‘struct ethtool_ops’ has no member named ‘set_settings’;
> .set_settings = kni_set_settings,
> ^~~~~~~~~~~~
>
> With kernel 4.19 ethtool_ops `get_settings` & `set_settings` are
> replaced with `get_link_ksettings` & `set_link_ksettings`
> Commit 9b3004953503 ("ethtool: drop get_settings and set_settings callbacks")
>
> This fix practically removes `get_settings` & `set_settings` support
> for the kernel versions that have the new ethtool_ops without
> implementing the new ones.
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
> lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h | 2 ++
> lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
> lib/librte_eal/linuxapp/kni/kni_ethtool.c | 10 ++++++++++
> 4 files changed, 28 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
> index aed14bcc8..7a520ecec 100644
> --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
> +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
> @@ -150,6 +150,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
> #define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
> #endif /* ETHTOOL_TEST */
>
> +#ifndef ETHTOOL_GLINKSETTINGS
> static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> {
> struct igb_adapter *adapter = netdev_priv(netdev);
> @@ -274,7 +275,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> #endif /* ETH_TP_MDI_X */
> return 0;
> }
> +#endif
>
> +#ifndef ETHTOOL_SLINKSETTINGS
> static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> {
> struct igb_adapter *adapter = netdev_priv(netdev);
> @@ -379,6 +382,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> clear_bit(__IGB_RESETTING, &adapter->state);
> return 0;
> }
> +#endif
>
> static u32 igb_get_link(struct net_device *netdev)
> {
> @@ -2752,8 +2756,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
> #endif /* ETHTOOL_GRXRINGS */
>
> static const struct ethtool_ops igb_ethtool_ops = {
> +#ifndef ETHTOOL_GLINKSETTINGS
> .get_settings = igb_get_settings,
> +#endif
> +#ifndef ETHTOOL_SLINKSETTINGS
> .set_settings = igb_set_settings,
> +#endif
> .get_drvinfo = igb_get_drvinfo,
> .get_regs_len = igb_get_regs_len,
> .get_regs = igb_get_regs,
> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
> index 59415469c..cc3f8ea41 100644
> --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
> +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
> @@ -905,8 +905,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
> #endif /* CONFIG_DCB */
>
> extern void ixgbe_clean_rx_ring(struct ixgbe_ring *rx_ring);
> +#ifndef ETHTOOL_GLINKSETTINGS
> extern int ixgbe_get_settings(struct net_device *netdev,
> struct ethtool_cmd *ecmd);
> +#endif
> extern int ixgbe_write_uc_addr_list(struct ixgbe_adapter *adapter,
> struct net_device *netdev, unsigned int vfn);
> extern void ixgbe_full_sync_mac_table(struct ixgbe_adapter *adapter);
> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
> index cdfcb9596..1296829bc 100644
> --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
> +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
> @@ -173,6 +173,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
> #define IXGBE_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)
> #endif /* ETHTOOL_TEST */
>
> +#ifndef ETHTOOL_GLINKSETTINGS
> int ixgbe_get_settings(struct net_device *netdev,
> struct ethtool_cmd *ecmd)
> {
> @@ -362,7 +363,9 @@ int ixgbe_get_settings(struct net_device *netdev,
>
> return 0;
> }
> +#endif
>
> +#ifndef ETHTOOL_SLINKSETTINGS
> static int ixgbe_set_settings(struct net_device *netdev,
> struct ethtool_cmd *ecmd)
> {
> @@ -406,6 +409,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
> }
> return err;
> }
> +#endif
>
> static void ixgbe_get_pauseparam(struct net_device *netdev,
> struct ethtool_pauseparam *pause)
> @@ -2830,8 +2834,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
> #endif /* ETHTOOL_GRXRINGS */
> //static
> struct ethtool_ops ixgbe_ethtool_ops = {
> +#ifndef ETHTOOL_GLINKSETTINGS
> .get_settings = ixgbe_get_settings,
> +#endif
> +#ifndef ETHTOOL_SLINKSETTINGS
> .set_settings = ixgbe_set_settings,
> +#endif
> .get_drvinfo = ixgbe_get_drvinfo,
> .get_regs_len = ixgbe_get_regs_len,
> .get_regs = ixgbe_get_regs,
> diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
> index 0c88589c9..8174e98db 100644
> --- a/lib/librte_eal/linuxapp/kni/kni_ethtool.c
> +++ b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
> @@ -46,6 +46,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
> priv->lad_dev->ethtool_ops->get_drvinfo(priv->lad_dev, info);
> }
>
> +/* ETHTOOL_GLINKSETTINGS replaces ETHTOOL_GSET */
> +#ifndef ETHTOOL_GLINKSETTINGS
> static int
> kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
> {
> @@ -53,7 +55,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>
> return priv->lad_dev->ethtool_ops->get_settings(priv->lad_dev, ecmd);
> }
> +#endif
>
> +/* ETHTOOL_SLINKSETTINGS replaces ETHTOOL_SSET */
> +#ifndef ETHTOOL_SLINKSETTINGS
> static int
> kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
> {
> @@ -61,6 +66,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>
> return priv->lad_dev->ethtool_ops->set_settings(priv->lad_dev, ecmd);
> }
> +#endif
>
> static void
> kni_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
> @@ -209,8 +215,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
> struct ethtool_ops kni_ethtool_ops = {
> .begin = kni_check_if_running,
> .get_drvinfo = kni_get_drvinfo,
> +#ifndef ETHTOOL_GLINKSETTINGS
> .get_settings = kni_get_settings,
> +#endif
> +#ifndef ETHTOOL_SLINKSETTINGS
> .set_settings = kni_set_settings,
> +#endif
> .get_regs_len = kni_get_regs_len,
> .get_regs = kni_get_regs,
> .get_wol = kni_get_wol,
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:48.389325238 -0800
> +++ 0072-kni-fix-build-on-Linux-4.19.patch 2018-11-29 15:01:45.186964000 -0800
> @@ -1,4 +1,4 @@
> -From a9460a0b2efb80a913d8770dc188e816b227622f Mon Sep 17 00:00:00 2001
> +From e013021836efb2d1a228b525d5aee8c7e41e8bb9 Mon Sep 17 00:00:00 2001
> From: Ferruh Yigit <ferruh.yigit@intel.com>
> Date: Wed, 24 Oct 2018 12:10:10 +0100
> Subject: [PATCH] kni: fix build on Linux 4.19
> @@ -6,6 +6,8 @@
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> +[ upstream commit a9460a0b2efb80a913d8770dc188e816b227622f ]
> +
> The build error observed with Linux kernel 4.19 when KNI ethtool
> support enabled (CONFIG_RTE_KNI_KMOD_ETHTOOL=y)
>
> @@ -29,17 +31,17 @@
>
> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> - kernel/linux/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
> - kernel/linux/kni/ethtool/ixgbe/ixgbe.h | 2 ++
> - kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
> - kernel/linux/kni/kni_ethtool.c | 10 ++++++++++
> + lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
> + lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h | 2 ++
> + lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
> + lib/librte_eal/linuxapp/kni/kni_ethtool.c | 10 ++++++++++
> 4 files changed, 28 insertions(+)
>
> -diff --git a/kernel/linux/kni/ethtool/igb/igb_ethtool.c b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
> -index 002f75c48..b6bddc025 100644
> ---- a/kernel/linux/kni/ethtool/igb/igb_ethtool.c
> -+++ b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
> -@@ -135,6 +135,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
> +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
> +index aed14bcc8..7a520ecec 100644
> +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
> ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
> +@@ -150,6 +150,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
> #define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
> #endif /* ETHTOOL_TEST */
>
> @@ -47,7 +49,7 @@
> static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> {
> struct igb_adapter *adapter = netdev_priv(netdev);
> -@@ -259,7 +260,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> +@@ -274,7 +275,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> #endif /* ETH_TP_MDI_X */
> return 0;
> }
> @@ -57,7 +59,7 @@
> static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> {
> struct igb_adapter *adapter = netdev_priv(netdev);
> -@@ -364,6 +367,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> +@@ -379,6 +382,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
> clear_bit(__IGB_RESETTING, &adapter->state);
> return 0;
> }
> @@ -65,7 +67,7 @@
>
> static u32 igb_get_link(struct net_device *netdev)
> {
> -@@ -2737,8 +2741,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
> +@@ -2752,8 +2756,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
> #endif /* ETHTOOL_GRXRINGS */
>
> static const struct ethtool_ops igb_ethtool_ops = {
> @@ -78,11 +80,11 @@
> .get_drvinfo = igb_get_drvinfo,
> .get_regs_len = igb_get_regs_len,
> .get_regs = igb_get_regs,
> -diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
> -index 6ff941334..cc15ec6ab 100644
> ---- a/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
> -+++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
> -@@ -890,8 +890,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
> +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
> +index 59415469c..cc3f8ea41 100644
> +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
> ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
> +@@ -905,8 +905,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
> #endif /* CONFIG_DCB */
>
> extern void ixgbe_clean_rx_ring(struct ixgbe_ring *rx_ring);
> @@ -93,11 +95,11 @@
> extern int ixgbe_write_uc_addr_list(struct ixgbe_adapter *adapter,
> struct net_device *netdev, unsigned int vfn);
> extern void ixgbe_full_sync_mac_table(struct ixgbe_adapter *adapter);
> -diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
> -index 44cdc9f20..f2ded19e9 100644
> ---- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
> -+++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
> -@@ -158,6 +158,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
> +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
> +index cdfcb9596..1296829bc 100644
> +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
> ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
> +@@ -173,6 +173,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
> #define IXGBE_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)
> #endif /* ETHTOOL_TEST */
>
> @@ -105,7 +107,7 @@
> int ixgbe_get_settings(struct net_device *netdev,
> struct ethtool_cmd *ecmd)
> {
> -@@ -347,7 +348,9 @@ int ixgbe_get_settings(struct net_device *netdev,
> +@@ -362,7 +363,9 @@ int ixgbe_get_settings(struct net_device *netdev,
>
> return 0;
> }
> @@ -115,7 +117,7 @@
> static int ixgbe_set_settings(struct net_device *netdev,
> struct ethtool_cmd *ecmd)
> {
> -@@ -391,6 +394,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
> +@@ -406,6 +409,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
> }
> return err;
> }
> @@ -123,7 +125,7 @@
>
> static void ixgbe_get_pauseparam(struct net_device *netdev,
> struct ethtool_pauseparam *pause)
> -@@ -2815,8 +2819,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
> +@@ -2830,8 +2834,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
> #endif /* ETHTOOL_GRXRINGS */
> //static
> struct ethtool_ops ixgbe_ethtool_ops = {
> @@ -136,11 +138,11 @@
> .get_drvinfo = ixgbe_get_drvinfo,
> .get_regs_len = ixgbe_get_regs_len,
> .get_regs = ixgbe_get_regs,
> -diff --git a/kernel/linux/kni/kni_ethtool.c b/kernel/linux/kni/kni_ethtool.c
> -index a44e7d949..b1c84f8f0 100644
> ---- a/kernel/linux/kni/kni_ethtool.c
> -+++ b/kernel/linux/kni/kni_ethtool.c
> -@@ -27,6 +27,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
> +diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
> +index 0c88589c9..8174e98db 100644
> +--- a/lib/librte_eal/linuxapp/kni/kni_ethtool.c
> ++++ b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
> +@@ -46,6 +46,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
> priv->lad_dev->ethtool_ops->get_drvinfo(priv->lad_dev, info);
> }
>
> @@ -149,7 +151,7 @@
> static int
> kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
> {
> -@@ -34,7 +36,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
> +@@ -53,7 +55,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>
> return priv->lad_dev->ethtool_ops->get_settings(priv->lad_dev, ecmd);
> }
> @@ -160,7 +162,7 @@
> static int
> kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
> {
> -@@ -42,6 +47,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
> +@@ -61,6 +66,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>
> return priv->lad_dev->ethtool_ops->set_settings(priv->lad_dev, ecmd);
> }
> @@ -168,7 +170,7 @@
>
> static void
> kni_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
> -@@ -190,8 +196,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
> +@@ -209,8 +215,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
> struct ethtool_ops kni_ethtool_ops = {
> .begin = kni_check_if_running,
> .get_drvinfo = kni_get_drvinfo,
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'kni: fix build on Linux < 3.14' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Yongseok Koh
@ 2018-12-20 0:19 ` Yongseok Koh
2018-12-20 8:30 ` Thomas Monjalon
0 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:19 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C28c79ab8cfbd4df2f1ef08d65650721a%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791300840098396&sdata=Xq8J5JtAZDXWREX5qjIyy3F41SDfguHeuhUGn7ueG6s%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
> From: Thomas Monjalon <thomas@monjalon.net>
> Date: Fri, 26 Oct 2018 23:23:36 +0200
> Subject: [PATCH] kni: fix build on Linux < 3.14
> MIME-Version: 1.0
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> [ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
>
> The atomic functions smp_load_acquire() and smp_store_release()
> were introduced in Linux 3.14. Older kernels miss the functions:
>
> kni_fifo.h:19:2: error:
> implicit declaration of function ‘smp_load_acquire’
> kni_fifo.h:30:2: error:
> implicit declaration of function ‘smp_store_release’
>
> The fallback is to drop the atomic barrier, as it was before
> the commit below.
>
> Fixes: 711859cd0d07 ("kni: fix kernel FIFO synchronization")
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> index e4edab9f3..26208ae44 100644
> --- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
> +++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> @@ -27,6 +27,14 @@
>
> #include <exec-env/rte_kni_common.h>
>
> +/* Skip some memory barriers on Linux < 3.14 */
> +#ifndef smp_load_acquire
> +#define smp_load_acquire(a) (*(a))
> +#endif
> +#ifndef smp_store_release
> +#define smp_store_release(a, b) *(a) = (b)
> +#endif
> +
> /**
> * Adds num elements into the fifo. Return the number actually written
> */
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:48.485261122 -0800
> +++ 0074-kni-fix-build-on-Linux-3.14.patch 2018-11-29 15:01:45.190958000 -0800
> @@ -1,4 +1,4 @@
> -From c6c36fe28a7bfd8ca21784b2b8b62241f89de06e Mon Sep 17 00:00:00 2001
> +From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
> From: Thomas Monjalon <thomas@monjalon.net>
> Date: Fri, 26 Oct 2018 23:23:36 +0200
> Subject: [PATCH] kni: fix build on Linux < 3.14
> @@ -6,6 +6,8 @@
> Content-Type: text/plain; charset=UTF-8
> Content-Transfer-Encoding: 8bit
>
> +[ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
> +
> The atomic functions smp_load_acquire() and smp_store_release()
> were introduced in Linux 3.14. Older kernels miss the functions:
>
> @@ -21,14 +23,14 @@
>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> - kernel/linux/kni/kni_fifo.h | 8 ++++++++
> + lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> -diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
> -index 2cb3a4a7b..3f4781c2e 100644
> ---- a/kernel/linux/kni/kni_fifo.h
> -+++ b/kernel/linux/kni/kni_fifo.h
> -@@ -8,6 +8,14 @@
> +diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> +index e4edab9f3..26208ae44 100644
> +--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
> ++++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> +@@ -27,6 +27,14 @@
>
> #include <exec-env/rte_kni_common.h>
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/mlx5: fix build on PPC64' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'net/mlx5: fix build on PPC64' " Yongseok Koh
@ 2018-12-20 0:20 ` Yongseok Koh
2018-12-20 8:34 ` Thomas Monjalon
0 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:20 UTC (permalink / raw)
To: Thomas Monjalon
Cc: Christian Ehrhardt, Adrien Mazarguil, David Wilder, Chao Zhu,
dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C40c82295f497460bc8ab08d656508faf%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791301339809185&sdata=LWhqqLssFQpwxlf1yKXdT2cGROcQv8w73TdAwoESdI8%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
> From: Thomas Monjalon <thomas@monjalon.net>
> Date: Wed, 7 Nov 2018 17:00:28 +0100
> Subject: [PATCH] net/mlx5: fix build on PPC64
>
> [ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]
>
> The AltiVec header file breaks boolean type:
>
> error: incompatible types when initializing type
> '__vector _bool int' {aka '_vector(4) __bool int'} using type 'int'
>
> If __APPLE_ALTIVEC__ is defined, then bool type is redefined
> and conflicts with stdbool.h.
>
> There is no good solution to fix it for the whole project without
> breaking something else, so a workaround is inserted in mlx5 PMD.
> This workaround is not compatible with C++ but there is no C++ in DPDK.
>
> Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> Suggested-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> Tested-by: David Wilder <dwilder@us.ibm.com>
> Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> ---
> drivers/net/mlx5/mlx5_utils.h | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
> index e48352f37..572296575 100644
> --- a/drivers/net/mlx5/mlx5_utils.h
> +++ b/drivers/net/mlx5/mlx5_utils.h
> @@ -43,6 +43,16 @@
>
> #include "mlx5_defs.h"
>
> +/*
> + * Compilation workaround for PPC64 when AltiVec is fully enabled, e.g. std=c11.
> + * Otherwise there would be a type conflict between stdbool and altivec.
> + */
> +#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
> +#undef bool
> +/* redefine as in stdbool.h */
> +#define bool _Bool
> +#endif
> +
> /* Bit-field manipulation. */
> #define BITFIELD_DECLARE(bf, type, size) \
> type bf[(((size_t)(size) / (sizeof(type) * CHAR_BIT)) + \
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:49.710766496 -0800
> +++ 0103-net-mlx5-fix-build-on-PPC64.patch 2018-11-29 15:01:45.273961000 -0800
> @@ -1,8 +1,10 @@
> -From 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d Mon Sep 17 00:00:00 2001
> +From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
> From: Thomas Monjalon <thomas@monjalon.net>
> Date: Wed, 7 Nov 2018 17:00:28 +0100
> Subject: [PATCH] net/mlx5: fix build on PPC64
>
> +[ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]
> +
> The AltiVec header file breaks boolean type:
>
> error: incompatible types when initializing type
> @@ -25,10 +27,10 @@
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
> -index 886f60e61..97092c749 100644
> +index e48352f37..572296575 100644
> --- a/drivers/net/mlx5/mlx5_utils.h
> +++ b/drivers/net/mlx5/mlx5_utils.h
> -@@ -15,6 +15,16 @@
> +@@ -43,6 +43,16 @@
>
> #include "mlx5_defs.h"
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' " Yongseok Koh
@ 2018-12-20 0:21 ` Yongseok Koh
2019-01-08 16:48 ` Burakov, Anatoly
0 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:21 UTC (permalink / raw)
To: Yong Wang; +Cc: Anatoly Burakov, dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C3097861863494e253cd808d65650a18a%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791301631687810&sdata=1IIjuHiB%2FDLkwrxCowghwJs4B3lC%2BjR8lgbFRceJS1Y%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00 2001
> From: Yong Wang <wang.yong19@zte.com.cn>
> Date: Tue, 6 Nov 2018 21:40:52 -0500
> Subject: [PATCH] doc: fix NUMA library name in Linux guide
>
> [ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
>
> The library for handling NUMA is not libnuma-devel, but numactl-devel
> in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
>
> Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> doc/guides/linux_gsg/sys_reqs.rst | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
> index 3e7fe6373..7a91b31c7 100644
> --- a/doc/guides/linux_gsg/sys_reqs.rst
> +++ b/doc/guides/linux_gsg/sys_reqs.rst
> @@ -91,7 +91,11 @@ Compilation of the DPDK
> x86_x32 ABI is currently supported with distribution packages only on Ubuntu
> higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+.
>
> -* libnuma-devel - library for handling NUMA (Non Uniform Memory Access).
> +* Library for handling NUMA (Non Uniform Memory Access).
> +
> + * numactl-devel in Red Hat/Fedora;
> +
> + * libnuma-dev in Debian/Ubuntu;
>
> * Python, version 2.7+ or 3.2+, to use various helper scripts included in the DPDK package.
>
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:50.406698523 -0800
> +++ 0119-doc-fix-NUMA-library-name-in-Linux-guide.patch 2018-11-29 15:01:45.315956000 -0800
> @@ -1,8 +1,10 @@
> -From ee57170c4acb7b477091948caa8ea9e887222867 Mon Sep 17 00:00:00 2001
> +From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00 2001
> From: Yong Wang <wang.yong19@zte.com.cn>
> Date: Tue, 6 Nov 2018 21:40:52 -0500
> Subject: [PATCH] doc: fix NUMA library name in Linux guide
>
> +[ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
> +
> The library for handling NUMA is not libnuma-devel, but numactl-devel
> in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
>
> @@ -13,10 +15,10 @@
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/doc/guides/linux_gsg/sys_reqs.rst b/doc/guides/linux_gsg/sys_reqs.rst
> -index 96f5ce9b5..29c5f47a5 100644
> +index 3e7fe6373..7a91b31c7 100644
> --- a/doc/guides/linux_gsg/sys_reqs.rst
> +++ b/doc/guides/linux_gsg/sys_reqs.rst
> -@@ -64,7 +64,11 @@ Compilation of the DPDK
> +@@ -91,7 +91,11 @@ Compilation of the DPDK
> x86_x32 ABI is currently supported with distribution packages only on Ubuntu
> higher than 13.10 or recent Debian distribution. The only supported compiler is gcc 4.9+.
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'doc: fix function name in flow filtering app guide' has been queued to LTS release 17.11.5
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix function name in flow filtering " Yongseok Koh
@ 2018-12-20 0:21 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:21 UTC (permalink / raw)
To: Rami Rosen; +Cc: dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C544275c165be4c8e0cdc08d65650a27e%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791301653838285&sdata=8oaExqtc8JxQdah8%2FRLEhtAtUsoc9ush4F83Ayal1zs%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From 8145e9ac5465a2801908c80488ac3f0b8dc31159 Mon Sep 17 00:00:00 2001
> From: Rami Rosen <ramirose@gmail.com>
> Date: Thu, 8 Nov 2018 21:46:48 +0200
> Subject: [PATCH] doc: fix function name in flow filtering app guide
>
> [ upstream commit eaee9659037e7ee7c77feba76c1d940929f4a8af ]
>
> This patch fixes a typo in flow_filtering.rst. There is no
> method named generate_ipv4_rule in DPDK, it should be generate_ipv4_flow.
>
> Signed-off-by: Rami Rosen <ramirose@gmail.com>
> ---
> doc/guides/sample_app_ug/flow_filtering.rst | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/doc/guides/sample_app_ug/flow_filtering.rst b/doc/guides/sample_app_ug/flow_filtering.rst
> index 725dcb445..f6177e152 100644
> --- a/doc/guides/sample_app_ug/flow_filtering.rst
> +++ b/doc/guides/sample_app_ug/flow_filtering.rst
> @@ -365,7 +365,7 @@ The forwarding loop can be interrupted and the application closed using
> The generate_ipv4_flow function
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> -The generate_ipv4_rule function is responsible for creating the flow rule.
> +The generate_ipv4_flow function is responsible for creating the flow rule.
> This function is located in the ``flow_blocks.c`` file.
>
> .. code-block:: c
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:50.487754897 -0800
> +++ 0121-doc-fix-function-name-in-flow-filtering-app-guide.patch 2018-11-29 15:01:45.318957000 -0800
> @@ -1,8 +1,10 @@
> -From eaee9659037e7ee7c77feba76c1d940929f4a8af Mon Sep 17 00:00:00 2001
> +From 8145e9ac5465a2801908c80488ac3f0b8dc31159 Mon Sep 17 00:00:00 2001
> From: Rami Rosen <ramirose@gmail.com>
> Date: Thu, 8 Nov 2018 21:46:48 +0200
> Subject: [PATCH] doc: fix function name in flow filtering app guide
>
> +[ upstream commit eaee9659037e7ee7c77feba76c1d940929f4a8af ]
> +
> This patch fixes a typo in flow_filtering.rst. There is no
> method named generate_ipv4_rule in DPDK, it should be generate_ipv4_flow.
>
> @@ -12,10 +14,10 @@
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/doc/guides/sample_app_ug/flow_filtering.rst b/doc/guides/sample_app_ug/flow_filtering.rst
> -index 0d6fe2bb3..840d557c5 100644
> +index 725dcb445..f6177e152 100644
> --- a/doc/guides/sample_app_ug/flow_filtering.rst
> +++ b/doc/guides/sample_app_ug/flow_filtering.rst
> -@@ -367,7 +367,7 @@ The forwarding loop can be interrupted and the application closed using
> +@@ -365,7 +365,7 @@ The forwarding loop can be interrupted and the application closed using
> The generate_ipv4_flow function
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' has been queued to LTS release 17.11.5
2018-11-29 23:12 ` [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' " Yongseok Koh
@ 2018-12-20 0:22 ` Yongseok Koh
2019-01-08 16:47 ` Burakov, Anatoly
0 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:22 UTC (permalink / raw)
To: Darek Stojaczyk; +Cc: Anatoly Burakov, Maxime Coquelin, dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:12 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C984a5148ee3f4d0911c508d65650a735%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791301732433081&sdata=xSYO3rfdcp080xZsdFughJwuHl10CW%2B6njLe8SLNR5o%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00 2001
> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> Date: Wed, 21 Nov 2018 19:41:32 +0100
> Subject: [PATCH] vfio: do not needlessly setup device in secondary process
>
> [ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
>
> Setting up a device that wasn't setup in the primary
> process will possibly break the primary process. That's
> because the IPC message to retrieve the group fd in the
> primary will also *open* that group if it wasn't opened
> before. Even though the secondary process closes that fd
> soon after as a part of its error handling path, the
> primary process leaks it.
>
> What's worse, opening that fd on the primary will
> increment the process-local counter of opened groups.
> If it was 0 before, then the group will never be added
> to the vfio container, nor dpdk memory will be ever
> mapped.
>
> This patch moves the proper error checks earlier in the
> code to fully prevent setting up devices in secondary
> processes that weren't setup in the primary process.
>
> Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")
>
> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> ---
> drivers/bus/pci/linux/pci_vfio.c | 12 ++++++------
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
> index 745db260c..654897284 100644
> --- a/drivers/bus/pci/linux/pci_vfio.c
> +++ b/drivers/bus/pci/linux/pci_vfio.c
> @@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
> snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
> loc->domain, loc->bus, loc->devid, loc->function);
>
> - ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
> - &vfio_dev_fd, &device_info);
> - if (ret)
> - return ret;
> -
> /* if we're in a secondary process, just find our tailq entry */
> TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
> if (rte_pci_addr_cmp(&vfio_res->pci_addr,
> @@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
> if (vfio_res == NULL) {
> RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI device!\n",
> pci_addr);
> - goto err_vfio_dev_fd;
> + return -1;
> }
>
> + ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
> + &vfio_dev_fd, &device_info);
> + if (ret)
> + return ret;
> +
> /* map BARs */
> maps = vfio_res->maps;
>
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:50.745484864 -0800
> +++ 0127-vfio-do-not-needlessly-setup-device-in-secondary-pro.patch 2018-11-29 15:01:45.335961000 -0800
> @@ -1,8 +1,10 @@
> -From 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 Mon Sep 17 00:00:00 2001
> +From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00 2001
> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> Date: Wed, 21 Nov 2018 19:41:32 +0100
> Subject: [PATCH] vfio: do not needlessly setup device in secondary process
>
> +[ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
> +
> Setting up a device that wasn't setup in the primary
> process will possibly break the primary process. That's
> because the IPC message to retrieve the group fd in the
> @@ -31,10 +33,10 @@
> 1 file changed, 6 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
> -index ffd26f195..54a4c959e 100644
> +index 745db260c..654897284 100644
> --- a/drivers/bus/pci/linux/pci_vfio.c
> +++ b/drivers/bus/pci/linux/pci_vfio.c
> -@@ -794,11 +794,6 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
> +@@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
> snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
> loc->domain, loc->bus, loc->devid, loc->function);
>
> @@ -46,7 +48,7 @@
> /* if we're in a secondary process, just find our tailq entry */
> TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
> if (rte_pci_addr_cmp(&vfio_res->pci_addr,
> -@@ -810,9 +805,14 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
> +@@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct rte_pci_device *dev)
> if (vfio_res == NULL) {
> RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI device!\n",
> pci_addr);
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'eal: fix devargs reference after probing failure' has been queued to LTS release 17.11.5
2018-11-29 23:12 ` [dpdk-stable] patch 'eal: fix devargs reference after probing failure' " Yongseok Koh
@ 2018-12-20 0:22 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-12-20 0:22 UTC (permalink / raw)
To: Darek Stojaczyk; +Cc: Maxime Coquelin, Thomas Monjalon, dpdk stable
Hi,
This patch is being removed from stable/17.11 as it was mistakenly merged.
Patches having 'fix' keyword in the title were merged even though those don't
have "Cc: stable@dpdk.org" tag in the commit message.
If you think this patch is still needed for stable/17.11, please let me know.
Then I'll take it back.
Thanks,
Yongseok
> On Nov 29, 2018, at 3:12 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> FYI, your patch has been queued to LTS release 17.11.5
>
> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7Cdc933a8b74424a5630d408d65650aa3a%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791301781669112&sdata=LnFDOibDoeFtUuqnCBRLFqXaUWSZMw56A0NVOzq9TWs%3D&reserved=0 yet.
> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> a change in context or macro names, please double check it.
>
> Thanks.
>
> Yongseok
>
> ---
> From abdb0f9a8b0fe291ef411fff1a44d0f1d49a40f6 Mon Sep 17 00:00:00 2001
> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> Date: Fri, 23 Nov 2018 16:43:28 +0100
> Subject: [PATCH] eal: fix devargs reference after probing failure
>
> [ upstream commit 161419983da296f329039e15b88e11ea31b15702 ]
>
> Even if a device failed to plug, it's still a device
> object that references the devargs. Those devargs will
> be freed automatically together with the device, but
> freeing them any earlier - like it's done in the hotplug
> error handling path right now - will give us a dangling
> pointer and a segfault scenario.
>
> Consider the following case:
> * secondary process receives the hotplug request IPC message
> * devargs are either created or updated
> * the bus is scanned
> * a new device object is created with the latest devargs
> * the device can't be plugged for whatever reason,
> bus->plug returns error
> * the devargs are freed, even though they're still referenced
> by the device object on the bus
>
> For PCI devices, the generic device name comes from
> a buffer within the devargs. Freeing those will make
> EAL segfault whenever the device name is checked.
>
> This patch just prevents the hotplug error handling
> path from removing the devargs when there's a device
> that references them. This is done by simply exiting
> early from the hotplug function. As mentioned in the
> beginning, those devargs will be freed later, together
> with the device itself.
>
> Fixes: 7e8b26650146 ("eal: fix hotplug add / remove")
>
> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> Acked-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> Acked-by: Thomas Monjalon <thomas@monjalon.net>
> ---
> lib/librte_eal/common/eal_common_dev.c | 6 +++++-
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
> index dda8f5835..582cf3a31 100644
> --- a/lib/librte_eal/common/eal_common_dev.c
> +++ b/lib/librte_eal/common/eal_common_dev.c
> @@ -183,12 +183,16 @@ int rte_eal_hotplug_add(const char *busname, const char *devname,
> ret = -ENODEV;
> goto err_devarg;
> }
> + /* Since there is a matching device, it is now its responsibility
> + * to manage the devargs we've just inserted. From this point
> + * those devargs shouldn't be removed manually anymore.
> + */
>
> ret = bus->plug(dev);
> if (ret) {
> RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n",
> dev->name);
> - goto err_devarg;
> + return ret;
> }
> free(name);
> return 0;
> --
> 2.11.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-empty:
> ---
> --- - 2018-11-29 15:01:50.787743434 -0800
> +++ 0128-eal-fix-devargs-reference-after-probing-failure.patch 2018-11-29 15:01:45.337956000 -0800
> @@ -1,8 +1,10 @@
> -From 161419983da296f329039e15b88e11ea31b15702 Mon Sep 17 00:00:00 2001
> +From abdb0f9a8b0fe291ef411fff1a44d0f1d49a40f6 Mon Sep 17 00:00:00 2001
> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> Date: Fri, 23 Nov 2018 16:43:28 +0100
> Subject: [PATCH] eal: fix devargs reference after probing failure
>
> +[ upstream commit 161419983da296f329039e15b88e11ea31b15702 ]
> +
> Even if a device failed to plug, it's still a device
> object that references the devargs. Those devargs will
> be freed automatically together with the device, but
> @@ -41,10 +43,10 @@
> 1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_eal/common/eal_common_dev.c b/lib/librte_eal/common/eal_common_dev.c
> -index a08dc085f..fd7f5ca7d 100644
> +index dda8f5835..582cf3a31 100644
> --- a/lib/librte_eal/common/eal_common_dev.c
> +++ b/lib/librte_eal/common/eal_common_dev.c
> -@@ -166,12 +166,16 @@ local_dev_probe(const char *devargs, struct rte_device **new_dev)
> +@@ -183,12 +183,16 @@ int rte_eal_hotplug_add(const char *busname, const char *devname,
> ret = -ENODEV;
> goto err_devarg;
> }
> @@ -53,15 +55,15 @@
> + * those devargs shouldn't be removed manually anymore.
> + */
>
> - ret = dev->bus->plug(dev);
> - if (ret && !rte_dev_is_probed(dev)) { /* if hasn't ever succeeded */
> + ret = bus->plug(dev);
> + if (ret) {
> RTE_LOG(ERR, EAL, "Driver cannot attach the device (%s)\n",
> dev->name);
> - goto err_devarg;
> + return ret;
> }
> -
> - *new_dev = dev;
> + free(name);
> + return 0;
> --
> 2.11.0
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'kni: fix build on Linux < 3.14' has been queued to LTS release 17.11.5
2018-12-20 0:19 ` Yongseok Koh
@ 2018-12-20 8:30 ` Thomas Monjalon
2018-12-28 9:25 ` Yongseok Koh
0 siblings, 1 reply; 150+ messages in thread
From: Thomas Monjalon @ 2018-12-20 8:30 UTC (permalink / raw)
To: Yongseok Koh; +Cc: dpdk stable
Sorry, it was a mistake to forget Cc:stable for this patch.
If 711859cd0d07 is backported, then you should take this patch.
20/12/2018 01:19, Yongseok Koh:
> Hi,
>
> This patch is being removed from stable/17.11 as it was mistakenly merged.
> Patches having 'fix' keyword in the title were merged even though those don't
> have "Cc: stable@dpdk.org" tag in the commit message.
>
> If you think this patch is still needed for stable/17.11, please let me know.
> Then I'll take it back.
>
>
> Thanks,
> Yongseok
>
>
> > On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
> >
> > Hi,
> >
> > FYI, your patch has been queued to LTS release 17.11.5
> >
> > Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C28c79ab8cfbd4df2f1ef08d65650721a%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791300840098396&sdata=Xq8J5JtAZDXWREX5qjIyy3F41SDfguHeuhUGn7ueG6s%3D&reserved=0 yet.
> > It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> > a change in context or macro names, please double check it.
> >
> > Thanks.
> >
> > Yongseok
> >
> > ---
> > From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Date: Fri, 26 Oct 2018 23:23:36 +0200
> > Subject: [PATCH] kni: fix build on Linux < 3.14
> > MIME-Version: 1.0
> > Content-Type: text/plain; charset=UTF-8
> > Content-Transfer-Encoding: 8bit
> >
> > [ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
> >
> > The atomic functions smp_load_acquire() and smp_store_release()
> > were introduced in Linux 3.14. Older kernels miss the functions:
> >
> > kni_fifo.h:19:2: error:
> > implicit declaration of function ‘smp_load_acquire’
> > kni_fifo.h:30:2: error:
> > implicit declaration of function ‘smp_store_release’
> >
> > The fallback is to drop the atomic barrier, as it was before
> > the commit below.
> >
> > Fixes: 711859cd0d07 ("kni: fix kernel FIFO synchronization")
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> > index e4edab9f3..26208ae44 100644
> > --- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
> > +++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> > @@ -27,6 +27,14 @@
> >
> > #include <exec-env/rte_kni_common.h>
> >
> > +/* Skip some memory barriers on Linux < 3.14 */
> > +#ifndef smp_load_acquire
> > +#define smp_load_acquire(a) (*(a))
> > +#endif
> > +#ifndef smp_store_release
> > +#define smp_store_release(a, b) *(a) = (b)
> > +#endif
> > +
> > /**
> > * Adds num elements into the fifo. Return the number actually written
> > */
> > --
> > 2.11.0
> >
> > ---
> > Diff of the applied patch vs upstream commit (please double-check if non-empty:
> > ---
> > --- - 2018-11-29 15:01:48.485261122 -0800
> > +++ 0074-kni-fix-build-on-Linux-3.14.patch 2018-11-29 15:01:45.190958000 -0800
> > @@ -1,4 +1,4 @@
> > -From c6c36fe28a7bfd8ca21784b2b8b62241f89de06e Mon Sep 17 00:00:00 2001
> > +From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Date: Fri, 26 Oct 2018 23:23:36 +0200
> > Subject: [PATCH] kni: fix build on Linux < 3.14
> > @@ -6,6 +6,8 @@
> > Content-Type: text/plain; charset=UTF-8
> > Content-Transfer-Encoding: 8bit
> >
> > +[ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
> > +
> > The atomic functions smp_load_acquire() and smp_store_release()
> > were introduced in Linux 3.14. Older kernels miss the functions:
> >
> > @@ -21,14 +23,14 @@
> >
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > ---
> > - kernel/linux/kni/kni_fifo.h | 8 ++++++++
> > + lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
> > 1 file changed, 8 insertions(+)
> >
> > -diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
> > -index 2cb3a4a7b..3f4781c2e 100644
> > ---- a/kernel/linux/kni/kni_fifo.h
> > -+++ b/kernel/linux/kni/kni_fifo.h
> > -@@ -8,6 +8,14 @@
> > +diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> > +index e4edab9f3..26208ae44 100644
> > +--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
> > ++++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
> > +@@ -27,6 +27,14 @@
> >
> > #include <exec-env/rte_kni_common.h>
> >
>
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'net/mlx5: fix build on PPC64' has been queued to LTS release 17.11.5
2018-12-20 0:20 ` Yongseok Koh
@ 2018-12-20 8:34 ` Thomas Monjalon
0 siblings, 0 replies; 150+ messages in thread
From: Thomas Monjalon @ 2018-12-20 8:34 UTC (permalink / raw)
To: Yongseok Koh
Cc: Christian Ehrhardt, Adrien Mazarguil, David Wilder, Chao Zhu,
dpdk stable
mlx5 is not using bool in 17.11, so this patch is not required.
20/12/2018 01:20, Yongseok Koh:
> Hi,
>
> This patch is being removed from stable/17.11 as it was mistakenly merged.
> Patches having 'fix' keyword in the title were merged even though those don't
> have "Cc: stable@dpdk.org" tag in the commit message.
>
> If you think this patch is still needed for stable/17.11, please let me know.
> Then I'll take it back.
>
>
> Thanks,
> Yongseok
>
>
> > On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
> >
> > Hi,
> >
> > FYI, your patch has been queued to LTS release 17.11.5
> >
> > Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C40c82295f497460bc8ab08d656508faf%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636791301339809185&sdata=LWhqqLssFQpwxlf1yKXdT2cGROcQv8w73TdAwoESdI8%3D&reserved=0 yet.
> > It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
> > a change in context or macro names, please double check it.
> >
> > Thanks.
> >
> > Yongseok
> >
> > ---
> > From a8cbfdf37a4d6b207bed3e1825956c8bb9f21499 Mon Sep 17 00:00:00 2001
> > From: Thomas Monjalon <thomas@monjalon.net>
> > Date: Wed, 7 Nov 2018 17:00:28 +0100
> > Subject: [PATCH] net/mlx5: fix build on PPC64
> >
> > [ upstream commit 725f5dd0bfb50192a2d2341d4cc69084c2c4e03d ]
> >
> > The AltiVec header file breaks boolean type:
> >
> > error: incompatible types when initializing type
> > '__vector _bool int' {aka '_vector(4) __bool int'} using type 'int'
> >
> > If __APPLE_ALTIVEC__ is defined, then bool type is redefined
> > and conflicts with stdbool.h.
> >
> > There is no good solution to fix it for the whole project without
> > breaking something else, so a workaround is inserted in mlx5 PMD.
> > This workaround is not compatible with C++ but there is no C++ in DPDK.
> >
> > Suggested-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> > Suggested-by: Adrien Mazarguil <adrien.mazarguil@6wind.com>
> > Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
> > Tested-by: David Wilder <dwilder@us.ibm.com>
> > Acked-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> > ---
> > drivers/net/mlx5/mlx5_utils.h | 10 ++++++++++
> > 1 file changed, 10 insertions(+)
> >
> > diff --git a/drivers/net/mlx5/mlx5_utils.h b/drivers/net/mlx5/mlx5_utils.h
> > index e48352f37..572296575 100644
> > --- a/drivers/net/mlx5/mlx5_utils.h
> > +++ b/drivers/net/mlx5/mlx5_utils.h
> > @@ -43,6 +43,16 @@
> >
> > #include "mlx5_defs.h"
> >
> > +/*
> > + * Compilation workaround for PPC64 when AltiVec is fully enabled, e.g. std=c11.
> > + * Otherwise there would be a type conflict between stdbool and altivec.
> > + */
> > +#if defined(__PPC64__) && !defined(__APPLE_ALTIVEC__)
> > +#undef bool
> > +/* redefine as in stdbool.h */
> > +#define bool _Bool
> > +#endif
> > +
> > /* Bit-field manipulation. */
> > #define BITFIELD_DECLARE(bf, type, size) \
> > type bf[(((size_t)(size) / (sizeof(type) * CHAR_BIT)) + \
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'kni: fix build on Linux < 3.14' has been queued to LTS release 17.11.5
2018-12-20 8:30 ` Thomas Monjalon
@ 2018-12-28 9:25 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2018-12-28 9:25 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dpdk stable
> On Dec 20, 2018, at 12:30 AM, Thomas Monjalon <thomas@monjalon.net> wrote:
>
> Sorry, it was a mistake to forget Cc:stable for this patch.
> If 711859cd0d07 is backported, then you should take this patch.
The patch has been restored in stable/17.11
Thanks,
Yongseok
>
>
> 20/12/2018 01:19, Yongseok Koh:
>> Hi,
>>
>> This patch is being removed from stable/17.11 as it was mistakenly merged.
>> Patches having 'fix' keyword in the title were merged even though those don't
>> have "Cc: stable@dpdk.org" tag in the commit message.
>>
>> If you think this patch is still needed for stable/17.11, please let me know.
>> Then I'll take it back.
>>
>>
>> Thanks,
>> Yongseok
>>
>>
>>> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>>>
>>> Hi,
>>>
>>> FYI, your patch has been queued to LTS release 17.11.5
>>>
>>> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7C6c7480a09b314b9abe4908d666556356%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636808914257950312&sdata=q%2BJhPRghOUfKvj6uwpnGBajbXHubx%2F4B5%2BwGFl5I9fY%3D&reserved=0 yet.
>>> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
>>> a change in context or macro names, please double check it.
>>>
>>> Thanks.
>>>
>>> Yongseok
>>>
>>> ---
>>> From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
>>> From: Thomas Monjalon <thomas@monjalon.net>
>>> Date: Fri, 26 Oct 2018 23:23:36 +0200
>>> Subject: [PATCH] kni: fix build on Linux < 3.14
>>> MIME-Version: 1.0
>>> Content-Type: text/plain; charset=UTF-8
>>> Content-Transfer-Encoding: 8bit
>>>
>>> [ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
>>>
>>> The atomic functions smp_load_acquire() and smp_store_release()
>>> were introduced in Linux 3.14. Older kernels miss the functions:
>>>
>>> kni_fifo.h:19:2: error:
>>> implicit declaration of function ‘smp_load_acquire’
>>> kni_fifo.h:30:2: error:
>>> implicit declaration of function ‘smp_store_release’
>>>
>>> The fallback is to drop the atomic barrier, as it was before
>>> the commit below.
>>>
>>> Fixes: 711859cd0d07 ("kni: fix kernel FIFO synchronization")
>>>
>>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>>> ---
>>> lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
>>> index e4edab9f3..26208ae44 100644
>>> --- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
>>> +++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
>>> @@ -27,6 +27,14 @@
>>>
>>> #include <exec-env/rte_kni_common.h>
>>>
>>> +/* Skip some memory barriers on Linux < 3.14 */
>>> +#ifndef smp_load_acquire
>>> +#define smp_load_acquire(a) (*(a))
>>> +#endif
>>> +#ifndef smp_store_release
>>> +#define smp_store_release(a, b) *(a) = (b)
>>> +#endif
>>> +
>>> /**
>>> * Adds num elements into the fifo. Return the number actually written
>>> */
>>> --
>>> 2.11.0
>>>
>>> ---
>>> Diff of the applied patch vs upstream commit (please double-check if non-empty:
>>> ---
>>> --- - 2018-11-29 15:01:48.485261122 -0800
>>> +++ 0074-kni-fix-build-on-Linux-3.14.patch 2018-11-29 15:01:45.190958000 -0800
>>> @@ -1,4 +1,4 @@
>>> -From c6c36fe28a7bfd8ca21784b2b8b62241f89de06e Mon Sep 17 00:00:00 2001
>>> +From 49fd11c7c909599fc08d6d937d71ccc0e2afda55 Mon Sep 17 00:00:00 2001
>>> From: Thomas Monjalon <thomas@monjalon.net>
>>> Date: Fri, 26 Oct 2018 23:23:36 +0200
>>> Subject: [PATCH] kni: fix build on Linux < 3.14
>>> @@ -6,6 +6,8 @@
>>> Content-Type: text/plain; charset=UTF-8
>>> Content-Transfer-Encoding: 8bit
>>>
>>> +[ upstream commit c6c36fe28a7bfd8ca21784b2b8b62241f89de06e ]
>>> +
>>> The atomic functions smp_load_acquire() and smp_store_release()
>>> were introduced in Linux 3.14. Older kernels miss the functions:
>>>
>>> @@ -21,14 +23,14 @@
>>>
>>> Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
>>> ---
>>> - kernel/linux/kni/kni_fifo.h | 8 ++++++++
>>> + lib/librte_eal/linuxapp/kni/kni_fifo.h | 8 ++++++++
>>> 1 file changed, 8 insertions(+)
>>>
>>> -diff --git a/kernel/linux/kni/kni_fifo.h b/kernel/linux/kni/kni_fifo.h
>>> -index 2cb3a4a7b..3f4781c2e 100644
>>> ---- a/kernel/linux/kni/kni_fifo.h
>>> -+++ b/kernel/linux/kni/kni_fifo.h
>>> -@@ -8,6 +8,14 @@
>>> +diff --git a/lib/librte_eal/linuxapp/kni/kni_fifo.h b/lib/librte_eal/linuxapp/kni/kni_fifo.h
>>> +index e4edab9f3..26208ae44 100644
>>> +--- a/lib/librte_eal/linuxapp/kni/kni_fifo.h
>>> ++++ b/lib/librte_eal/linuxapp/kni/kni_fifo.h
>>> +@@ -27,6 +27,14 @@
>>>
>>> #include <exec-env/rte_kni_common.h>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'kni: fix build on Linux 4.19' has been queued to LTS release 17.11.5
2018-12-20 0:19 ` Yongseok Koh
@ 2019-01-04 20:33 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2019-01-04 20:33 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
It is re-applied to stable/17.11 per author's request.
Thanks,
Yongseok
> On Dec 19, 2018, at 4:19 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>
> Hi,
>
> This patch is being removed from stable/17.11 as it was mistakenly merged.
> Patches having 'fix' keyword in the title were merged even though those don't
> have "Cc: stable@dpdk.org" tag in the commit message.
>
> If you think this patch is still needed for stable/17.11, please let me know.
> Then I'll take it back.
>
>
> Thanks,
> Yongseok
>
>
>> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com> wrote:
>>
>> Hi,
>>
>> FYI, your patch has been queued to LTS release 17.11.5
>>
>> Note it hasn't been pushed to https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpdk.org%2Fbrowse%2Fdpdk-stable&data=02%7C01%7Cyskoh%40mellanox.com%7Cf8136684c7644017005908d66610c045%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7C636808619472748243&sdata=kj1dA7LDiDb72yIzo4ad4Wg2NsP%2BnbDhk1xKIeiI4Vc%3D&reserved=0 yet.
>> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not only metadata diffs), due for example to
>> a change in context or macro names, please double check it.
>>
>> Thanks.
>>
>> Yongseok
>>
>> ---
>> From e013021836efb2d1a228b525d5aee8c7e41e8bb9 Mon Sep 17 00:00:00 2001
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>> Date: Wed, 24 Oct 2018 12:10:10 +0100
>> Subject: [PATCH] kni: fix build on Linux 4.19
>> MIME-Version: 1.0
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> [ upstream commit a9460a0b2efb80a913d8770dc188e816b227622f ]
>>
>> The build error observed with Linux kernel 4.19 when KNI ethtool
>> support enabled (CONFIG_RTE_KNI_KMOD_ETHTOOL=y)
>>
>> .../build/build/kernel/linux/kni/kni_ethtool.c:193:3:
>> error: ‘struct ethtool_ops’ has no member named ‘get_settings’;
>> .get_settings = kni_get_settings,
>> ^~~~~~~~~~~~
>>
>> .../build/build/kernel/linux/kni/kni_ethtool.c:194:3:
>> error: ‘struct ethtool_ops’ has no member named ‘set_settings’;
>> .set_settings = kni_set_settings,
>> ^~~~~~~~~~~~
>>
>> With kernel 4.19 ethtool_ops `get_settings` & `set_settings` are
>> replaced with `get_link_ksettings` & `set_link_ksettings`
>> Commit 9b3004953503 ("ethtool: drop get_settings and set_settings callbacks")
>>
>> This fix practically removes `get_settings` & `set_settings` support
>> for the kernel versions that have the new ethtool_ops without
>> implementing the new ones.
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
>> lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h | 2 ++
>> lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
>> lib/librte_eal/linuxapp/kni/kni_ethtool.c | 10 ++++++++++
>> 4 files changed, 28 insertions(+)
>>
>> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
>> index aed14bcc8..7a520ecec 100644
>> --- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
>> +++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
>> @@ -150,6 +150,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
>> #define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
>> #endif /* ETHTOOL_TEST */
>>
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> {
>> struct igb_adapter *adapter = netdev_priv(netdev);
>> @@ -274,7 +275,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> #endif /* ETH_TP_MDI_X */
>> return 0;
>> }
>> +#endif
>>
>> +#ifndef ETHTOOL_SLINKSETTINGS
>> static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> {
>> struct igb_adapter *adapter = netdev_priv(netdev);
>> @@ -379,6 +382,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> clear_bit(__IGB_RESETTING, &adapter->state);
>> return 0;
>> }
>> +#endif
>>
>> static u32 igb_get_link(struct net_device *netdev)
>> {
>> @@ -2752,8 +2756,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
>> #endif /* ETHTOOL_GRXRINGS */
>>
>> static const struct ethtool_ops igb_ethtool_ops = {
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> .get_settings = igb_get_settings,
>> +#endif
>> +#ifndef ETHTOOL_SLINKSETTINGS
>> .set_settings = igb_set_settings,
>> +#endif
>> .get_drvinfo = igb_get_drvinfo,
>> .get_regs_len = igb_get_regs_len,
>> .get_regs = igb_get_regs,
>> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
>> index 59415469c..cc3f8ea41 100644
>> --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
>> +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
>> @@ -905,8 +905,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
>> #endif /* CONFIG_DCB */
>>
>> extern void ixgbe_clean_rx_ring(struct ixgbe_ring *rx_ring);
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> extern int ixgbe_get_settings(struct net_device *netdev,
>> struct ethtool_cmd *ecmd);
>> +#endif
>> extern int ixgbe_write_uc_addr_list(struct ixgbe_adapter *adapter,
>> struct net_device *netdev, unsigned int vfn);
>> extern void ixgbe_full_sync_mac_table(struct ixgbe_adapter *adapter);
>> diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> index cdfcb9596..1296829bc 100644
>> --- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> +++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> @@ -173,6 +173,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
>> #define IXGBE_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)
>> #endif /* ETHTOOL_TEST */
>>
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> int ixgbe_get_settings(struct net_device *netdev,
>> struct ethtool_cmd *ecmd)
>> {
>> @@ -362,7 +363,9 @@ int ixgbe_get_settings(struct net_device *netdev,
>>
>> return 0;
>> }
>> +#endif
>>
>> +#ifndef ETHTOOL_SLINKSETTINGS
>> static int ixgbe_set_settings(struct net_device *netdev,
>> struct ethtool_cmd *ecmd)
>> {
>> @@ -406,6 +409,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
>> }
>> return err;
>> }
>> +#endif
>>
>> static void ixgbe_get_pauseparam(struct net_device *netdev,
>> struct ethtool_pauseparam *pause)
>> @@ -2830,8 +2834,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
>> #endif /* ETHTOOL_GRXRINGS */
>> //static
>> struct ethtool_ops ixgbe_ethtool_ops = {
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> .get_settings = ixgbe_get_settings,
>> +#endif
>> +#ifndef ETHTOOL_SLINKSETTINGS
>> .set_settings = ixgbe_set_settings,
>> +#endif
>> .get_drvinfo = ixgbe_get_drvinfo,
>> .get_regs_len = ixgbe_get_regs_len,
>> .get_regs = ixgbe_get_regs,
>> diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
>> index 0c88589c9..8174e98db 100644
>> --- a/lib/librte_eal/linuxapp/kni/kni_ethtool.c
>> +++ b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
>> @@ -46,6 +46,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
>> priv->lad_dev->ethtool_ops->get_drvinfo(priv->lad_dev, info);
>> }
>>
>> +/* ETHTOOL_GLINKSETTINGS replaces ETHTOOL_GSET */
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> static int
>> kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>> {
>> @@ -53,7 +55,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>>
>> return priv->lad_dev->ethtool_ops->get_settings(priv->lad_dev, ecmd);
>> }
>> +#endif
>>
>> +/* ETHTOOL_SLINKSETTINGS replaces ETHTOOL_SSET */
>> +#ifndef ETHTOOL_SLINKSETTINGS
>> static int
>> kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>> {
>> @@ -61,6 +66,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>>
>> return priv->lad_dev->ethtool_ops->set_settings(priv->lad_dev, ecmd);
>> }
>> +#endif
>>
>> static void
>> kni_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
>> @@ -209,8 +215,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
>> struct ethtool_ops kni_ethtool_ops = {
>> .begin = kni_check_if_running,
>> .get_drvinfo = kni_get_drvinfo,
>> +#ifndef ETHTOOL_GLINKSETTINGS
>> .get_settings = kni_get_settings,
>> +#endif
>> +#ifndef ETHTOOL_SLINKSETTINGS
>> .set_settings = kni_set_settings,
>> +#endif
>> .get_regs_len = kni_get_regs_len,
>> .get_regs = kni_get_regs,
>> .get_wol = kni_get_wol,
>> --
>> 2.11.0
>>
>> ---
>> Diff of the applied patch vs upstream commit (please double-check if non-empty:
>> ---
>> --- - 2018-11-29 15:01:48.389325238 -0800
>> +++ 0072-kni-fix-build-on-Linux-4.19.patch 2018-11-29 15:01:45.186964000 -0800
>> @@ -1,4 +1,4 @@
>> -From a9460a0b2efb80a913d8770dc188e816b227622f Mon Sep 17 00:00:00 2001
>> +From e013021836efb2d1a228b525d5aee8c7e41e8bb9 Mon Sep 17 00:00:00 2001
>> From: Ferruh Yigit <ferruh.yigit@intel.com>
>> Date: Wed, 24 Oct 2018 12:10:10 +0100
>> Subject: [PATCH] kni: fix build on Linux 4.19
>> @@ -6,6 +6,8 @@
>> Content-Type: text/plain; charset=UTF-8
>> Content-Transfer-Encoding: 8bit
>>
>> +[ upstream commit a9460a0b2efb80a913d8770dc188e816b227622f ]
>> +
>> The build error observed with Linux kernel 4.19 when KNI ethtool
>> support enabled (CONFIG_RTE_KNI_KMOD_ETHTOOL=y)
>>
>> @@ -29,17 +31,17 @@
>>
>> Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> - kernel/linux/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
>> - kernel/linux/kni/ethtool/ixgbe/ixgbe.h | 2 ++
>> - kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
>> - kernel/linux/kni/kni_ethtool.c | 10 ++++++++++
>> + lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c | 8 ++++++++
>> + lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h | 2 ++
>> + lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c | 8 ++++++++
>> + lib/librte_eal/linuxapp/kni/kni_ethtool.c | 10 ++++++++++
>> 4 files changed, 28 insertions(+)
>>
>> -diff --git a/kernel/linux/kni/ethtool/igb/igb_ethtool.c b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
>> -index 002f75c48..b6bddc025 100644
>> ---- a/kernel/linux/kni/ethtool/igb/igb_ethtool.c
>> -+++ b/kernel/linux/kni/ethtool/igb/igb_ethtool.c
>> -@@ -135,6 +135,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
>> +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
>> +index aed14bcc8..7a520ecec 100644
>> +--- a/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
>> ++++ b/lib/librte_eal/linuxapp/kni/ethtool/igb/igb_ethtool.c
>> +@@ -150,6 +150,7 @@ static const char igb_gstrings_test[][ETH_GSTRING_LEN] = {
>> #define IGB_TEST_LEN (sizeof(igb_gstrings_test) / ETH_GSTRING_LEN)
>> #endif /* ETHTOOL_TEST */
>>
>> @@ -47,7 +49,7 @@
>> static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> {
>> struct igb_adapter *adapter = netdev_priv(netdev);
>> -@@ -259,7 +260,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> +@@ -274,7 +275,9 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> #endif /* ETH_TP_MDI_X */
>> return 0;
>> }
>> @@ -57,7 +59,7 @@
>> static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> {
>> struct igb_adapter *adapter = netdev_priv(netdev);
>> -@@ -364,6 +367,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> +@@ -379,6 +382,7 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
>> clear_bit(__IGB_RESETTING, &adapter->state);
>> return 0;
>> }
>> @@ -65,7 +67,7 @@
>>
>> static u32 igb_get_link(struct net_device *netdev)
>> {
>> -@@ -2737,8 +2741,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
>> +@@ -2752,8 +2756,12 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
>> #endif /* ETHTOOL_GRXRINGS */
>>
>> static const struct ethtool_ops igb_ethtool_ops = {
>> @@ -78,11 +80,11 @@
>> .get_drvinfo = igb_get_drvinfo,
>> .get_regs_len = igb_get_regs_len,
>> .get_regs = igb_get_regs,
>> -diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe.h b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
>> -index 6ff941334..cc15ec6ab 100644
>> ---- a/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
>> -+++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe.h
>> -@@ -890,8 +890,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
>> +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
>> +index 59415469c..cc3f8ea41 100644
>> +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
>> ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe.h
>> +@@ -905,8 +905,10 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
>> #endif /* CONFIG_DCB */
>>
>> extern void ixgbe_clean_rx_ring(struct ixgbe_ring *rx_ring);
>> @@ -93,11 +95,11 @@
>> extern int ixgbe_write_uc_addr_list(struct ixgbe_adapter *adapter,
>> struct net_device *netdev, unsigned int vfn);
>> extern void ixgbe_full_sync_mac_table(struct ixgbe_adapter *adapter);
>> -diff --git a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> -index 44cdc9f20..f2ded19e9 100644
>> ---- a/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> -+++ b/kernel/linux/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> -@@ -158,6 +158,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
>> +diff --git a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> +index cdfcb9596..1296829bc 100644
>> +--- a/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> ++++ b/lib/librte_eal/linuxapp/kni/ethtool/ixgbe/ixgbe_ethtool.c
>> +@@ -173,6 +173,7 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
>> #define IXGBE_TEST_LEN (sizeof(ixgbe_gstrings_test) / ETH_GSTRING_LEN)
>> #endif /* ETHTOOL_TEST */
>>
>> @@ -105,7 +107,7 @@
>> int ixgbe_get_settings(struct net_device *netdev,
>> struct ethtool_cmd *ecmd)
>> {
>> -@@ -347,7 +348,9 @@ int ixgbe_get_settings(struct net_device *netdev,
>> +@@ -362,7 +363,9 @@ int ixgbe_get_settings(struct net_device *netdev,
>>
>> return 0;
>> }
>> @@ -115,7 +117,7 @@
>> static int ixgbe_set_settings(struct net_device *netdev,
>> struct ethtool_cmd *ecmd)
>> {
>> -@@ -391,6 +394,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
>> +@@ -406,6 +409,7 @@ static int ixgbe_set_settings(struct net_device *netdev,
>> }
>> return err;
>> }
>> @@ -123,7 +125,7 @@
>>
>> static void ixgbe_get_pauseparam(struct net_device *netdev,
>> struct ethtool_pauseparam *pause)
>> -@@ -2815,8 +2819,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
>> +@@ -2830,8 +2834,12 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
>> #endif /* ETHTOOL_GRXRINGS */
>> //static
>> struct ethtool_ops ixgbe_ethtool_ops = {
>> @@ -136,11 +138,11 @@
>> .get_drvinfo = ixgbe_get_drvinfo,
>> .get_regs_len = ixgbe_get_regs_len,
>> .get_regs = ixgbe_get_regs,
>> -diff --git a/kernel/linux/kni/kni_ethtool.c b/kernel/linux/kni/kni_ethtool.c
>> -index a44e7d949..b1c84f8f0 100644
>> ---- a/kernel/linux/kni/kni_ethtool.c
>> -+++ b/kernel/linux/kni/kni_ethtool.c
>> -@@ -27,6 +27,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
>> +diff --git a/lib/librte_eal/linuxapp/kni/kni_ethtool.c b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
>> +index 0c88589c9..8174e98db 100644
>> +--- a/lib/librte_eal/linuxapp/kni/kni_ethtool.c
>> ++++ b/lib/librte_eal/linuxapp/kni/kni_ethtool.c
>> +@@ -46,6 +46,8 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
>> priv->lad_dev->ethtool_ops->get_drvinfo(priv->lad_dev, info);
>> }
>>
>> @@ -149,7 +151,7 @@
>> static int
>> kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>> {
>> -@@ -34,7 +36,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>> +@@ -53,7 +55,10 @@ kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>>
>> return priv->lad_dev->ethtool_ops->get_settings(priv->lad_dev, ecmd);
>> }
>> @@ -160,7 +162,7 @@
>> static int
>> kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>> {
>> -@@ -42,6 +47,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>> +@@ -61,6 +66,7 @@ kni_set_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
>>
>> return priv->lad_dev->ethtool_ops->set_settings(priv->lad_dev, ecmd);
>> }
>> @@ -168,7 +170,7 @@
>>
>> static void
>> kni_get_wol(struct net_device *dev, struct ethtool_wolinfo *wol)
>> -@@ -190,8 +196,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
>> +@@ -209,8 +215,12 @@ kni_get_ethtool_stats(struct net_device *dev, struct ethtool_stats *stats,
>> struct ethtool_ops kni_ethtool_ops = {
>> .begin = kni_check_if_running,
>> .get_drvinfo = kni_get_drvinfo,
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' has been queued to LTS release 17.11.5
2018-12-20 0:22 ` Yongseok Koh
@ 2019-01-08 16:47 ` Burakov, Anatoly
2019-01-08 18:50 ` Yongseok Koh
0 siblings, 1 reply; 150+ messages in thread
From: Burakov, Anatoly @ 2019-01-08 16:47 UTC (permalink / raw)
To: Yongseok Koh, Stojaczyk, Dariusz; +Cc: Maxime Coquelin, dpdk stable
Hi,
What's the reason for "mistakenly" merging this patch? This patch fixes a real bug. Why revert?
Thanks,
Anatoly
> -----Original Message-----
> From: Yongseok Koh [mailto:yskoh@mellanox.com]
> Sent: Thursday, December 20, 2018 12:22 AM
> To: Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>
> Cc: Burakov, Anatoly <anatoly.burakov@intel.com>; Maxime Coquelin
> <maxime.coquelin@redhat.com>; dpdk stable <stable@dpdk.org>
> Subject: Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in
> secondary process' has been queued to LTS release 17.11.5
>
> Hi,
>
> This patch is being removed from stable/17.11 as it was mistakenly merged.
> Patches having 'fix' keyword in the title were merged even though those
> don't have "Cc: stable@dpdk.org" tag in the commit message.
>
> If you think this patch is still needed for stable/17.11, please let me know.
> Then I'll take it back.
>
>
> Thanks,
> Yongseok
>
>
> > On Nov 29, 2018, at 3:12 PM, Yongseok Koh <yskoh@mellanox.com>
> wrote:
> >
> > Hi,
> >
> > FYI, your patch has been queued to LTS release 17.11.5
> >
> > Note it hasn't been pushed to
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
> k.org%2Fbrowse%2Fdpdk-
> stable&data=02%7C01%7Cyskoh%40mellanox.com%7C984a5148ee3f4d
> 0911c508d65650a735%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7
> C636791301732433081&sdata=xSYO3rfdcp080xZsdFughJwuHl10CW%2B6
> njLe8SLNR5o%3D&reserved=0 yet.
> > It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not
> > only metadata diffs), due for example to a change in context or macro
> names, please double check it.
> >
> > Thanks.
> >
> > Yongseok
> >
> > ---
> > From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00
> 2001
> > From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> > Date: Wed, 21 Nov 2018 19:41:32 +0100
> > Subject: [PATCH] vfio: do not needlessly setup device in secondary
> > process
> >
> > [ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
> >
> > Setting up a device that wasn't setup in the primary process will
> > possibly break the primary process. That's because the IPC message to
> > retrieve the group fd in the primary will also *open* that group if it
> > wasn't opened before. Even though the secondary process closes that fd
> > soon after as a part of its error handling path, the primary process
> > leaks it.
> >
> > What's worse, opening that fd on the primary will increment the
> > process-local counter of opened groups.
> > If it was 0 before, then the group will never be added to the vfio
> > container, nor dpdk memory will be ever mapped.
> >
> > This patch moves the proper error checks earlier in the code to fully
> > prevent setting up devices in secondary processes that weren't setup
> > in the primary process.
> >
> > Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")
> >
> > Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> > Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> > Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> > ---
> > drivers/bus/pci/linux/pci_vfio.c | 12 ++++++------
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/bus/pci/linux/pci_vfio.c
> > b/drivers/bus/pci/linux/pci_vfio.c
> > index 745db260c..654897284 100644
> > --- a/drivers/bus/pci/linux/pci_vfio.c
> > +++ b/drivers/bus/pci/linux/pci_vfio.c
> > @@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct
> rte_pci_device *dev)
> > snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
> > loc->domain, loc->bus, loc->devid, loc->function);
> >
> > - ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
> > - &vfio_dev_fd, &device_info);
> > - if (ret)
> > - return ret;
> > -
> > /* if we're in a secondary process, just find our tailq entry */
> > TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
> > if (rte_pci_addr_cmp(&vfio_res->pci_addr,
> > @@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct
> rte_pci_device *dev)
> > if (vfio_res == NULL) {
> > RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI
> device!\n",
> > pci_addr);
> > - goto err_vfio_dev_fd;
> > + return -1;
> > }
> >
> > + ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
> > + &vfio_dev_fd, &device_info);
> > + if (ret)
> > + return ret;
> > +
> > /* map BARs */
> > maps = vfio_res->maps;
> >
> > --
> > 2.11.0
> >
> > ---
> > Diff of the applied patch vs upstream commit (please double-check if non-
> empty:
> > ---
> > --- - 2018-11-29 15:01:50.745484864 -0800
> > +++ 0127-vfio-do-not-needlessly-setup-device-in-secondary-pro.patch
> 2018-11-29 15:01:45.335961000 -0800
> > @@ -1,8 +1,10 @@
> > -From 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 Mon Sep 17 00:00:00
> > 2001
> > +From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00
> > +2001
> > From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> > Date: Wed, 21 Nov 2018 19:41:32 +0100
> > Subject: [PATCH] vfio: do not needlessly setup device in secondary
> > process
> >
> > +[ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
> > +
> > Setting up a device that wasn't setup in the primary process will
> > possibly break the primary process. That's because the IPC message to
> > retrieve the group fd in the @@ -31,10 +33,10 @@
> > 1 file changed, 6 insertions(+), 6 deletions(-)
> >
> > diff --git a/drivers/bus/pci/linux/pci_vfio.c
> > b/drivers/bus/pci/linux/pci_vfio.c
> > -index ffd26f195..54a4c959e 100644
> > +index 745db260c..654897284 100644
> > --- a/drivers/bus/pci/linux/pci_vfio.c
> > +++ b/drivers/bus/pci/linux/pci_vfio.c
> > -@@ -794,11 +794,6 @@ pci_vfio_map_resource_secondary(struct
> > rte_pci_device *dev)
> > +@@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct
> > +rte_pci_device *dev)
> > snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
> > loc->domain, loc->bus, loc->devid, loc->function);
> >
> > @@ -46,7 +48,7 @@
> > /* if we're in a secondary process, just find our tailq entry */
> > TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
> > if (rte_pci_addr_cmp(&vfio_res->pci_addr,
> > -@@ -810,9 +805,14 @@ pci_vfio_map_resource_secondary(struct
> > rte_pci_device *dev)
> > +@@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct
> > +rte_pci_device *dev)
> > if (vfio_res == NULL) {
> > RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI
> device!\n",
> > pci_addr);
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' has been queued to LTS release 17.11.5
2018-12-20 0:21 ` Yongseok Koh
@ 2019-01-08 16:48 ` Burakov, Anatoly
2019-01-08 18:51 ` Yongseok Koh
0 siblings, 1 reply; 150+ messages in thread
From: Burakov, Anatoly @ 2019-01-08 16:48 UTC (permalink / raw)
To: Yongseok Koh, Yong Wang; +Cc: dpdk stable
Why is this being reverted? Even though the patch was sent for newer release, the patch is still valid.
Thanks,
Anatoly
> -----Original Message-----
> From: Yongseok Koh [mailto:yskoh@mellanox.com]
> Sent: Thursday, December 20, 2018 12:21 AM
> To: Yong Wang <wang.yong19@zte.com.cn>
> Cc: Burakov, Anatoly <anatoly.burakov@intel.com>; dpdk stable
> <stable@dpdk.org>
> Subject: Re: [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide'
> has been queued to LTS release 17.11.5
>
> Hi,
>
> This patch is being removed from stable/17.11 as it was mistakenly merged.
> Patches having 'fix' keyword in the title were merged even though those
> don't have "Cc: stable@dpdk.org" tag in the commit message.
>
> If you think this patch is still needed for stable/17.11, please let me know.
> Then I'll take it back.
>
>
> Thanks,
> Yongseok
>
>
> > On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com>
> wrote:
> >
> > Hi,
> >
> > FYI, your patch has been queued to LTS release 17.11.5
> >
> > Note it hasn't been pushed to
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
> k.org%2Fbrowse%2Fdpdk-
> stable&data=02%7C01%7Cyskoh%40mellanox.com%7C3097861863494e
> 253cd808d65650a18a%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7
> C636791301631687810&sdata=1IIjuHiB%2FDLkwrxCowghwJs4B3lC%2BjR
> 8lgbFRceJS1Y%3D&reserved=0 yet.
> > It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not
> > only metadata diffs), due for example to a change in context or macro
> names, please double check it.
> >
> > Thanks.
> >
> > Yongseok
> >
> > ---
> > From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00
> 2001
> > From: Yong Wang <wang.yong19@zte.com.cn>
> > Date: Tue, 6 Nov 2018 21:40:52 -0500
> > Subject: [PATCH] doc: fix NUMA library name in Linux guide
> >
> > [ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
> >
> > The library for handling NUMA is not libnuma-devel, but numactl-devel
> > in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
> >
> > Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
> > Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> > ---
> > doc/guides/linux_gsg/sys_reqs.rst | 6 +++++-
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/doc/guides/linux_gsg/sys_reqs.rst
> > b/doc/guides/linux_gsg/sys_reqs.rst
> > index 3e7fe6373..7a91b31c7 100644
> > --- a/doc/guides/linux_gsg/sys_reqs.rst
> > +++ b/doc/guides/linux_gsg/sys_reqs.rst
> > @@ -91,7 +91,11 @@ Compilation of the DPDK
> > x86_x32 ABI is currently supported with distribution packages only on
> Ubuntu
> > higher than 13.10 or recent Debian distribution. The only supported
> compiler is gcc 4.9+.
> >
> > -* libnuma-devel - library for handling NUMA (Non Uniform Memory
> Access).
> > +* Library for handling NUMA (Non Uniform Memory Access).
> > +
> > + * numactl-devel in Red Hat/Fedora;
> > +
> > + * libnuma-dev in Debian/Ubuntu;
> >
> > * Python, version 2.7+ or 3.2+, to use various helper scripts included in the
> DPDK package.
> >
> > --
> > 2.11.0
> >
> > ---
> > Diff of the applied patch vs upstream commit (please double-check if non-
> empty:
> > ---
> > --- - 2018-11-29 15:01:50.406698523 -0800
> > +++ 0119-doc-fix-NUMA-library-name-in-Linux-guide.patch 2018-11-29
> 15:01:45.315956000 -0800
> > @@ -1,8 +1,10 @@
> > -From ee57170c4acb7b477091948caa8ea9e887222867 Mon Sep 17 00:00:00
> > 2001
> > +From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00
> > +2001
> > From: Yong Wang <wang.yong19@zte.com.cn>
> > Date: Tue, 6 Nov 2018 21:40:52 -0500
> > Subject: [PATCH] doc: fix NUMA library name in Linux guide
> >
> > +[ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
> > +
> > The library for handling NUMA is not libnuma-devel, but numactl-devel
> > in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
> >
> > @@ -13,10 +15,10 @@
> > 1 file changed, 5 insertions(+), 1 deletion(-)
> >
> > diff --git a/doc/guides/linux_gsg/sys_reqs.rst
> > b/doc/guides/linux_gsg/sys_reqs.rst
> > -index 96f5ce9b5..29c5f47a5 100644
> > +index 3e7fe6373..7a91b31c7 100644
> > --- a/doc/guides/linux_gsg/sys_reqs.rst
> > +++ b/doc/guides/linux_gsg/sys_reqs.rst
> > -@@ -64,7 +64,11 @@ Compilation of the DPDK
> > +@@ -91,7 +91,11 @@ Compilation of the DPDK
> > x86_x32 ABI is currently supported with distribution packages only on
> Ubuntu
> > higher than 13.10 or recent Debian distribution. The only supported
> compiler is gcc 4.9+.
> >
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' has been queued to LTS release 17.11.5
2019-01-08 16:47 ` Burakov, Anatoly
@ 2019-01-08 18:50 ` Yongseok Koh
2019-01-09 8:53 ` Burakov, Anatoly
0 siblings, 1 reply; 150+ messages in thread
From: Yongseok Koh @ 2019-01-08 18:50 UTC (permalink / raw)
To: Burakov, Anatoly; +Cc: Stojaczyk, Dariusz, Maxime Coquelin, dpdk stable
Hi,
The reason is because the upstream patch doesn't have Cc: stable@dpdk.org.
Adding the tag is at author's discretion. If a patch doesn't have it, we
regard the author doesn't want it to be included in stable releases.
We still urge developers to carefully put the tag for bug fixes. In my
experience, a fix having the tag sometimes had to be excluded. That is
another type of mistake.
>From the next stable release cycle, we will not include such patches which
have "fix" keyword or "Fixes:" tag but no Cc:stable tag at first. Instead,
we will look into such fixes one by one. And we will ask for author's help
if needed.
This was the reason for my email and I was waiting for replies.
As you say it is needed, it has been re-applied to stable/17.11
Thanks,
Yongseok
> On Jan 8, 2019, at 8:47 AM, Burakov, Anatoly <anatoly.burakov@intel.com> wrote:
>
> Hi,
>
> What's the reason for "mistakenly" merging this patch? This patch fixes a real bug. Why revert?
>
> Thanks,
> Anatoly
>
>
>> -----Original Message-----
>> From: Yongseok Koh [mailto:yskoh@mellanox.com]
>> Sent: Thursday, December 20, 2018 12:22 AM
>> To: Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>
>> Cc: Burakov, Anatoly <anatoly.burakov@intel.com>; Maxime Coquelin
>> <maxime.coquelin@redhat.com>; dpdk stable <stable@dpdk.org>
>> Subject: Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in
>> secondary process' has been queued to LTS release 17.11.5
>>
>> Hi,
>>
>> This patch is being removed from stable/17.11 as it was mistakenly merged.
>> Patches having 'fix' keyword in the title were merged even though those
>> don't have "Cc: stable@dpdk.org" tag in the commit message.
>>
>> If you think this patch is still needed for stable/17.11, please let me know.
>> Then I'll take it back.
>>
>>
>> Thanks,
>> Yongseok
>>
>>
>>> On Nov 29, 2018, at 3:12 PM, Yongseok Koh <yskoh@mellanox.com>
>> wrote:
>>>
>>> Hi,
>>>
>>> FYI, your patch has been queued to LTS release 17.11.5
>>>
>>> Note it hasn't been pushed to
>> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
>> k.org%2Fbrowse%2Fdpdk-
>> stable&data=02%7C01%7Cyskoh%40mellanox.com%7C984a5148ee3f4d
>> 0911c508d65650a735%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7
>> C636791301732433081&sdata=xSYO3rfdcp080xZsdFughJwuHl10CW%2B6
>> njLe8SLNR5o%3D&reserved=0 yet.
>>> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not
>>> only metadata diffs), due for example to a change in context or macro
>> names, please double check it.
>>>
>>> Thanks.
>>>
>>> Yongseok
>>>
>>> ---
>>> From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00
>> 2001
>>> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
>>> Date: Wed, 21 Nov 2018 19:41:32 +0100
>>> Subject: [PATCH] vfio: do not needlessly setup device in secondary
>>> process
>>>
>>> [ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
>>>
>>> Setting up a device that wasn't setup in the primary process will
>>> possibly break the primary process. That's because the IPC message to
>>> retrieve the group fd in the primary will also *open* that group if it
>>> wasn't opened before. Even though the secondary process closes that fd
>>> soon after as a part of its error handling path, the primary process
>>> leaks it.
>>>
>>> What's worse, opening that fd on the primary will increment the
>>> process-local counter of opened groups.
>>> If it was 0 before, then the group will never be added to the vfio
>>> container, nor dpdk memory will be ever mapped.
>>>
>>> This patch moves the proper error checks earlier in the code to fully
>>> prevent setting up devices in secondary processes that weren't setup
>>> in the primary process.
>>>
>>> Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")
>>>
>>> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
>>> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
>>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
>>> ---
>>> drivers/bus/pci/linux/pci_vfio.c | 12 ++++++------
>>> 1 file changed, 6 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/drivers/bus/pci/linux/pci_vfio.c
>>> b/drivers/bus/pci/linux/pci_vfio.c
>>> index 745db260c..654897284 100644
>>> --- a/drivers/bus/pci/linux/pci_vfio.c
>>> +++ b/drivers/bus/pci/linux/pci_vfio.c
>>> @@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct
>> rte_pci_device *dev)
>>> snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
>>> loc->domain, loc->bus, loc->devid, loc->function);
>>>
>>> - ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
>>> - &vfio_dev_fd, &device_info);
>>> - if (ret)
>>> - return ret;
>>> -
>>> /* if we're in a secondary process, just find our tailq entry */
>>> TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
>>> if (rte_pci_addr_cmp(&vfio_res->pci_addr,
>>> @@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct
>> rte_pci_device *dev)
>>> if (vfio_res == NULL) {
>>> RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI
>> device!\n",
>>> pci_addr);
>>> - goto err_vfio_dev_fd;
>>> + return -1;
>>> }
>>>
>>> + ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
>>> + &vfio_dev_fd, &device_info);
>>> + if (ret)
>>> + return ret;
>>> +
>>> /* map BARs */
>>> maps = vfio_res->maps;
>>>
>>> --
>>> 2.11.0
>>>
>>> ---
>>> Diff of the applied patch vs upstream commit (please double-check if non-
>> empty:
>>> ---
>>> --- - 2018-11-29 15:01:50.745484864 -0800
>>> +++ 0127-vfio-do-not-needlessly-setup-device-in-secondary-pro.patch
>> 2018-11-29 15:01:45.335961000 -0800
>>> @@ -1,8 +1,10 @@
>>> -From 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 Mon Sep 17 00:00:00
>>> 2001
>>> +From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17 00:00:00
>>> +2001
>>> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
>>> Date: Wed, 21 Nov 2018 19:41:32 +0100
>>> Subject: [PATCH] vfio: do not needlessly setup device in secondary
>>> process
>>>
>>> +[ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
>>> +
>>> Setting up a device that wasn't setup in the primary process will
>>> possibly break the primary process. That's because the IPC message to
>>> retrieve the group fd in the @@ -31,10 +33,10 @@
>>> 1 file changed, 6 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/drivers/bus/pci/linux/pci_vfio.c
>>> b/drivers/bus/pci/linux/pci_vfio.c
>>> -index ffd26f195..54a4c959e 100644
>>> +index 745db260c..654897284 100644
>>> --- a/drivers/bus/pci/linux/pci_vfio.c
>>> +++ b/drivers/bus/pci/linux/pci_vfio.c
>>> -@@ -794,11 +794,6 @@ pci_vfio_map_resource_secondary(struct
>>> rte_pci_device *dev)
>>> +@@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct
>>> +rte_pci_device *dev)
>>> snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
>>> loc->domain, loc->bus, loc->devid, loc->function);
>>>
>>> @@ -46,7 +48,7 @@
>>> /* if we're in a secondary process, just find our tailq entry */
>>> TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
>>> if (rte_pci_addr_cmp(&vfio_res->pci_addr,
>>> -@@ -810,9 +805,14 @@ pci_vfio_map_resource_secondary(struct
>>> rte_pci_device *dev)
>>> +@@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct
>>> +rte_pci_device *dev)
>>> if (vfio_res == NULL) {
>>> RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI
>> device!\n",
>>> pci_addr);
>
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' has been queued to LTS release 17.11.5
2019-01-08 16:48 ` Burakov, Anatoly
@ 2019-01-08 18:51 ` Yongseok Koh
0 siblings, 0 replies; 150+ messages in thread
From: Yongseok Koh @ 2019-01-08 18:51 UTC (permalink / raw)
To: Burakov, Anatoly; +Cc: Yong Wang, dpdk stable
I've explained the reason in the other email.
Re-applied to stable/17.11
Thanks,
Yongseok
> On Jan 8, 2019, at 8:48 AM, Burakov, Anatoly <anatoly.burakov@intel.com> wrote:
>
> Why is this being reverted? Even though the patch was sent for newer release, the patch is still valid.
>
> Thanks,
> Anatoly
>
>
>> -----Original Message-----
>> From: Yongseok Koh [mailto:yskoh@mellanox.com]
>> Sent: Thursday, December 20, 2018 12:21 AM
>> To: Yong Wang <wang.yong19@zte.com.cn>
>> Cc: Burakov, Anatoly <anatoly.burakov@intel.com>; dpdk stable
>> <stable@dpdk.org>
>> Subject: Re: [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide'
>> has been queued to LTS release 17.11.5
>>
>> Hi,
>>
>> This patch is being removed from stable/17.11 as it was mistakenly merged.
>> Patches having 'fix' keyword in the title were merged even though those
>> don't have "Cc: stable@dpdk.org" tag in the commit message.
>>
>> If you think this patch is still needed for stable/17.11, please let me know.
>> Then I'll take it back.
>>
>>
>> Thanks,
>> Yongseok
>>
>>
>>> On Nov 29, 2018, at 3:11 PM, Yongseok Koh <yskoh@mellanox.com>
>> wrote:
>>>
>>> Hi,
>>>
>>> FYI, your patch has been queued to LTS release 17.11.5
>>>
>>> Note it hasn't been pushed to
>> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
>> k.org%2Fbrowse%2Fdpdk-
>> stable&data=02%7C01%7Cyskoh%40mellanox.com%7C3097861863494e
>> 253cd808d65650a18a%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7
>> C636791301631687810&sdata=1IIjuHiB%2FDLkwrxCowghwJs4B3lC%2BjR
>> 8lgbFRceJS1Y%3D&reserved=0 yet.
>>> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie: not
>>> only metadata diffs), due for example to a change in context or macro
>> names, please double check it.
>>>
>>> Thanks.
>>>
>>> Yongseok
>>>
>>> ---
>>> From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00
>> 2001
>>> From: Yong Wang <wang.yong19@zte.com.cn>
>>> Date: Tue, 6 Nov 2018 21:40:52 -0500
>>> Subject: [PATCH] doc: fix NUMA library name in Linux guide
>>>
>>> [ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
>>>
>>> The library for handling NUMA is not libnuma-devel, but numactl-devel
>>> in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
>>>
>>> Signed-off-by: Yong Wang <wang.yong19@zte.com.cn>
>>> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
>>> ---
>>> doc/guides/linux_gsg/sys_reqs.rst | 6 +++++-
>>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/doc/guides/linux_gsg/sys_reqs.rst
>>> b/doc/guides/linux_gsg/sys_reqs.rst
>>> index 3e7fe6373..7a91b31c7 100644
>>> --- a/doc/guides/linux_gsg/sys_reqs.rst
>>> +++ b/doc/guides/linux_gsg/sys_reqs.rst
>>> @@ -91,7 +91,11 @@ Compilation of the DPDK
>>> x86_x32 ABI is currently supported with distribution packages only on
>> Ubuntu
>>> higher than 13.10 or recent Debian distribution. The only supported
>> compiler is gcc 4.9+.
>>>
>>> -* libnuma-devel - library for handling NUMA (Non Uniform Memory
>> Access).
>>> +* Library for handling NUMA (Non Uniform Memory Access).
>>> +
>>> + * numactl-devel in Red Hat/Fedora;
>>> +
>>> + * libnuma-dev in Debian/Ubuntu;
>>>
>>> * Python, version 2.7+ or 3.2+, to use various helper scripts included in the
>> DPDK package.
>>>
>>> --
>>> 2.11.0
>>>
>>> ---
>>> Diff of the applied patch vs upstream commit (please double-check if non-
>> empty:
>>> ---
>>> --- - 2018-11-29 15:01:50.406698523 -0800
>>> +++ 0119-doc-fix-NUMA-library-name-in-Linux-guide.patch 2018-11-29
>> 15:01:45.315956000 -0800
>>> @@ -1,8 +1,10 @@
>>> -From ee57170c4acb7b477091948caa8ea9e887222867 Mon Sep 17 00:00:00
>>> 2001
>>> +From 07f6eef828917fe2716f24b54dcac2406cacf489 Mon Sep 17 00:00:00
>>> +2001
>>> From: Yong Wang <wang.yong19@zte.com.cn>
>>> Date: Tue, 6 Nov 2018 21:40:52 -0500
>>> Subject: [PATCH] doc: fix NUMA library name in Linux guide
>>>
>>> +[ upstream commit ee57170c4acb7b477091948caa8ea9e887222867 ]
>>> +
>>> The library for handling NUMA is not libnuma-devel, but numactl-devel
>>> in Red Hat/Fedora and libnuma-dev in Debian/Ubuntu.
>>>
>>> @@ -13,10 +15,10 @@
>>> 1 file changed, 5 insertions(+), 1 deletion(-)
>>>
>>> diff --git a/doc/guides/linux_gsg/sys_reqs.rst
>>> b/doc/guides/linux_gsg/sys_reqs.rst
>>> -index 96f5ce9b5..29c5f47a5 100644
>>> +index 3e7fe6373..7a91b31c7 100644
>>> --- a/doc/guides/linux_gsg/sys_reqs.rst
>>> +++ b/doc/guides/linux_gsg/sys_reqs.rst
>>> -@@ -64,7 +64,11 @@ Compilation of the DPDK
>>> +@@ -91,7 +91,11 @@ Compilation of the DPDK
>>> x86_x32 ABI is currently supported with distribution packages only on
>> Ubuntu
>>> higher than 13.10 or recent Debian distribution. The only supported
>> compiler is gcc 4.9+.
^ permalink raw reply [flat|nested] 150+ messages in thread
* Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' has been queued to LTS release 17.11.5
2019-01-08 18:50 ` Yongseok Koh
@ 2019-01-09 8:53 ` Burakov, Anatoly
0 siblings, 0 replies; 150+ messages in thread
From: Burakov, Anatoly @ 2019-01-09 8:53 UTC (permalink / raw)
To: Yongseok Koh; +Cc: Stojaczyk, Dariusz, Maxime Coquelin, dpdk stable
Ah, OK, good to know! Thanks!
Thanks,
Anatoly
> -----Original Message-----
> From: Yongseok Koh [mailto:yskoh@mellanox.com]
> Sent: Tuesday, January 8, 2019 6:50 PM
> To: Burakov, Anatoly <anatoly.burakov@intel.com>
> Cc: Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>; Maxime Coquelin
> <maxime.coquelin@redhat.com>; dpdk stable <stable@dpdk.org>
> Subject: Re: [dpdk-stable] patch 'vfio: do not needlessly setup device in
> secondary process' has been queued to LTS release 17.11.5
>
> Hi,
>
> The reason is because the upstream patch doesn't have Cc:
> stable@dpdk.org.
> Adding the tag is at author's discretion. If a patch doesn't have it, we regard
> the author doesn't want it to be included in stable releases.
> We still urge developers to carefully put the tag for bug fixes. In my
> experience, a fix having the tag sometimes had to be excluded. That is
> another type of mistake.
>
> From the next stable release cycle, we will not include such patches which
> have "fix" keyword or "Fixes:" tag but no Cc:stable tag at first. Instead, we
> will look into such fixes one by one. And we will ask for author's help if
> needed.
>
> This was the reason for my email and I was waiting for replies.
>
> As you say it is needed, it has been re-applied to stable/17.11
>
>
> Thanks,
> Yongseok
>
> > On Jan 8, 2019, at 8:47 AM, Burakov, Anatoly <anatoly.burakov@intel.com>
> wrote:
> >
> > Hi,
> >
> > What's the reason for "mistakenly" merging this patch? This patch fixes a
> real bug. Why revert?
> >
> > Thanks,
> > Anatoly
> >
> >
> >> -----Original Message-----
> >> From: Yongseok Koh [mailto:yskoh@mellanox.com]
> >> Sent: Thursday, December 20, 2018 12:22 AM
> >> To: Stojaczyk, Dariusz <dariusz.stojaczyk@intel.com>
> >> Cc: Burakov, Anatoly <anatoly.burakov@intel.com>; Maxime Coquelin
> >> <maxime.coquelin@redhat.com>; dpdk stable <stable@dpdk.org>
> >> Subject: Re: [dpdk-stable] patch 'vfio: do not needlessly setup
> >> device in secondary process' has been queued to LTS release 17.11.5
> >>
> >> Hi,
> >>
> >> This patch is being removed from stable/17.11 as it was mistakenly
> merged.
> >> Patches having 'fix' keyword in the title were merged even though
> >> those don't have "Cc: stable@dpdk.org" tag in the commit message.
> >>
> >> If you think this patch is still needed for stable/17.11, please let me know.
> >> Then I'll take it back.
> >>
> >>
> >> Thanks,
> >> Yongseok
> >>
> >>
> >>> On Nov 29, 2018, at 3:12 PM, Yongseok Koh <yskoh@mellanox.com>
> >> wrote:
> >>>
> >>> Hi,
> >>>
> >>> FYI, your patch has been queued to LTS release 17.11.5
> >>>
> >>> Note it hasn't been pushed to
> >>
> https://emea01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fdpd
> >> k.org%2Fbrowse%2Fdpdk-
> >>
> stable&data=02%7C01%7Cyskoh%40mellanox.com%7C984a5148ee3f4d
> >>
> 0911c508d65650a735%7Ca652971c7d2e4d9ba6a4d149256f461b%7C0%7C0%7
> >>
> C636791301732433081&sdata=xSYO3rfdcp080xZsdFughJwuHl10CW%2B6
> >> njLe8SLNR5o%3D&reserved=0 yet.
> >>> It will be pushed if I get no objections before 12/01/18. 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. If the code is different (ie:
> >>> not only metadata diffs), due for example to a change in context or
> >>> macro
> >> names, please double check it.
> >>>
> >>> Thanks.
> >>>
> >>> Yongseok
> >>>
> >>> ---
> >>> From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17
> 00:00:00
> >> 2001
> >>> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> >>> Date: Wed, 21 Nov 2018 19:41:32 +0100
> >>> Subject: [PATCH] vfio: do not needlessly setup device in secondary
> >>> process
> >>>
> >>> [ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
> >>>
> >>> Setting up a device that wasn't setup in the primary process will
> >>> possibly break the primary process. That's because the IPC message
> >>> to retrieve the group fd in the primary will also *open* that group
> >>> if it wasn't opened before. Even though the secondary process closes
> >>> that fd soon after as a part of its error handling path, the primary
> >>> process leaks it.
> >>>
> >>> What's worse, opening that fd on the primary will increment the
> >>> process-local counter of opened groups.
> >>> If it was 0 before, then the group will never be added to the vfio
> >>> container, nor dpdk memory will be ever mapped.
> >>>
> >>> This patch moves the proper error checks earlier in the code to
> >>> fully prevent setting up devices in secondary processes that weren't
> >>> setup in the primary process.
> >>>
> >>> Fixes: 2f4adfad0a69 ("vfio: add multiprocess support")
> >>>
> >>> Signed-off-by: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> >>> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
> >>> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
> >>> ---
> >>> drivers/bus/pci/linux/pci_vfio.c | 12 ++++++------
> >>> 1 file changed, 6 insertions(+), 6 deletions(-)
> >>>
> >>> diff --git a/drivers/bus/pci/linux/pci_vfio.c
> >>> b/drivers/bus/pci/linux/pci_vfio.c
> >>> index 745db260c..654897284 100644
> >>> --- a/drivers/bus/pci/linux/pci_vfio.c
> >>> +++ b/drivers/bus/pci/linux/pci_vfio.c
> >>> @@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct
> >> rte_pci_device *dev)
> >>> snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
> >>> loc->domain, loc->bus, loc->devid, loc->function);
> >>>
> >>> - ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
> >>> - &vfio_dev_fd, &device_info);
> >>> - if (ret)
> >>> - return ret;
> >>> -
> >>> /* if we're in a secondary process, just find our tailq entry */
> >>> TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
> >>> if (rte_pci_addr_cmp(&vfio_res->pci_addr,
> >>> @@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct
> >> rte_pci_device *dev)
> >>> if (vfio_res == NULL) {
> >>> RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI
> >> device!\n",
> >>> pci_addr);
> >>> - goto err_vfio_dev_fd;
> >>> + return -1;
> >>> }
> >>>
> >>> + ret = rte_vfio_setup_device(rte_pci_get_sysfs_path(), pci_addr,
> >>> + &vfio_dev_fd, &device_info);
> >>> + if (ret)
> >>> + return ret;
> >>> +
> >>> /* map BARs */
> >>> maps = vfio_res->maps;
> >>>
> >>> --
> >>> 2.11.0
> >>>
> >>> ---
> >>> Diff of the applied patch vs upstream commit (please double-check if
> >>> non-
> >> empty:
> >>> ---
> >>> --- - 2018-11-29 15:01:50.745484864 -0800
> >>> +++ 0127-vfio-do-not-needlessly-setup-device-in-secondary-pro.patch
> >> 2018-11-29 15:01:45.335961000 -0800
> >>> @@ -1,8 +1,10 @@
> >>> -From 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 Mon Sep 17
> 00:00:00
> >>> 2001
> >>> +From ff44ba8002e2db8c02eb769d547bfd7659af14e1 Mon Sep 17
> 00:00:00
> >>> +2001
> >>> From: Darek Stojaczyk <dariusz.stojaczyk@intel.com>
> >>> Date: Wed, 21 Nov 2018 19:41:32 +0100
> >>> Subject: [PATCH] vfio: do not needlessly setup device in secondary
> >>> process
> >>>
> >>> +[ upstream commit 047e3f9f2a4a4b73da86b707af8a32039ba1cad7 ]
> >>> +
> >>> Setting up a device that wasn't setup in the primary process will
> >>> possibly break the primary process. That's because the IPC message
> >>> to retrieve the group fd in the @@ -31,10 +33,10 @@
> >>> 1 file changed, 6 insertions(+), 6 deletions(-)
> >>>
> >>> diff --git a/drivers/bus/pci/linux/pci_vfio.c
> >>> b/drivers/bus/pci/linux/pci_vfio.c
> >>> -index ffd26f195..54a4c959e 100644
> >>> +index 745db260c..654897284 100644
> >>> --- a/drivers/bus/pci/linux/pci_vfio.c
> >>> +++ b/drivers/bus/pci/linux/pci_vfio.c
> >>> -@@ -794,11 +794,6 @@ pci_vfio_map_resource_secondary(struct
> >>> rte_pci_device *dev)
> >>> +@@ -580,11 +580,6 @@ pci_vfio_map_resource_secondary(struct
> >>> +rte_pci_device *dev)
> >>> snprintf(pci_addr, sizeof(pci_addr), PCI_PRI_FMT,
> >>> loc->domain, loc->bus, loc->devid, loc->function);
> >>>
> >>> @@ -46,7 +48,7 @@
> >>> /* if we're in a secondary process, just find our tailq entry */
> >>> TAILQ_FOREACH(vfio_res, vfio_res_list, next) {
> >>> if (rte_pci_addr_cmp(&vfio_res->pci_addr,
> >>> -@@ -810,9 +805,14 @@ pci_vfio_map_resource_secondary(struct
> >>> rte_pci_device *dev)
> >>> +@@ -596,9 +591,14 @@ pci_vfio_map_resource_secondary(struct
> >>> +rte_pci_device *dev)
> >>> if (vfio_res == NULL) {
> >>> RTE_LOG(ERR, EAL, " %s cannot find TAILQ entry for PCI
> >> device!\n",
> >>> pci_addr);
> >
^ permalink raw reply [flat|nested] 150+ messages in thread
end of thread, other threads:[~2019-01-09 8:55 UTC | newest]
Thread overview: 150+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-11-29 23:09 [dpdk-stable] patch 'net/mlx5: add Bluefield device id' has been queued to LTS release 17.11.5 Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'eal/arm64: fix instrinsic for GCC < 4.9' " Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'mem: fix memory initialization time' " Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'build: enable ARM NEON flag when __aarch64__ defined' " Yongseok Koh
2018-11-29 23:09 ` [dpdk-stable] patch 'acl: forbid rule with priority zero' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: support matching QinQ ethertype' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/mlx5: disable ConnectX-4 Lx Multi Packet Send by default' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: fix wrong usage of bind command' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'examples/vhost: remove unnecessary constant' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: use evenly distributed default RSS RETA' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: do not ignore RSS key on device config' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: optimize mbuf pool allocation' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/nfp: fix mbuf flags with checksum good' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net: fix Intel prepare function for IP checksum offload' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix SAL annotation for input buffers' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: properly align on line continuation' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix build because of no declaration' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: check size of memory to read sensors data to' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: avoid usage of too big arrays on stack' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: prevent access to the NIC config before probe' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix a typo in unicast filter insertion comment' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: fix MAC Tx stats for less or equal to 64 bytes' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: fix an Rx queue double release possibility' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: fix a Tx " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: fix Rx slave fairness' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: remove not supported multicast MAC filter' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc/base: make last byte of module information available' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'ethdev: fix doxygen comment to be with structure' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bonding: stop and deactivate slaves on stop' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix check for auth key' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix check for cipher IV' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/test-crypto-perf: fix double allocation of memory' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'crypto/aesni_mb: fix possible array overrun' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'test/crypto: fix number of queue pairs' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'event/sw: fix cq index check for unlink usecases' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'test/event: check burst mode capability' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'mem: fix undefined behavior in NUMA-aware mapping' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'igb_uio: fix refcount if open returns error' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e: fix send admin queue command before init' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: properly clean resources' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: gracefully clean the " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/i40e/base: correct global reset timeout calculation' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/ixgbe: wait longer for link after fiber MAC setup' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: do not use non-standard integer types' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: set Rx VLAN offload flag for non-stripped packets' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/nfp: fix RSS' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnx2x: fix to disable further interrupts' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnx2x: fix call to link handling periodic function' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/enic: fix flow API memory leak' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: fix uninitialized pointer access in Tx' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: fix registration of VF async event completion ring' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: set MAC filtering as outer for non tunnel frames' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/bnxt: set VLAN strip mode before default VNIC cfg' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix csum parse-tunnel command invocation' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/sfc: receive prepared packets even in Rx exception case' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'mbuf: fix Tx offload mask' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: clarify L3 Tx checksum prerequisite' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: clarify L4 " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/failsafe: use prefix for function' " Yongseok Koh
2018-12-20 0:17 ` Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'doc: add VFIO in ENA guide' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix printf format in event callback' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'app/testpmd: fix duplicate exit' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'net/e1000: do not error out if Rx drop enable is set' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'eal: use correct data type for bitmap slab operations' " Yongseok Koh
2018-11-29 23:10 ` [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix physical port " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Yongseok Koh
2018-12-20 0:18 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Yongseok Koh
2018-12-20 0:19 ` Yongseok Koh
2019-01-04 20:33 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Yongseok Koh
2018-12-20 0:19 ` Yongseok Koh
2018-12-20 8:30 ` Thomas Monjalon
2018-12-28 9:25 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbe: " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'ip_frag: fix overflow in key comparison' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: support strlcpy function' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal/linux: fix memory leak of logid' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix PCI config error handling' " Yongseok Koh
2018-11-30 15:23 ` Tiwei Bie
2018-11-30 18:02 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'bus/pci: compare kernel driver instead of interrupt handler' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal/linux: handle UIO read failure in " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'mk: disable gcc AVX512F support' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'crypto/scheduler: fix build with gcc 8.2' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build with gcc 9.0' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: fix offload not supported mask' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net: fix build with pedantic' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: clarify TSO Tx offload prerequisite' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/igb: update Tx offload mask' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'ip_frag: use key length for key comparison' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'bus/pci: fix config r/w access' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test/hash: fix build' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: introduce rte version of fls' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'pci: fix parsing of address without function number' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/tap: fix file descriptor check' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/e1000/base: fix uninitialized variable' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/mlx5: fix build on PPC64' " Yongseok Koh
2018-12-20 0:20 ` Yongseok Koh
2018-12-20 8:34 ` Thomas Monjalon
2018-11-29 23:11 ` [dpdk-stable] patch 'net/thunderx: fix Tx desc corruption in scatter-gather mode' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio-user: fix typo in error message' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/virtio: fix unchecked return value' " Yongseok Koh
2018-11-30 15:23 ` Tiwei Bie
2018-11-30 18:01 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'vhost: remove unneeded null pointer check' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/bonding: fix crash when stopping mode 4 port' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/qede: fix crash when configure fails' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'app/testpmd: fix L4 length for UDP checksum' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbevf: fix link state' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test/reorder: fix out of bound access' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'efd: fix write unlock during ring creation' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e: fix X710 Rx after reading some registers' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/ixgbe: fix maximum wait time in comment' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'examples/ipv4_multicast: fix leak of cloned packets' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'test: release ring resources after PMD perf test' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'usertools: check for lspci dependency' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix NUMA library name in Linux guide' " Yongseok Koh
2018-12-20 0:21 ` Yongseok Koh
2019-01-08 16:48 ` Burakov, Anatoly
2019-01-08 18:51 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix formatting in IP reassembly app " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'doc: fix function name in flow filtering " Yongseok Koh
2018-12-20 0:21 ` Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'eal: fix build with -O1' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'kni: fix possible uninitialized variable' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/i40e/base: fix comment referencing internal data' " Yongseok Koh
2018-11-29 23:11 ` [dpdk-stable] patch 'net/qede: fix Tx offload mask' " Yongseok Koh
2018-11-29 23:12 ` [dpdk-stable] patch 'bus/pci: fix allocation of device path' " Yongseok Koh
2018-11-29 23:12 ` [dpdk-stable] patch 'vfio: do not needlessly setup device in secondary process' " Yongseok Koh
2018-12-20 0:22 ` Yongseok Koh
2019-01-08 16:47 ` Burakov, Anatoly
2019-01-08 18:50 ` Yongseok Koh
2019-01-09 8:53 ` Burakov, Anatoly
2018-11-29 23:12 ` [dpdk-stable] patch 'eal: fix devargs reference after probing failure' " Yongseok Koh
2018-12-20 0:22 ` Yongseok Koh
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).