* [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
@ 2018-11-22 16:48 ` Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'compressdev: fix compression API description' " Kevin Traynor
` (62 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:48 UTC (permalink / raw)
To: Szymon Sliwa; +Cc: Yelena Krivosheev, Natalie Samsonov, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 9df0b408a73e267b0a76c430bfeb06d30568ece5 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/mvsam/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
@@ -31,7 +31,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 16,
+ .min = 12,
.max = 16,
- .increment = 0
+ .increment = 4
},
}, }
@@ -51,7 +51,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 16,
+ .min = 12,
.max = 16,
- .increment = 0
+ .increment = 4
},
}, }
@@ -71,7 +71,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 20,
+ .min = 12,
.max = 20,
- .increment = 0
+ .increment = 4
},
}, }
@@ -91,7 +91,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 20,
+ .min = 12,
.max = 20,
- .increment = 0
+ .increment = 4
},
}, }
@@ -111,7 +111,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 28,
+ .min = 12,
.max = 28,
- .increment = 0
+ .increment = 4
},
}, }
@@ -131,7 +131,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 32,
+ .min = 12,
.max = 32,
- .increment = 0
+ .increment = 4
},
}, }
@@ -151,7 +151,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 32,
+ .min = 12,
.max = 32,
- .increment = 0
+ .increment = 4
},
}, }
@@ -171,7 +171,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 48,
+ .min = 12,
.max = 48,
- .increment = 0
+ .increment = 4
},
}, }
@@ -191,7 +191,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 48,
+ .min = 12,
.max = 48,
- .increment = 0
+ .increment = 4
},
}, }
@@ -211,7 +211,7 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 64,
- .max = 64,
- .increment = 0
+ .min = 12,
+ .max = 48,
+ .increment = 4
},
}, }
@@ -231,6 +231,6 @@ static const struct rte_cryptodev_capabilities
},
.digest_size = {
- .min = 64,
- .max = 64,
+ .min = 12,
+ .max = 48,
.increment = 0
},
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.332376618 +0000
+++ 0002-crypto-mvsam-update-hash-digest-sizes.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,11 +1,11 @@
-From 2c22aa4f8f6e0be61a7130bfed14be957811b8d6 Mon Sep 17 00:00:00 2001
+From 9df0b408a73e267b0a76c430bfeb06d30568ece5 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>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'compressdev: fix compression API description' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' " Kevin Traynor
@ 2018-11-22 16:48 ` Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'cryptodev: fix pool element size for undefined operation' " Kevin Traynor
` (61 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:48 UTC (permalink / raw)
To: Tomasz Jozwiak; +Cc: Fiona Trahe, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 364bdecd92d5d258f8f54021abdc93ea74789032 Mon Sep 17 00:00:00 2001
From: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Date: Fri, 28 Sep 2018 15:14:28 +0200
Subject: [PATCH] compressdev: fix compression API description
[ upstream commit f1597231ac2f1d07c9f79dc7c66e22b39f468d2e ]
This patch fixes following API descriptions
- rte_comp_op_raw_bulk_alloc
- rte_comp_op_bulk_alloc
Fixes: 96086db5a369 ("compressdev: add operation management")
Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
---
lib/librte_compressdev/rte_comp.c | 4 ++--
lib/librte_compressdev/rte_comp.h | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/lib/librte_compressdev/rte_comp.c b/lib/librte_compressdev/rte_comp.c
index 98ad0cfd9..c663be595 100644
--- a/lib/librte_compressdev/rte_comp.c
+++ b/lib/librte_compressdev/rte_comp.c
@@ -84,6 +84,6 @@ struct rte_comp_op_pool_private {
* Number of operations to allocate
* @return
- * - 0: Success
- * - -ENOENT: Not enough entries in the mempool; no ops are retrieved.
+ * - nb_ops: Success, the nb_ops requested was allocated
+ * - 0: Not enough entries in the mempool; no ops are retrieved.
*/
static inline int
diff --git a/lib/librte_compressdev/rte_comp.h b/lib/librte_compressdev/rte_comp.h
index ee9056ea3..395ce29f8 100644
--- a/lib/librte_compressdev/rte_comp.h
+++ b/lib/librte_compressdev/rte_comp.h
@@ -449,6 +449,6 @@ rte_comp_op_alloc(struct rte_mempool *mempool);
* Number of operations to allocate
* @return
- * - 0: Success
- * - -ENOENT: Not enough entries in the mempool; no ops are retrieved.
+ * - nb_ops: Success, the nb_ops requested was allocated
+ * - 0: Not enough entries in the mempool; no ops are retrieved.
*/
int __rte_experimental
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.360282077 +0000
+++ 0003-compressdev-fix-compression-API-description.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From f1597231ac2f1d07c9f79dc7c66e22b39f468d2e Mon Sep 17 00:00:00 2001
+From 364bdecd92d5d258f8f54021abdc93ea74789032 Mon Sep 17 00:00:00 2001
From: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Date: Fri, 28 Sep 2018 15:14:28 +0200
Subject: [PATCH] compressdev: fix compression API description
+[ upstream commit f1597231ac2f1d07c9f79dc7c66e22b39f468d2e ]
+
This patch fixes following API descriptions
- rte_comp_op_raw_bulk_alloc
- rte_comp_op_bulk_alloc
Fixes: 96086db5a369 ("compressdev: add operation management")
-Cc: stable@dpdk.org
Signed-off-by: Tomasz Jozwiak <tomaszx.jozwiak@intel.com>
Acked-by: Fiona Trahe <fiona.trahe@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'cryptodev: fix pool element size for undefined operation' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'crypto/mvsam: update hash digest sizes' " Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'compressdev: fix compression API description' " Kevin Traynor
@ 2018-11-22 16:48 ` Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'cryptodev: fix library version' " Kevin Traynor
` (60 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:48 UTC (permalink / raw)
To: Junxiao Shi; +Cc: Akhil Goyal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From e8d3f97faebeb8966794354f2b095aae84552c8e Mon Sep 17 00:00:00 2001
From: Junxiao Shi <git@mail1.yoursunny.com>
Date: Tue, 9 Oct 2018 10:16:23 -0400
Subject: [PATCH] cryptodev: fix pool element size for undefined operation
[ upstream commit f49d7e9a99477c00c1f666e999dc62a0f73e5db3 ]
The documentation of rte_crypto_op_pool_create indicates that
specifying RTE_CRYPTO_OP_TYPE_UNDEFINED would create a pool that
supports all operation types. This change makes the code
consistent with documentation.
Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented")
Signed-off-by: Junxiao Shi <git@mail1.yoursunny.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
---
lib/librte_cryptodev/rte_cryptodev.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/lib/librte_cryptodev/rte_cryptodev.c b/lib/librte_cryptodev/rte_cryptodev.c
index 63ae23f00..608323fdd 100644
--- a/lib/librte_cryptodev/rte_cryptodev.c
+++ b/lib/librte_cryptodev/rte_cryptodev.c
@@ -1478,4 +1478,7 @@ rte_crypto_op_pool_create(const char *name, enum rte_crypto_op_type type,
} else if (type == RTE_CRYPTO_OP_TYPE_ASYMMETRIC) {
elt_size += sizeof(struct rte_crypto_asym_op);
+ } else if (type == RTE_CRYPTO_OP_TYPE_UNDEFINED) {
+ elt_size += RTE_MAX(sizeof(struct rte_crypto_sym_op),
+ sizeof(struct rte_crypto_asym_op));
} else {
CDEV_LOG_ERR("Invalid op_type\n");
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.383210946 +0000
+++ 0004-cryptodev-fix-pool-element-size-for-undefined-operat.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,15 +1,16 @@
-From f49d7e9a99477c00c1f666e999dc62a0f73e5db3 Mon Sep 17 00:00:00 2001
+From e8d3f97faebeb8966794354f2b095aae84552c8e Mon Sep 17 00:00:00 2001
From: Junxiao Shi <git@mail1.yoursunny.com>
Date: Tue, 9 Oct 2018 10:16:23 -0400
Subject: [PATCH] cryptodev: fix pool element size for undefined operation
+[ upstream commit f49d7e9a99477c00c1f666e999dc62a0f73e5db3 ]
+
The documentation of rte_crypto_op_pool_create indicates that
specifying RTE_CRYPTO_OP_TYPE_UNDEFINED would create a pool that
supports all operation types. This change makes the code
consistent with documentation.
Fixes: c0f87eb5252b ("cryptodev: change burst API to be crypto op oriented")
-Cc: stable@dpdk.org
Signed-off-by: Junxiao Shi <git@mail1.yoursunny.com>
Acked-by: Akhil Goyal <akhil.goyal@nxp.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'cryptodev: fix library version' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (2 preceding siblings ...)
2018-11-22 16:48 ` [dpdk-stable] patch 'cryptodev: fix pool element size for undefined operation' " Kevin Traynor
@ 2018-11-22 16:48 ` Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'common/qat: fix failure to create PMD' " Kevin Traynor
` (59 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:48 UTC (permalink / raw)
To: Fan Zhang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 6e5f35dde89ec9b8c00ebdf4ef6d47913437bfae Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Mon, 15 Oct 2018 12:28:16 +0100
Subject: [PATCH] cryptodev: fix library version
[ upstream commit 3f1d382ca3b73623dfa5c3d44bd4251b67d92a91 ]
This patch fixes the cryptodev library version number that was
missed updating in DPDK 18.08.
Fixes: a4493be5bdfa ("cryptodev: replace bus specific struct with generic dev")
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_cryptodev/Makefile | 2 +-
lib/librte_cryptodev/meson.build | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/librte_cryptodev/Makefile b/lib/librte_cryptodev/Makefile
index c11488877..a8f94c097 100644
--- a/lib/librte_cryptodev/Makefile
+++ b/lib/librte_cryptodev/Makefile
@@ -8,5 +8,5 @@ LIB = librte_cryptodev.a
# library version
-LIBABIVER := 4
+LIBABIVER := 5
# build flags
diff --git a/lib/librte_cryptodev/meson.build b/lib/librte_cryptodev/meson.build
index 295f509ec..990dd3d44 100644
--- a/lib/librte_cryptodev/meson.build
+++ b/lib/librte_cryptodev/meson.build
@@ -2,5 +2,5 @@
# Copyright(c) 2017 Intel Corporation
-version = 4
+version = 5
sources = files('rte_cryptodev.c', 'rte_cryptodev_pmd.c')
headers = files('rte_cryptodev.h',
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.411229457 +0000
+++ 0005-cryptodev-fix-library-version.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From 3f1d382ca3b73623dfa5c3d44bd4251b67d92a91 Mon Sep 17 00:00:00 2001
+From 6e5f35dde89ec9b8c00ebdf4ef6d47913437bfae Mon Sep 17 00:00:00 2001
From: Fan Zhang <roy.fan.zhang@intel.com>
Date: Mon, 15 Oct 2018 12:28:16 +0100
Subject: [PATCH] cryptodev: fix library version
+[ upstream commit 3f1d382ca3b73623dfa5c3d44bd4251b67d92a91 ]
+
This patch fixes the cryptodev library version number that was
missed updating in DPDK 18.08.
Fixes: a4493be5bdfa ("cryptodev: replace bus specific struct with generic dev")
-Cc: stable@dpdk.org
Signed-off-by: Fan Zhang <roy.fan.zhang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'common/qat: fix failure to create PMD' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (3 preceding siblings ...)
2018-11-22 16:48 ` [dpdk-stable] patch 'cryptodev: fix library version' " Kevin Traynor
@ 2018-11-22 16:48 ` Kevin Traynor
2018-11-22 16:48 ` [dpdk-stable] patch 'net/avf: fix build with debug enabled' " Kevin Traynor
` (58 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:48 UTC (permalink / raw)
To: Fiona Trahe; +Cc: Tomasz Cel, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 50d52c93de1f173373ce45a946dfcb1fdf0954dd Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Thu, 11 Oct 2018 18:14:05 +0100
Subject: [PATCH] common/qat: fix failure to create PMD
[ upstream commit 8451f04d0239002c29901e88c278cd83e06f46b1 ]
If QAT crypto pmd failed to be created due to reaching MAX
cryptodevs it prevented QAT comp PMD being created. And vice versa.
Change to warning in these cases and allow the other PMD to be created.
Fixes: c0c90bc4cade ("compress/qat: add create and destroy functions")
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Tomasz Cel <tomaszx.cel@intel.com>
---
drivers/common/qat/qat_device.c | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git a/drivers/common/qat/qat_device.c b/drivers/common/qat/qat_device.c
index f32d72358..f65c2ab28 100644
--- a/drivers/common/qat/qat_device.c
+++ b/drivers/common/qat/qat_device.c
@@ -188,4 +188,5 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
{
int ret = 0;
+ int num_pmds_created = 0;
struct qat_pci_device *qat_pci_dev;
@@ -200,21 +201,31 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
ret = qat_sym_dev_create(qat_pci_dev);
- if (ret != 0)
- goto error_out;
+ if (ret == 0)
+ num_pmds_created++;
+ else
+ QAT_LOG(WARNING,
+ "Failed to create QAT SYM PMD on device %s",
+ qat_pci_dev->name);
ret = qat_comp_dev_create(qat_pci_dev);
- if (ret != 0)
- goto error_out;
+ if (ret == 0)
+ num_pmds_created++;
+ else
+ QAT_LOG(WARNING,
+ "Failed to create QAT COMP PMD on device %s",
+ qat_pci_dev->name);
ret = qat_asym_dev_create(qat_pci_dev);
- if (ret != 0)
- goto error_out;
+ if (ret == 0)
+ num_pmds_created++;
+ else
+ QAT_LOG(WARNING,
+ "Failed to create QAT ASYM PMD on device %s",
+ qat_pci_dev->name);
+
+ if (num_pmds_created == 0)
+ qat_pci_dev_destroy(qat_pci_dev, pci_dev);
return 0;
-
-error_out:
- qat_pci_dev_destroy(qat_pci_dev, pci_dev);
- return ret;
-
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.436622364 +0000
+++ 0006-common-qat-fix-failure-to-create-PMD.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From 8451f04d0239002c29901e88c278cd83e06f46b1 Mon Sep 17 00:00:00 2001
+From 50d52c93de1f173373ce45a946dfcb1fdf0954dd Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Thu, 11 Oct 2018 18:14:05 +0100
Subject: [PATCH] common/qat: fix failure to create PMD
+[ upstream commit 8451f04d0239002c29901e88c278cd83e06f46b1 ]
+
If QAT crypto pmd failed to be created due to reaching MAX
cryptodevs it prevented QAT comp PMD being created. And vice versa.
Change to warning in these cases and allow the other PMD to be created.
Fixes: c0c90bc4cade ("compress/qat: add create and destroy functions")
-Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Tomasz Cel <tomaszx.cel@intel.com>
@@ -17,16 +18,16 @@
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git a/drivers/common/qat/qat_device.c b/drivers/common/qat/qat_device.c
-index b158fb9ca..8d4df92ac 100644
+index f32d72358..f65c2ab28 100644
--- a/drivers/common/qat/qat_device.c
+++ b/drivers/common/qat/qat_device.c
-@@ -197,4 +197,5 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -188,4 +188,5 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
{
int ret = 0;
+ int num_pmds_created = 0;
struct qat_pci_device *qat_pci_dev;
-@@ -209,21 +210,31 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
+@@ -200,21 +201,31 @@ static int qat_pci_probe(struct rte_pci_driver *pci_drv __rte_unused,
ret = qat_sym_dev_create(qat_pci_dev);
- if (ret != 0)
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/avf: fix build with debug enabled' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (4 preceding siblings ...)
2018-11-22 16:48 ` [dpdk-stable] patch 'common/qat: fix failure to create PMD' " Kevin Traynor
@ 2018-11-22 16:48 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: remove invalid config option from ena guide' " Kevin Traynor
` (57 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:48 UTC (permalink / raw)
To: Haiyue Wang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From d15bfa4ffedc8d694f804c0d85d7ff66b641e9db Mon Sep 17 00:00:00 2001
From: Haiyue Wang <haiyue.wang@intel.com>
Date: Sun, 14 Oct 2018 10:34:05 +0800
Subject: [PATCH] net/avf: fix build with debug enabled
[ upstream commit a710ceb1728497774408225d9327bbf512e9ba16 ]
DEBUG_DUMP_DESC flag is enabled/disabled from Makefile and enabling it
causing the build issue.
Add the missed 'volatile' keyword to avoid the warning for type
mismatch, which will be treated as compiler error if WERROR_FLAGS
is enabled.
Fixes: bfd38e4d708b ("net/avf: fix missing compiler error flags")
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/net/avf/avf_rxtx.h | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/drivers/net/avf/avf_rxtx.h b/drivers/net/avf/avf_rxtx.h
index c4120f8a4..898d2f387 100644
--- a/drivers/net/avf/avf_rxtx.h
+++ b/drivers/net/avf/avf_rxtx.h
@@ -202,9 +202,9 @@ int avf_txq_vec_setup(struct avf_tx_queue *txq);
static inline
void avf_dump_rx_descriptor(struct avf_rx_queue *rxq,
- const void *desc,
+ const volatile void *desc,
uint16_t rx_id)
{
#ifdef RTE_LIBRTE_AVF_16BYTE_RX_DESC
- const union avf_16byte_rx_desc *rx_desc = desc;
+ const volatile union avf_16byte_rx_desc *rx_desc = desc;
printf("Queue %d Rx_desc %d: QW0: 0x%016"PRIx64" QW1: 0x%016"PRIx64"\n",
@@ -212,5 +212,5 @@ void avf_dump_rx_descriptor(struct avf_rx_queue *rxq,
rx_desc->read.hdr_addr);
#else
- const union avf_32byte_rx_desc *rx_desc = desc;
+ const volatile union avf_32byte_rx_desc *rx_desc = desc;
printf("Queue %d Rx_desc %d: QW0: 0x%016"PRIx64" QW1: 0x%016"PRIx64
@@ -226,8 +226,8 @@ void avf_dump_rx_descriptor(struct avf_rx_queue *rxq,
static inline
void avf_dump_tx_descriptor(const struct avf_tx_queue *txq,
- const void *desc, uint16_t tx_id)
+ const volatile void *desc, uint16_t tx_id)
{
const char *name;
- const struct avf_tx_desc *tx_desc = desc;
+ const volatile struct avf_tx_desc *tx_desc = desc;
enum avf_tx_desc_dtype_value type;
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.460447319 +0000
+++ 0007-net-avf-fix-build-with-debug-enabled.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From a710ceb1728497774408225d9327bbf512e9ba16 Mon Sep 17 00:00:00 2001
+From d15bfa4ffedc8d694f804c0d85d7ff66b641e9db Mon Sep 17 00:00:00 2001
From: Haiyue Wang <haiyue.wang@intel.com>
Date: Sun, 14 Oct 2018 10:34:05 +0800
Subject: [PATCH] net/avf: fix build with debug enabled
+[ upstream commit a710ceb1728497774408225d9327bbf512e9ba16 ]
+
DEBUG_DUMP_DESC flag is enabled/disabled from Makefile and enabling it
causing the build issue.
@@ -11,7 +13,6 @@
is enabled.
Fixes: bfd38e4d708b ("net/avf: fix missing compiler error flags")
-CC: stable@dpdk.org
Signed-off-by: Haiyue Wang <haiyue.wang@intel.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'doc: remove invalid config option from ena guide' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (5 preceding siblings ...)
2018-11-22 16:48 ` [dpdk-stable] patch 'net/avf: fix build with debug enabled' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: remove invalid config options from liquidio " Kevin Traynor
` (56 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From ce319a031b5b0362a65e19c612ba6baa0dfeb00c Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 12 Oct 2018 16:42:50 -0700
Subject: [PATCH] doc: remove invalid config option from ena guide
[ upstream commit e215de2560b788916b8395b88152b4ef4282234a ]
The ena driver has used dynamic log type to enable init debugging since
18.05 but the documentation still has leftover mention of the config
option.
Fixes: 8bc0acae970d ("net/ena: implement dynamic logging")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/nics/ena.rst | 4 ----
1 file changed, 4 deletions(-)
diff --git a/doc/guides/nics/ena.rst b/doc/guides/nics/ena.rst
index 695960d4c..34c48575b 100644
--- a/doc/guides/nics/ena.rst
+++ b/doc/guides/nics/ena.rst
@@ -114,8 +114,4 @@ Configuration information
of the ENA PMD driver in the DPDK compilation.
-
- * **CONFIG_RTE_LIBRTE_ENA_DEBUG_INIT** (default y): Enables or disables debug
- logging of device initialization within the ENA PMD driver.
-
* **CONFIG_RTE_LIBRTE_ENA_DEBUG_RX** (default n): Enables or disables debug
logging of RX logic within the ENA PMD driver.
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.482019416 +0000
+++ 0008-doc-remove-invalid-config-option-from-ena-guide.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From e215de2560b788916b8395b88152b4ef4282234a Mon Sep 17 00:00:00 2001
+From ce319a031b5b0362a65e19c612ba6baa0dfeb00c Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 12 Oct 2018 16:42:50 -0700
Subject: [PATCH] doc: remove invalid config option from ena guide
+[ upstream commit e215de2560b788916b8395b88152b4ef4282234a ]
+
The ena driver has used dynamic log type to enable init debugging since
18.05 but the documentation still has leftover mention of the config
option.
Fixes: 8bc0acae970d ("net/ena: implement dynamic logging")
-Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'doc: remove invalid config options from liquidio guide' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (6 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: remove invalid config option from ena guide' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/qede: remove invalid config option checks' " Kevin Traynor
` (55 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 4eefde6f30c547b27cee975adda84fa464553ec8 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 12 Oct 2018 16:42:51 -0700
Subject: [PATCH] doc: remove invalid config options from liquidio guide
[ upstream commit 066396fef81d4a67021e7e2b306d7ea6b8141fb7 ]
The config options for init and debug driver were replaced by
dynamic log levels.
Fixes: 70e28c612d65 ("net/liquidio: implement dynamic logging")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
doc/guides/nics/liquidio.rst | 8 --------
1 file changed, 8 deletions(-)
diff --git a/doc/guides/nics/liquidio.rst b/doc/guides/nics/liquidio.rst
index 87b42cdc4..e2a38004d 100644
--- a/doc/guides/nics/liquidio.rst
+++ b/doc/guides/nics/liquidio.rst
@@ -31,12 +31,4 @@ Please note that enabling debugging options may affect system performance.
Toggle compilation of LiquidIO PMD.
-- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_DRIVER`` (default ``n``)
-
- Toggle display of generic debugging messages.
-
-- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_INIT`` (default ``n``)
-
- Toggle display of initialization related messages.
-
- ``CONFIG_RTE_LIBRTE_LIO_DEBUG_RX`` (default ``n``)
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.505986672 +0000
+++ 0009-doc-remove-invalid-config-options-from-liquidio-guid.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From 066396fef81d4a67021e7e2b306d7ea6b8141fb7 Mon Sep 17 00:00:00 2001
+From 4eefde6f30c547b27cee975adda84fa464553ec8 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 12 Oct 2018 16:42:51 -0700
Subject: [PATCH] doc: remove invalid config options from liquidio guide
+[ upstream commit 066396fef81d4a67021e7e2b306d7ea6b8141fb7 ]
+
The config options for init and debug driver were replaced by
dynamic log levels.
Fixes: 70e28c612d65 ("net/liquidio: implement dynamic logging")
-Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/qede: remove invalid config option checks' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (7 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: remove invalid config options from liquidio " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' " Kevin Traynor
` (54 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 59b962312872e9db4b46b6521ea187cdf247e314 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 12 Oct 2018 16:42:52 -0700
Subject: [PATCH] net/qede: remove invalid config option checks
[ upstream commit dcf3d57fa4e35d49ea0b1d01514eb702aac4a23f ]
Now that logging of initialization is controlled by dynamic debug
level, remove the #ifdef for RTE_LIBRTE_QEDE_DEBUG_INIT since that
config option does not exist in common_base and is not documented.
Fixes: 69b6573980c1 ("net/qede: implement dynamic logging")
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/net/qede/qede_ethdev.c | 11 ++---------
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
index bd906b293..d5493a7d7 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
@@ -1652,13 +1652,10 @@ qede_link_update(struct rte_eth_dev *eth_dev, __rte_unused int wait_to_complete)
static void qede_promiscuous_enable(struct rte_eth_dev *eth_dev)
{
-#ifdef RTE_LIBRTE_QEDE_DEBUG_INIT
struct qede_dev *qdev = eth_dev->data->dev_private;
struct ecore_dev *edev = &qdev->edev;
-
- PMD_INIT_FUNC_TRACE(edev);
-#endif
-
enum qed_filter_rx_mode_type type = QED_FILTER_RX_MODE_TYPE_PROMISC;
+ PMD_INIT_FUNC_TRACE(edev);
+
if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1)
type |= QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC;
@@ -1669,10 +1666,8 @@ static void qede_promiscuous_enable(struct rte_eth_dev *eth_dev)
static void qede_promiscuous_disable(struct rte_eth_dev *eth_dev)
{
-#ifdef RTE_LIBRTE_QEDE_DEBUG_INIT
struct qede_dev *qdev = eth_dev->data->dev_private;
struct ecore_dev *edev = &qdev->edev;
PMD_INIT_FUNC_TRACE(edev);
-#endif
if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1)
@@ -3312,10 +3307,8 @@ static int qede_eth_dev_init(struct rte_eth_dev *eth_dev)
static int qede_dev_common_uninit(struct rte_eth_dev *eth_dev)
{
-#ifdef RTE_LIBRTE_QEDE_DEBUG_INIT
struct qede_dev *qdev = eth_dev->data->dev_private;
struct ecore_dev *edev = &qdev->edev;
PMD_INIT_FUNC_TRACE(edev);
-#endif
/* only uninitialize in the primary process */
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.531099414 +0000
+++ 0010-net-qede-remove-invalid-config-option-checks.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From dcf3d57fa4e35d49ea0b1d01514eb702aac4a23f Mon Sep 17 00:00:00 2001
+From 59b962312872e9db4b46b6521ea187cdf247e314 Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Fri, 12 Oct 2018 16:42:52 -0700
Subject: [PATCH] net/qede: remove invalid config option checks
+[ upstream commit dcf3d57fa4e35d49ea0b1d01514eb702aac4a23f ]
+
Now that logging of initialization is controlled by dynamic debug
level, remove the #ifdef for RTE_LIBRTE_QEDE_DEBUG_INIT since that
config option does not exist in common_base and is not documented.
Fixes: 69b6573980c1 ("net/qede: implement dynamic logging")
-Cc: stable@dpdk.org
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -17,10 +18,10 @@
1 file changed, 2 insertions(+), 9 deletions(-)
diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c
-index 18d244a93..5745832b9 100644
+index bd906b293..d5493a7d7 100644
--- a/drivers/net/qede/qede_ethdev.c
+++ b/drivers/net/qede/qede_ethdev.c
-@@ -1381,13 +1381,10 @@ qede_link_update(struct rte_eth_dev *eth_dev, __rte_unused int wait_to_complete)
+@@ -1652,13 +1652,10 @@ qede_link_update(struct rte_eth_dev *eth_dev, __rte_unused int wait_to_complete)
static void qede_promiscuous_enable(struct rte_eth_dev *eth_dev)
{
-#ifdef RTE_LIBRTE_QEDE_DEBUG_INIT
@@ -36,7 +37,7 @@
+
if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1)
type |= QED_FILTER_RX_MODE_TYPE_MULTI_PROMISC;
-@@ -1398,10 +1395,8 @@ static void qede_promiscuous_enable(struct rte_eth_dev *eth_dev)
+@@ -1669,10 +1666,8 @@ static void qede_promiscuous_enable(struct rte_eth_dev *eth_dev)
static void qede_promiscuous_disable(struct rte_eth_dev *eth_dev)
{
-#ifdef RTE_LIBRTE_QEDE_DEBUG_INIT
@@ -47,7 +48,7 @@
-#endif
if (rte_eth_allmulticast_get(eth_dev->data->port_id) == 1)
-@@ -2649,10 +2644,8 @@ static int qede_eth_dev_init(struct rte_eth_dev *eth_dev)
+@@ -3312,10 +3307,8 @@ static int qede_eth_dev_init(struct rte_eth_dev *eth_dev)
static int qede_dev_common_uninit(struct rte_eth_dev *eth_dev)
{
-#ifdef RTE_LIBRTE_QEDE_DEBUG_INIT
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (8 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/qede: remove invalid config option checks' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: fix notification for packed ring' " Kevin Traynor
` (53 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Phil Yang; +Cc: Gavin Hu, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From c9ffe9488bf80156fbe175bba519441a98bb92fe 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 51de403de..6808415f3 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -708,10 +708,4 @@ 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",
@@ -754,7 +748,10 @@ init_config(void)
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]++;
}
@@ -912,7 +909,10 @@ init_fwd_streams(void)
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];
}
}
@@ -2010,7 +2010,7 @@ attach_port(char *identifier)
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);
@@ -2651,4 +2651,9 @@ init_port(void)
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);
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.558863709 +0000
+++ 0011-app-testpmd-fix-vdev-socket-initialization.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 29841336438400ce040e394c0c00040c21644727 Mon Sep 17 00:00:00 2001
+From c9ffe9488bf80156fbe175bba519441a98bb92fe 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 51de403de..6808415f3 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
-@@ -1022,10 +1022,4 @@ init_config(void)
+@@ -708,10 +708,4 @@ init_config(void)
memset(port_per_socket,0,RTE_MAX_NUMA_NODES);
- if (numa_support) {
@@ -48,7 +49,7 @@
-
/* Configuration of logical cores. */
fwd_lcores = rte_zmalloc("testpmd: fwd_lcores",
-@@ -1064,7 +1058,10 @@ init_config(void)
+@@ -754,7 +748,10 @@ init_config(void)
uint32_t socket_id = rte_eth_dev_socket_id(pid);
- /* if socket_id is invalid, set to 0 */
@@ -61,7 +62,7 @@
+ socket_id = socket_ids[0];
port_per_socket[socket_id]++;
}
-@@ -1222,7 +1219,10 @@ init_fwd_streams(void)
+@@ -912,7 +909,10 @@ init_fwd_streams(void)
port->socket_id = rte_eth_dev_socket_id(pid);
- /* if socket_id is invalid, set to 0 */
@@ -74,7 +75,7 @@
+ port->socket_id = socket_ids[0];
}
}
-@@ -2295,7 +2295,7 @@ attach_port(char *identifier)
+@@ -2010,7 +2010,7 @@ attach_port(char *identifier)
socket_id = (unsigned)rte_eth_dev_socket_id(pi);
- /* if socket_id is invalid, set to 0 */
@@ -84,7 +85,7 @@
+ socket_id = socket_ids[0];
reconfig(pi, socket_id);
rte_eth_promiscuous_enable(pi);
-@@ -2955,4 +2955,9 @@ init_port(void)
+@@ -2651,4 +2651,9 @@ init_port(void)
RTE_MAX_ETHPORTS);
}
+
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'vhost: fix notification for packed ring' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (9 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: fix vdev socket initialization' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: fix error handling when mem table gets updated' " Kevin Traynor
` (52 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Michael S . Tsirkin, Maxime Coquelin, Jason Wang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 8a35e315bdc196458e1a547499b95ff7ef10fcac Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Thu, 11 Oct 2018 22:22:34 +0800
Subject: [PATCH] vhost: fix notification for packed ring
[ upstream commit cd9012c3f8d3905a8212da7945233a17633e796f ]
The notification can't be disabled in packed ring when
application tries to disable notification, because the
device event flags field is overwritten by an unexpected
value. This patch fixes this issue.
Fixes: b1cce26af1dc ("vhost: add notification for packed ring")
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Jason Wang <jasowang@redhat.com>
---
lib/librte_vhost/vhost.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
index 88b1781d5..8ba785068 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
@@ -667,6 +667,8 @@ vhost_enable_notify_packed(struct virtio_net *dev,
uint16_t flags;
- if (!enable)
+ if (!enable) {
vq->device_event->flags = VRING_EVENT_F_DISABLE;
+ return;
+ }
flags = VRING_EVENT_F_ENABLE;
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.586482928 +0000
+++ 0012-vhost-fix-notification-for-packed-ring.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,15 +1,16 @@
-From cd9012c3f8d3905a8212da7945233a17633e796f Mon Sep 17 00:00:00 2001
+From 8a35e315bdc196458e1a547499b95ff7ef10fcac Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Thu, 11 Oct 2018 22:22:34 +0800
Subject: [PATCH] vhost: fix notification for packed ring
+[ upstream commit cd9012c3f8d3905a8212da7945233a17633e796f ]
+
The notification can't be disabled in packed ring when
application tries to disable notification, because the
device event flags field is overwritten by an unexpected
value. This patch fixes this issue.
Fixes: b1cce26af1dc ("vhost: add notification for packed ring")
-Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
@@ -20,10 +21,10 @@
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c
-index e62f4c594..047ee535c 100644
+index 88b1781d5..8ba785068 100644
--- a/lib/librte_vhost/vhost.c
+++ b/lib/librte_vhost/vhost.c
-@@ -668,6 +668,8 @@ vhost_enable_notify_packed(struct virtio_net *dev,
+@@ -667,6 +667,8 @@ vhost_enable_notify_packed(struct virtio_net *dev,
uint16_t flags;
- if (!enable)
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'vhost: fix error handling when mem table gets updated' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (10 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: fix notification for packed ring' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'mbuf: fix offload flag name and list' " Kevin Traynor
` (51 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Maxime Coquelin; +Cc: Ilya Maximets, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 2518ba1105975eddfebdc6ea8114bc60e9f5c7fd Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 12 Oct 2018 14:40:33 +0200
Subject: [PATCH] vhost: fix error handling when mem table gets updated
[ upstream commit 74ee315e4f1bcbcabae054d310b730be13e49ad4 ]
When the memory table gets updated, the rings addresses need
to be translated again. If it fails, we need to exit cleanly
by unmapping memory regions.
Fixes: d5022533c20a ("vhost: retranslate vring addr when memory table changes")
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Ilya Maximets <i.maximets@samsung.com>
---
lib/librte_vhost/vhost_user.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index 63d145b2d..d19d78ce5 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -937,6 +937,8 @@ vhost_user_set_mem_table(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
dev = translate_ring_addresses(dev, i);
- if (!dev)
- return -1;
+ if (!dev) {
+ dev = *pdev;
+ goto err_mmap;
+ }
*pdev = dev;
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.611022398 +0000
+++ 0013-vhost-fix-error-handling-when-mem-table-gets-updated.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From 74ee315e4f1bcbcabae054d310b730be13e49ad4 Mon Sep 17 00:00:00 2001
+From 2518ba1105975eddfebdc6ea8114bc60e9f5c7fd Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Fri, 12 Oct 2018 14:40:33 +0200
Subject: [PATCH] vhost: fix error handling when mem table gets updated
+[ upstream commit 74ee315e4f1bcbcabae054d310b730be13e49ad4 ]
+
When the memory table gets updated, the rings addresses need
to be translated again. If it fails, we need to exit cleanly
by unmapping memory regions.
Fixes: d5022533c20a ("vhost: retranslate vring addr when memory table changes")
-Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Acked-by: Ilya Maximets <i.maximets@samsung.com>
@@ -17,14 +18,14 @@
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
-index 1ef02c943..83d3e6321 100644
+index 63d145b2d..d19d78ce5 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
-@@ -954,6 +954,8 @@ vhost_user_set_mem_table(struct virtio_net **pdev, struct VhostUserMsg *msg)
+@@ -937,6 +937,8 @@ vhost_user_set_mem_table(struct virtio_net **pdev, struct VhostUserMsg *pmsg)
dev = translate_ring_addresses(dev, i);
- if (!dev)
-- return VH_RESULT_ERR;
+- return -1;
+ if (!dev) {
+ dev = *pdev;
+ goto err_mmap;
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'mbuf: fix offload flag name and list' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (11 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: fix error handling when mem table gets updated' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 17:00 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: clarify VLAN and QinQ Tx offload prerequisite' " Kevin Traynor
` (50 subsequent siblings)
63 siblings, 1 reply; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From c8675533e066af6f00080bf4aa94a040146b298f Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 16 Oct 2018 12:45:40 +0000
Subject: [PATCH] mbuf: fix offload flag name and list
[ upstream commit c23e46594418119dbbb92e7f1b9eed2a476d4535 ]
Fix missing PKT_TX* & PKT_RX* ol_flag name and fix ol_flag list.
Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
Fixes: 829a1c2c41dc ("mbuf: extend flow director field")
Fixes: 63c0d74daaa9 ("mbuf: add Tx side tunneling type")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_mbuf/rte_mbuf.c | 36 ++++++++++++++++++------------------
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
index e714c5a59..8f3abd2ca 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -297,4 +297,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
case PKT_RX_IEEE1588_PTP: return "PKT_RX_IEEE1588_PTP";
case PKT_RX_IEEE1588_TMST: return "PKT_RX_IEEE1588_TMST";
+ case PKT_RX_FDIR_ID: return "PKT_RX_FDIR_ID";
+ case PKT_RX_FDIR_FLX: return "PKT_RX_FDIR_FLX";
case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
case PKT_RX_LRO: return "PKT_RX_LRO";
@@ -334,4 +336,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{ PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
{ PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
+ { PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
+ { PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
{ PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
{ PKT_RX_LRO, PKT_RX_LRO, NULL },
@@ -374,5 +378,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
{
switch (mask) {
- case PKT_TX_VLAN_PKT: return "PKT_TX_VLAN_PKT";
+ case PKT_TX_VLAN: return "PKT_TX_VLAN";
case PKT_TX_IP_CKSUM: return "PKT_TX_IP_CKSUM";
case PKT_TX_TCP_CKSUM: return "PKT_TX_TCP_CKSUM";
@@ -394,6 +398,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
case PKT_TX_TUNNEL_IP: return "PKT_TX_TUNNEL_IP";
case PKT_TX_TUNNEL_UDP: return "PKT_TX_TUNNEL_UDP";
+ case PKT_TX_QINQ: return "PKT_TX_QINQ";
case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
case PKT_TX_SEC_OFFLOAD: return "PKT_TX_SEC_OFFLOAD";
+ case PKT_TX_UDP_SEG: return "PKT_TX_UDP_SEG";
default: return NULL;
}
@@ -405,5 +411,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{
const struct flag_mask tx_flags[] = {
- { PKT_TX_VLAN_PKT, PKT_TX_VLAN_PKT, NULL },
+ { PKT_TX_VLAN, PKT_TX_VLAN, NULL },
{ PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
{ PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
@@ -418,22 +424,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{ PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
{ PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
- { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
- { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK,
- "PKT_TX_TUNNEL_NONE" },
+ { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
+ { PKT_TX_QINQ, PKT_TX_QINQ, NULL },
{ PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
{ PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
+ { PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
};
const char *name;
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.638062995 +0000
+++ 0014-mbuf-fix-offload-flag-name-and-list.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From c23e46594418119dbbb92e7f1b9eed2a476d4535 Mon Sep 17 00:00:00 2001
+From c8675533e066af6f00080bf4aa94a040146b298f Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 16 Oct 2018 12:45:40 +0000
Subject: [PATCH] mbuf: fix offload flag name and list
+[ upstream commit c23e46594418119dbbb92e7f1b9eed2a476d4535 ]
+
Fix missing PKT_TX* & PKT_RX* ol_flag name and fix ol_flag list.
Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
Fixes: 829a1c2c41dc ("mbuf: extend flow director field")
Fixes: 63c0d74daaa9 ("mbuf: add Tx side tunneling type")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -17,7 +18,7 @@
1 file changed, 18 insertions(+), 18 deletions(-)
diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
-index 5297beb51..bb95d3a5c 100644
+index e714c5a59..8f3abd2ca 100644
--- a/lib/librte_mbuf/rte_mbuf.c
+++ b/lib/librte_mbuf/rte_mbuf.c
@@ -297,4 +297,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
@@ -26,22 +27,22 @@
+ case PKT_RX_FDIR_ID: return "PKT_RX_FDIR_ID";
+ case PKT_RX_FDIR_FLX: return "PKT_RX_FDIR_FLX";
case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
- case PKT_RX_QINQ: return "PKT_RX_QINQ";
-@@ -340,4 +342,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
+ case PKT_RX_LRO: return "PKT_RX_LRO";
+@@ -334,4 +336,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{ PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
{ PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
+ { PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
+ { PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
{ PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
{ PKT_RX_LRO, PKT_RX_LRO, NULL },
-@@ -387,5 +391,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
+@@ -374,5 +378,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
{
switch (mask) {
- case PKT_TX_VLAN_PKT: return "PKT_TX_VLAN_PKT";
+ case PKT_TX_VLAN: return "PKT_TX_VLAN";
case PKT_TX_IP_CKSUM: return "PKT_TX_IP_CKSUM";
case PKT_TX_TCP_CKSUM: return "PKT_TX_TCP_CKSUM";
-@@ -407,6 +411,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
+@@ -394,6 +398,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
case PKT_TX_TUNNEL_IP: return "PKT_TX_TUNNEL_IP";
case PKT_TX_TUNNEL_UDP: return "PKT_TX_TUNNEL_UDP";
+ case PKT_TX_QINQ: return "PKT_TX_QINQ";
@@ -50,14 +51,14 @@
+ case PKT_TX_UDP_SEG: return "PKT_TX_UDP_SEG";
default: return NULL;
}
-@@ -418,5 +424,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
+@@ -405,5 +411,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{
const struct flag_mask tx_flags[] = {
- { PKT_TX_VLAN_PKT, PKT_TX_VLAN_PKT, NULL },
+ { PKT_TX_VLAN, PKT_TX_VLAN, NULL },
{ PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
{ PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
-@@ -431,22 +437,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
+@@ -418,22 +424,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
{ PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
{ PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
- { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK,
@@ -88,8 +89,8 @@
{ PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
{ PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
+ { PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
- { PKT_TX_OUTER_UDP_CKSUM, PKT_TX_OUTER_UDP_CKSUM, NULL },
};
+ const char *name;
--
2.19.0
^ permalink raw reply [flat|nested] 71+ messages in thread
* Re: [dpdk-stable] patch 'mbuf: fix offload flag name and list' has been queued to stable release 18.08.1
2018-11-22 16:49 ` [dpdk-stable] patch 'mbuf: fix offload flag name and list' " Kevin Traynor
@ 2018-11-22 17:00 ` Kevin Traynor
2018-11-30 10:18 ` Kevin Traynor
0 siblings, 1 reply; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 17:00 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable
On 11/22/2018 04:49 PM, Kevin Traynor wrote:
> Hi,
>
> FYI, your patch has been queued to stable release 18.08.1
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 11/28/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.
>
Jerin, please check this one carefully as it's for mbuf and didn't apply
cleanly. If it's not clear from below diff I can send patch. Otherwise
if you want to send a backport, I can just take that instead.
> Thanks.
>
> Kevin Traynor
>
> ---
> From c8675533e066af6f00080bf4aa94a040146b298f Mon Sep 17 00:00:00 2001
> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Date: Tue, 16 Oct 2018 12:45:40 +0000
> Subject: [PATCH] mbuf: fix offload flag name and list
>
> [ upstream commit c23e46594418119dbbb92e7f1b9eed2a476d4535 ]
>
> Fix missing PKT_TX* & PKT_RX* ol_flag name and fix ol_flag list.
>
> Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
> Fixes: 829a1c2c41dc ("mbuf: extend flow director field")
> Fixes: 63c0d74daaa9 ("mbuf: add Tx side tunneling type")
>
> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
> ---
> lib/librte_mbuf/rte_mbuf.c | 36 ++++++++++++++++++------------------
> 1 file changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
> index e714c5a59..8f3abd2ca 100644
> --- a/lib/librte_mbuf/rte_mbuf.c
> +++ b/lib/librte_mbuf/rte_mbuf.c
> @@ -297,4 +297,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
> case PKT_RX_IEEE1588_PTP: return "PKT_RX_IEEE1588_PTP";
> case PKT_RX_IEEE1588_TMST: return "PKT_RX_IEEE1588_TMST";
> + case PKT_RX_FDIR_ID: return "PKT_RX_FDIR_ID";
> + case PKT_RX_FDIR_FLX: return "PKT_RX_FDIR_FLX";
> case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
> case PKT_RX_LRO: return "PKT_RX_LRO";
> @@ -334,4 +336,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
> { PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
> { PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
> + { PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
> + { PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
> { PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
> { PKT_RX_LRO, PKT_RX_LRO, NULL },
> @@ -374,5 +378,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
> {
> switch (mask) {
> - case PKT_TX_VLAN_PKT: return "PKT_TX_VLAN_PKT";
> + case PKT_TX_VLAN: return "PKT_TX_VLAN";
> case PKT_TX_IP_CKSUM: return "PKT_TX_IP_CKSUM";
> case PKT_TX_TCP_CKSUM: return "PKT_TX_TCP_CKSUM";
> @@ -394,6 +398,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
> case PKT_TX_TUNNEL_IP: return "PKT_TX_TUNNEL_IP";
> case PKT_TX_TUNNEL_UDP: return "PKT_TX_TUNNEL_UDP";
> + case PKT_TX_QINQ: return "PKT_TX_QINQ";
> case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
> case PKT_TX_SEC_OFFLOAD: return "PKT_TX_SEC_OFFLOAD";
> + case PKT_TX_UDP_SEG: return "PKT_TX_UDP_SEG";
> default: return NULL;
> }
> @@ -405,5 +411,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
> {
> const struct flag_mask tx_flags[] = {
> - { PKT_TX_VLAN_PKT, PKT_TX_VLAN_PKT, NULL },
> + { PKT_TX_VLAN, PKT_TX_VLAN, NULL },
> { PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
> { PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
> @@ -418,22 +424,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
> { PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
> { PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
> - { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> - { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK,
> - "PKT_TX_TUNNEL_NONE" },
> + { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
> + { PKT_TX_QINQ, PKT_TX_QINQ, NULL },
> { PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
> { PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
> + { PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
> };
> const char *name;
>
^ permalink raw reply [flat|nested] 71+ messages in thread
* Re: [dpdk-stable] patch 'mbuf: fix offload flag name and list' has been queued to stable release 18.08.1
2018-11-22 17:00 ` Kevin Traynor
@ 2018-11-30 10:18 ` Kevin Traynor
2018-12-03 5:52 ` Jerin Jacob
0 siblings, 1 reply; 71+ messages in thread
From: Kevin Traynor @ 2018-11-30 10:18 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable
On 11/22/2018 05:00 PM, Kevin Traynor wrote:
> On 11/22/2018 04:49 PM, Kevin Traynor wrote:
>> Hi,
>>
>> FYI, your patch has been queued to stable release 18.08.1
>>
>> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
>> It will be pushed if I get no objections before 11/28/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.
>>
>
> Jerin, please check this one carefully as it's for mbuf and didn't apply
> cleanly. If it's not clear from below diff I can send patch. Otherwise
> if you want to send a backport, I can just take that instead.
>
Rebased patch is here
https://github.com/kevintraynor/dpdk/commit/b7e35d460e736a6cf5a298d8aedb312eb2c1759e
. Please confirm it's ok.
thanks,
Kevin.
>> Thanks.
>>
>> Kevin Traynor
>>
>> ---
>> From c8675533e066af6f00080bf4aa94a040146b298f Mon Sep 17 00:00:00 2001
>> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>> Date: Tue, 16 Oct 2018 12:45:40 +0000
>> Subject: [PATCH] mbuf: fix offload flag name and list
>>
>> [ upstream commit c23e46594418119dbbb92e7f1b9eed2a476d4535 ]
>>
>> Fix missing PKT_TX* & PKT_RX* ol_flag name and fix ol_flag list.
>>
>> Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
>> Fixes: 829a1c2c41dc ("mbuf: extend flow director field")
>> Fixes: 63c0d74daaa9 ("mbuf: add Tx side tunneling type")
>>
>> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
>> ---
>> lib/librte_mbuf/rte_mbuf.c | 36 ++++++++++++++++++------------------
>> 1 file changed, 18 insertions(+), 18 deletions(-)
>>
>> diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
>> index e714c5a59..8f3abd2ca 100644
>> --- a/lib/librte_mbuf/rte_mbuf.c
>> +++ b/lib/librte_mbuf/rte_mbuf.c
>> @@ -297,4 +297,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
>> case PKT_RX_IEEE1588_PTP: return "PKT_RX_IEEE1588_PTP";
>> case PKT_RX_IEEE1588_TMST: return "PKT_RX_IEEE1588_TMST";
>> + case PKT_RX_FDIR_ID: return "PKT_RX_FDIR_ID";
>> + case PKT_RX_FDIR_FLX: return "PKT_RX_FDIR_FLX";
>> case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
>> case PKT_RX_LRO: return "PKT_RX_LRO";
>> @@ -334,4 +336,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>> { PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
>> { PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
>> + { PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
>> + { PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
>> { PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
>> { PKT_RX_LRO, PKT_RX_LRO, NULL },
>> @@ -374,5 +378,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
>> {
>> switch (mask) {
>> - case PKT_TX_VLAN_PKT: return "PKT_TX_VLAN_PKT";
>> + case PKT_TX_VLAN: return "PKT_TX_VLAN";
>> case PKT_TX_IP_CKSUM: return "PKT_TX_IP_CKSUM";
>> case PKT_TX_TCP_CKSUM: return "PKT_TX_TCP_CKSUM";
>> @@ -394,6 +398,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
>> case PKT_TX_TUNNEL_IP: return "PKT_TX_TUNNEL_IP";
>> case PKT_TX_TUNNEL_UDP: return "PKT_TX_TUNNEL_UDP";
>> + case PKT_TX_QINQ: return "PKT_TX_QINQ";
>> case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
>> case PKT_TX_SEC_OFFLOAD: return "PKT_TX_SEC_OFFLOAD";
>> + case PKT_TX_UDP_SEG: return "PKT_TX_UDP_SEG";
>> default: return NULL;
>> }
>> @@ -405,5 +411,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>> {
>> const struct flag_mask tx_flags[] = {
>> - { PKT_TX_VLAN_PKT, PKT_TX_VLAN_PKT, NULL },
>> + { PKT_TX_VLAN, PKT_TX_VLAN, NULL },
>> { PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
>> { PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
>> @@ -418,22 +424,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>> { PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
>> { PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
>> - { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> - { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK,
>> - "PKT_TX_TUNNEL_NONE" },
>> + { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
>> + { PKT_TX_QINQ, PKT_TX_QINQ, NULL },
>> { PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
>> { PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
>> + { PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
>> };
>> const char *name;
>>
>
^ permalink raw reply [flat|nested] 71+ messages in thread
* Re: [dpdk-stable] patch 'mbuf: fix offload flag name and list' has been queued to stable release 18.08.1
2018-11-30 10:18 ` Kevin Traynor
@ 2018-12-03 5:52 ` Jerin Jacob
2018-12-03 17:12 ` Kevin Traynor
0 siblings, 1 reply; 71+ messages in thread
From: Jerin Jacob @ 2018-12-03 5:52 UTC (permalink / raw)
To: Kevin Traynor; +Cc: Ferruh Yigit, dpdk stable
-----Original Message-----
> Date: Fri, 30 Nov 2018 10:18:48 +0000
> From: Kevin Traynor <ktraynor@redhat.com>
> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> CC: Ferruh Yigit <ferruh.yigit@intel.com>, dpdk stable <stable@dpdk.org>
> Subject: Re: [dpdk-stable] patch 'mbuf: fix offload flag name and list' has
> been queued to stable release 18.08.1
> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
> Thunderbird/52.2.0
>
> On 11/22/2018 05:00 PM, Kevin Traynor wrote:
> > On 11/22/2018 04:49 PM, Kevin Traynor wrote:
> >> Hi,
> >>
> >> FYI, your patch has been queued to stable release 18.08.1
> >>
> >> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> >> It will be pushed if I get no objections before 11/28/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.
> >>
> >
> > Jerin, please check this one carefully as it's for mbuf and didn't apply
> > cleanly. If it's not clear from below diff I can send patch. Otherwise
> > if you want to send a backport, I can just take that instead.
> >
>
> Rebased patch is here
> https://github.com/kevintraynor/dpdk/commit/b7e35d460e736a6cf5a298d8aedb312eb2c1759e
> . Please confirm it's ok.
Looks good to me.
>
> thanks,
> Kevin.
>
> >> Thanks.
> >>
> >> Kevin Traynor
> >>
> >> ---
> >> From c8675533e066af6f00080bf4aa94a040146b298f Mon Sep 17 00:00:00 2001
> >> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> >> Date: Tue, 16 Oct 2018 12:45:40 +0000
> >> Subject: [PATCH] mbuf: fix offload flag name and list
> >>
> >> [ upstream commit c23e46594418119dbbb92e7f1b9eed2a476d4535 ]
> >>
> >> Fix missing PKT_TX* & PKT_RX* ol_flag name and fix ol_flag list.
> >>
> >> Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
> >> Fixes: 829a1c2c41dc ("mbuf: extend flow director field")
> >> Fixes: 63c0d74daaa9 ("mbuf: add Tx side tunneling type")
> >>
> >> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
> >> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
> >> ---
> >> lib/librte_mbuf/rte_mbuf.c | 36 ++++++++++++++++++------------------
> >> 1 file changed, 18 insertions(+), 18 deletions(-)
> >>
> >> diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
> >> index e714c5a59..8f3abd2ca 100644
> >> --- a/lib/librte_mbuf/rte_mbuf.c
> >> +++ b/lib/librte_mbuf/rte_mbuf.c
> >> @@ -297,4 +297,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
> >> case PKT_RX_IEEE1588_PTP: return "PKT_RX_IEEE1588_PTP";
> >> case PKT_RX_IEEE1588_TMST: return "PKT_RX_IEEE1588_TMST";
> >> + case PKT_RX_FDIR_ID: return "PKT_RX_FDIR_ID";
> >> + case PKT_RX_FDIR_FLX: return "PKT_RX_FDIR_FLX";
> >> case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
> >> case PKT_RX_LRO: return "PKT_RX_LRO";
> >> @@ -334,4 +336,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
> >> { PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
> >> { PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
> >> + { PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
> >> + { PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
> >> { PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
> >> { PKT_RX_LRO, PKT_RX_LRO, NULL },
> >> @@ -374,5 +378,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
> >> {
> >> switch (mask) {
> >> - case PKT_TX_VLAN_PKT: return "PKT_TX_VLAN_PKT";
> >> + case PKT_TX_VLAN: return "PKT_TX_VLAN";
> >> case PKT_TX_IP_CKSUM: return "PKT_TX_IP_CKSUM";
> >> case PKT_TX_TCP_CKSUM: return "PKT_TX_TCP_CKSUM";
> >> @@ -394,6 +398,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
> >> case PKT_TX_TUNNEL_IP: return "PKT_TX_TUNNEL_IP";
> >> case PKT_TX_TUNNEL_UDP: return "PKT_TX_TUNNEL_UDP";
> >> + case PKT_TX_QINQ: return "PKT_TX_QINQ";
> >> case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
> >> case PKT_TX_SEC_OFFLOAD: return "PKT_TX_SEC_OFFLOAD";
> >> + case PKT_TX_UDP_SEG: return "PKT_TX_UDP_SEG";
> >> default: return NULL;
> >> }
> >> @@ -405,5 +411,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
> >> {
> >> const struct flag_mask tx_flags[] = {
> >> - { PKT_TX_VLAN_PKT, PKT_TX_VLAN_PKT, NULL },
> >> + { PKT_TX_VLAN, PKT_TX_VLAN, NULL },
> >> { PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
> >> { PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
> >> @@ -418,22 +424,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
> >> { PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
> >> { PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
> >> - { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> - { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK,
> >> - "PKT_TX_TUNNEL_NONE" },
> >> + { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
> >> + { PKT_TX_QINQ, PKT_TX_QINQ, NULL },
> >> { PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
> >> { PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
> >> + { PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
> >> };
> >> const char *name;
> >>
> >
>
^ permalink raw reply [flat|nested] 71+ messages in thread
* Re: [dpdk-stable] patch 'mbuf: fix offload flag name and list' has been queued to stable release 18.08.1
2018-12-03 5:52 ` Jerin Jacob
@ 2018-12-03 17:12 ` Kevin Traynor
0 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-12-03 17:12 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable
On 12/03/2018 05:52 AM, Jerin Jacob wrote:
> -----Original Message-----
>> Date: Fri, 30 Nov 2018 10:18:48 +0000
>> From: Kevin Traynor <ktraynor@redhat.com>
>> To: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>> CC: Ferruh Yigit <ferruh.yigit@intel.com>, dpdk stable <stable@dpdk.org>
>> Subject: Re: [dpdk-stable] patch 'mbuf: fix offload flag name and list' has
>> been queued to stable release 18.08.1
>> User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
>> Thunderbird/52.2.0
>>
>> On 11/22/2018 05:00 PM, Kevin Traynor wrote:
>>> On 11/22/2018 04:49 PM, Kevin Traynor wrote:
>>>> Hi,
>>>>
>>>> FYI, your patch has been queued to stable release 18.08.1
>>>>
>>>> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
>>>> It will be pushed if I get no objections before 11/28/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.
>>>>
>>>
>>> Jerin, please check this one carefully as it's for mbuf and didn't apply
>>> cleanly. If it's not clear from below diff I can send patch. Otherwise
>>> if you want to send a backport, I can just take that instead.
>>>
>>
>> Rebased patch is here
>> https://github.com/kevintraynor/dpdk/commit/b7e35d460e736a6cf5a298d8aedb312eb2c1759e
>> . Please confirm it's ok.
>
> Looks good to me.
>
Thanks
>>
>> thanks,
>> Kevin.
>>
>>>> Thanks.
>>>>
>>>> Kevin Traynor
>>>>
>>>> ---
>>>> From c8675533e066af6f00080bf4aa94a040146b298f Mon Sep 17 00:00:00 2001
>>>> From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>>>> Date: Tue, 16 Oct 2018 12:45:40 +0000
>>>> Subject: [PATCH] mbuf: fix offload flag name and list
>>>>
>>>> [ upstream commit c23e46594418119dbbb92e7f1b9eed2a476d4535 ]
>>>>
>>>> Fix missing PKT_TX* & PKT_RX* ol_flag name and fix ol_flag list.
>>>>
>>>> Fixes: 6d18505efaa6 ("vhost: support UDP Fragmentation Offload")
>>>> Fixes: 829a1c2c41dc ("mbuf: extend flow director field")
>>>> Fixes: 63c0d74daaa9 ("mbuf: add Tx side tunneling type")
>>>>
>>>> Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
>>>> Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
>>>> ---
>>>> lib/librte_mbuf/rte_mbuf.c | 36 ++++++++++++++++++------------------
>>>> 1 file changed, 18 insertions(+), 18 deletions(-)
>>>>
>>>> diff --git a/lib/librte_mbuf/rte_mbuf.c b/lib/librte_mbuf/rte_mbuf.c
>>>> index e714c5a59..8f3abd2ca 100644
>>>> --- a/lib/librte_mbuf/rte_mbuf.c
>>>> +++ b/lib/librte_mbuf/rte_mbuf.c
>>>> @@ -297,4 +297,6 @@ const char *rte_get_rx_ol_flag_name(uint64_t mask)
>>>> case PKT_RX_IEEE1588_PTP: return "PKT_RX_IEEE1588_PTP";
>>>> case PKT_RX_IEEE1588_TMST: return "PKT_RX_IEEE1588_TMST";
>>>> + case PKT_RX_FDIR_ID: return "PKT_RX_FDIR_ID";
>>>> + case PKT_RX_FDIR_FLX: return "PKT_RX_FDIR_FLX";
>>>> case PKT_RX_QINQ_STRIPPED: return "PKT_RX_QINQ_STRIPPED";
>>>> case PKT_RX_LRO: return "PKT_RX_LRO";
>>>> @@ -334,4 +336,6 @@ rte_get_rx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>>>> { PKT_RX_IEEE1588_PTP, PKT_RX_IEEE1588_PTP, NULL },
>>>> { PKT_RX_IEEE1588_TMST, PKT_RX_IEEE1588_TMST, NULL },
>>>> + { PKT_RX_FDIR_ID, PKT_RX_FDIR_ID, NULL },
>>>> + { PKT_RX_FDIR_FLX, PKT_RX_FDIR_FLX, NULL },
>>>> { PKT_RX_QINQ_STRIPPED, PKT_RX_QINQ_STRIPPED, NULL },
>>>> { PKT_RX_LRO, PKT_RX_LRO, NULL },
>>>> @@ -374,5 +378,5 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
>>>> {
>>>> switch (mask) {
>>>> - case PKT_TX_VLAN_PKT: return "PKT_TX_VLAN_PKT";
>>>> + case PKT_TX_VLAN: return "PKT_TX_VLAN";
>>>> case PKT_TX_IP_CKSUM: return "PKT_TX_IP_CKSUM";
>>>> case PKT_TX_TCP_CKSUM: return "PKT_TX_TCP_CKSUM";
>>>> @@ -394,6 +398,8 @@ const char *rte_get_tx_ol_flag_name(uint64_t mask)
>>>> case PKT_TX_TUNNEL_IP: return "PKT_TX_TUNNEL_IP";
>>>> case PKT_TX_TUNNEL_UDP: return "PKT_TX_TUNNEL_UDP";
>>>> + case PKT_TX_QINQ: return "PKT_TX_QINQ";
>>>> case PKT_TX_MACSEC: return "PKT_TX_MACSEC";
>>>> case PKT_TX_SEC_OFFLOAD: return "PKT_TX_SEC_OFFLOAD";
>>>> + case PKT_TX_UDP_SEG: return "PKT_TX_UDP_SEG";
>>>> default: return NULL;
>>>> }
>>>> @@ -405,5 +411,5 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>>>> {
>>>> const struct flag_mask tx_flags[] = {
>>>> - { PKT_TX_VLAN_PKT, PKT_TX_VLAN_PKT, NULL },
>>>> + { PKT_TX_VLAN, PKT_TX_VLAN, NULL },
>>>> { PKT_TX_IP_CKSUM, PKT_TX_IP_CKSUM, NULL },
>>>> { PKT_TX_TCP_CKSUM, PKT_TX_L4_MASK, NULL },
>>>> @@ -418,22 +424,16 @@ rte_get_tx_ol_flag_list(uint64_t mask, char *buf, size_t buflen)
>>>> { PKT_TX_OUTER_IPV4, PKT_TX_OUTER_IPV4, NULL },
>>>> { PKT_TX_OUTER_IPV6, PKT_TX_OUTER_IPV6, NULL },
>>>> - { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> - { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK,
>>>> - "PKT_TX_TUNNEL_NONE" },
>>>> + { PKT_TX_TUNNEL_VXLAN, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_GRE, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_IPIP, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_GENEVE, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_MPLSINUDP, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_VXLAN_GPE, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_IP, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_TUNNEL_UDP, PKT_TX_TUNNEL_MASK, NULL },
>>>> + { PKT_TX_QINQ, PKT_TX_QINQ, NULL },
>>>> { PKT_TX_MACSEC, PKT_TX_MACSEC, NULL },
>>>> { PKT_TX_SEC_OFFLOAD, PKT_TX_SEC_OFFLOAD, NULL },
>>>> + { PKT_TX_UDP_SEG, PKT_TX_UDP_SEG, NULL },
>>>> };
>>>> const char *name;
>>>>
>>>
>>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'doc: clarify VLAN and QinQ Tx offload prerequisite' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (12 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'mbuf: fix offload flag name and list' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/tap: fix reported number of Tx packets' " Kevin Traynor
` (49 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Jerin Jacob; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 5a2b18e804d189922ce9b14a313fa735e24f3c34 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 16 Oct 2018 13:16:43 +0000
Subject: [PATCH] doc: clarify VLAN and QinQ Tx offload prerequisite
[ upstream commit 13ffe6059e36a54ee9285f7061d923b47d8ba79f ]
- Fix missing PKT_TX_VLAN mbuf.ol_flag and mbuf.vlan_tci
fields for Tx VLAN INSERT offload.
- Fix missing mbuf.vlan_tci_outer field for Tx QINQ INSERT offload.
- Rename deprecated PKT_TX_QINQ_PKT to PKT_TX_QINQ
Fixes: cba7f53b717d ("ethdev: introduce Tx queue offloads API")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
doc/guides/nics/features.rst | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
index a3b64c68c..bccc27f49 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
@@ -527,4 +527,5 @@ Supports VLAN offload to hardware.
* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_VLAN_STRIP,DEV_RX_OFFLOAD_VLAN_FILTER,DEV_RX_OFFLOAD_VLAN_EXTEND``.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_VLAN_INSERT``.
+* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_VLAN``, ``mbuf.vlan_tci``.
* **[implements] eth_dev_ops**: ``vlan_offload_set``.
* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.vlan_tci``.
@@ -544,5 +545,5 @@ Supports QinQ (queue in queue) offload.
* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_QINQ_STRIP``.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_QINQ_INSERT``.
-* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_QINQ_PKT``.
+* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_QINQ``, ``mbuf.vlan_tci_outer``.
* **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_QINQ_STRIPPED``, ``mbuf.vlan_tci``,
``mbuf.vlan_tci_outer``.
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.662190620 +0000
+++ 0015-doc-clarify-VLAN-and-QinQ-Tx-offload-prerequisite.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 13ffe6059e36a54ee9285f7061d923b47d8ba79f Mon Sep 17 00:00:00 2001
+From 5a2b18e804d189922ce9b14a313fa735e24f3c34 Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Tue, 16 Oct 2018 13:16:43 +0000
Subject: [PATCH] doc: clarify VLAN and QinQ Tx offload prerequisite
+[ upstream commit 13ffe6059e36a54ee9285f7061d923b47d8ba79f ]
+
- Fix missing PKT_TX_VLAN mbuf.ol_flag and mbuf.vlan_tci
fields for Tx VLAN INSERT offload.
@@ -11,7 +13,6 @@
- Rename deprecated PKT_TX_QINQ_PKT to PKT_TX_QINQ
Fixes: cba7f53b717d ("ethdev: introduce Tx queue offloads API")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
---
@@ -19,22 +20,22 @@
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/doc/guides/nics/features.rst b/doc/guides/nics/features.rst
-index a9604c1e1..3fa5cb745 100644
+index a3b64c68c..bccc27f49 100644
--- a/doc/guides/nics/features.rst
+++ b/doc/guides/nics/features.rst
-@@ -528,4 +528,5 @@ Supports VLAN offload to hardware.
+@@ -527,4 +527,5 @@ Supports VLAN offload to hardware.
* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_VLAN_STRIP,DEV_RX_OFFLOAD_VLAN_FILTER,DEV_RX_OFFLOAD_VLAN_EXTEND``.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_VLAN_INSERT``.
+* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_VLAN``, ``mbuf.vlan_tci``.
* **[implements] eth_dev_ops**: ``vlan_offload_set``.
- * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.ol_flags:PKT_RX_VLAN`` ``mbuf.vlan_tci``.
-@@ -545,5 +546,5 @@ Supports QinQ (queue in queue) offload.
+ * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.vlan_tci``.
+@@ -544,5 +545,5 @@ Supports QinQ (queue in queue) offload.
* **[uses] rte_eth_rxconf,rte_eth_rxmode**: ``offloads:DEV_RX_OFFLOAD_QINQ_STRIP``.
* **[uses] rte_eth_txconf,rte_eth_txmode**: ``offloads:DEV_TX_OFFLOAD_QINQ_INSERT``.
-* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_QINQ_PKT``.
+* **[uses] mbuf**: ``mbuf.ol_flags:PKT_TX_QINQ``, ``mbuf.vlan_tci_outer``.
- * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_QINQ_STRIPPED``, ``mbuf.ol_flags:PKT_RX_QINQ``,
- ``mbuf.ol_flags:PKT_RX_VLAN_STRIPPED``, ``mbuf.ol_flags:PKT_RX_VLAN``
+ * **[provides] mbuf**: ``mbuf.ol_flags:PKT_RX_QINQ_STRIPPED``, ``mbuf.vlan_tci``,
+ ``mbuf.vlan_tci_outer``.
--
2.19.0
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/tap: fix reported number of Tx packets' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (13 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: clarify VLAN and QinQ Tx offload prerequisite' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: fix physical port socket initialization' " Kevin Traynor
` (48 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Raslan Darawsheh; +Cc: Keith Wiles, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 9b0d69c4cbbac9dbd4090093d1e91d03d2004046 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland@mellanox.com>
Date: Wed, 10 Oct 2018 07:01:41 +0000
Subject: [PATCH] net/tap: fix reported number of Tx packets
[ upstream commit 9396ad3346720b424a10dcf6640c919e37a4fcf7 ]
When writev fails to send packets it doesn't update the
number of Tx packets, but it still num_tx is updated.
The value that should be returned is the actual number
of sent packets which is num_packets.
Fixes: 02f96a0a82d1 ("net/tap: add TUN/TAP device PMD")
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
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 feb92b48e..e05c7ba72 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
@@ -687,5 +687,5 @@ pmd_tx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
txq->stats.obytes += num_tx_bytes;
- return num_tx;
+ return num_packets;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.687616174 +0000
+++ 0016-net-tap-fix-reported-number-of-Tx-packets.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 9396ad3346720b424a10dcf6640c919e37a4fcf7 Mon Sep 17 00:00:00 2001
+From 9b0d69c4cbbac9dbd4090093d1e91d03d2004046 Mon Sep 17 00:00:00 2001
From: Raslan Darawsheh <rasland@mellanox.com>
Date: Wed, 10 Oct 2018 07:01:41 +0000
Subject: [PATCH] net/tap: fix reported number of Tx packets
+[ upstream commit 9396ad3346720b424a10dcf6640c919e37a4fcf7 ]
+
When writev fails to send packets it doesn't update the
number of Tx packets, but it still num_tx is updated.
@@ -10,7 +12,6 @@
of sent packets which is num_packets.
Fixes: 02f96a0a82d1 ("net/tap: add TUN/TAP device PMD")
-CC: stable@dpdk.org
Signed-off-by: Raslan Darawsheh <rasland@mellanox.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
@@ -19,10 +20,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 84aaf2410..77f26940b 100644
+index feb92b48e..e05c7ba72 100644
--- a/drivers/net/tap/rte_eth_tap.c
+++ b/drivers/net/tap/rte_eth_tap.c
-@@ -686,5 +686,5 @@ pmd_tx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
+@@ -687,5 +687,5 @@ pmd_tx_burst(void *queue, struct rte_mbuf **bufs, uint16_t nb_pkts)
txq->stats.obytes += num_tx_bytes;
- return num_tx;
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix physical port socket initialization' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (14 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/tap: fix reported number of Tx packets' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'mem: improve segment list preallocation' " Kevin Traynor
` (47 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Phil Yang; +Cc: Gavin Hu, Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From c14e9b0d8894c9e8ad6bdf2928f73329ca8724b7 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 6808415f3..b64c8f270 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
@@ -514,7 +514,19 @@ set_default_fwd_ports_config(void)
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.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.714567236 +0000
+++ 0017-app-testpmd-fix-physical-port-socket-initialization.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From effdb8bbb018bd8a611b2ac86a15739f67ea7cbc Mon Sep 17 00:00:00 2001
+From c14e9b0d8894c9e8ad6bdf2928f73329ca8724b7 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 6808415f3..b64c8f270 100644
--- a/app/test-pmd/testpmd.c
+++ b/app/test-pmd/testpmd.c
-@@ -566,7 +566,19 @@ set_default_fwd_ports_config(void)
+@@ -514,7 +514,19 @@ set_default_fwd_ports_config(void)
int i = 0;
- RTE_ETH_FOREACH_DEV(pt_id)
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'mem: improve segment list preallocation' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (15 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: fix physical port socket initialization' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-26 11:16 ` Burakov, Anatoly
2018-11-22 16:49 ` [dpdk-stable] patch 'mem: fix resource leak' " Kevin Traynor
` (46 subsequent siblings)
63 siblings, 1 reply; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 6d552c83eacba7be4b4f2efbafd58724e07e2330 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Fri, 5 Oct 2018 09:29:44 +0100
Subject: [PATCH] mem: improve segment list preallocation
[ upstream commit 1dd342d0fdc4f72102f0b48c89b6a39f029004fe ]
Current code to preallocate segment lists is trying to do
everything in one go, and thus ends up being convoluted,
hard to understand, and, most importantly, does not scale beyond
initial assumptions about number of NUMA nodes and number of
page sizes, and therefore has issues on some configurations.
Instead of fixing these issues in the existing code, simply
rewrite it to be slightly less clever but much more logical, and
provide ample comments to explain exactly what is going on.
We cannot use the same approach for 32-bit code because the
limitations of the target dictate current socket-centric
approach rather than type-centric approach we use on 64-bit
target, so 32-bit code is left unmodified. FreeBSD doesn't
support NUMA so there's no complexity involved there, and thus
its code is much more readable and not worth changing.
Fixes: 1d406458db47 ("mem: make segment preallocation OS-specific")
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_eal/linuxapp/eal/eal_memory.c | 179 +++++++++++++++++------
1 file changed, 137 insertions(+), 42 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
index 6131bfde2..cc2d3fb69 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
@@ -2096,7 +2096,13 @@ memseg_primary_init(void)
{
struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
- int i, socket_id, hpi_idx, msl_idx = 0;
+ struct memtype {
+ uint64_t page_sz;
+ int socket_id;
+ } *memtypes = NULL;
+ int i, hpi_idx, msl_idx;
struct rte_memseg_list *msl;
- uint64_t max_mem, total_mem;
+ uint64_t max_mem, max_mem_per_type;
+ unsigned int max_seglists_per_type;
+ unsigned int n_memtypes, cur_type;
/* no-huge does not need this at all */
@@ -2104,8 +2110,49 @@ memseg_primary_init(void)
return 0;
- max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
- total_mem = 0;
+ /*
+ * figuring out amount of memory we're going to have is a long and very
+ * involved process. the basic element we're operating with is a memory
+ * type, defined as a combination of NUMA node ID and page size (so that
+ * e.g. 2 sockets with 2 page sizes yield 4 memory types in total).
+ *
+ * deciding amount of memory going towards each memory type is a
+ * balancing act between maximum segments per type, maximum memory per
+ * type, and number of detected NUMA nodes. the goal is to make sure
+ * each memory type gets at least one memseg list.
+ *
+ * the total amount of memory is limited by RTE_MAX_MEM_MB value.
+ *
+ * the total amount of memory per type is limited by either
+ * RTE_MAX_MEM_MB_PER_TYPE, or by RTE_MAX_MEM_MB divided by the number
+ * of detected NUMA nodes. additionally, maximum number of segments per
+ * type is also limited by RTE_MAX_MEMSEG_PER_TYPE. this is because for
+ * smaller page sizes, it can take hundreds of thousands of segments to
+ * reach the above specified per-type memory limits.
+ *
+ * additionally, each type may have multiple memseg lists associated
+ * with it, each limited by either RTE_MAX_MEM_MB_PER_LIST for bigger
+ * page sizes, or RTE_MAX_MEMSEG_PER_LIST segments for smaller ones.
+ *
+ * the number of memseg lists per type is decided based on the above
+ * limits, and also taking number of detected NUMA nodes, to make sure
+ * that we don't run out of memseg lists before we populate all NUMA
+ * nodes with memory.
+ *
+ * we do this in three stages. first, we collect the number of types.
+ * then, we figure out memory constraints and populate the list of
+ * would-be memseg lists. then, we go ahead and allocate the memseg
+ * lists.
+ */
- /* create memseg lists */
+ /* create space for mem types */
+ n_memtypes = internal_config.num_hugepage_sizes * rte_socket_count();
+ memtypes = calloc(n_memtypes, sizeof(*memtypes));
+ if (memtypes == NULL) {
+ RTE_LOG(ERR, EAL, "Cannot allocate space for memory types\n");
+ return -1;
+ }
+
+ /* populate mem types */
+ cur_type = 0;
for (hpi_idx = 0; hpi_idx < (int) internal_config.num_hugepage_sizes;
hpi_idx++) {
@@ -2116,9 +2163,6 @@ memseg_primary_init(void)
hugepage_sz = hpi->hugepage_sz;
- for (i = 0; i < (int) rte_socket_count(); i++) {
- uint64_t max_type_mem, total_type_mem = 0;
- int type_msl_idx, max_segs, total_segs = 0;
-
- socket_id = rte_socket_id_by_idx(i);
+ for (i = 0; i < (int) rte_socket_count(); i++, cur_type++) {
+ int socket_id = rte_socket_id_by_idx(i);
#ifndef RTE_EAL_NUMA_AWARE_HUGEPAGES
@@ -2126,47 +2170,98 @@ memseg_primary_init(void)
break;
#endif
+ memtypes[cur_type].page_sz = hugepage_sz;
+ memtypes[cur_type].socket_id = socket_id;
- if (total_mem >= max_mem)
- break;
+ RTE_LOG(DEBUG, EAL, "Detected memory type: "
+ "socket_id:%u hugepage_sz:%" PRIu64 "\n",
+ socket_id, hugepage_sz);
+ }
+ }
- max_type_mem = RTE_MIN(max_mem - total_mem,
- (uint64_t)RTE_MAX_MEM_MB_PER_TYPE << 20);
- max_segs = RTE_MAX_MEMSEG_PER_TYPE;
+ /* set up limits for types */
+ max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
+ max_mem_per_type = RTE_MIN((uint64_t)RTE_MAX_MEM_MB_PER_TYPE << 20,
+ max_mem / n_memtypes);
+ /*
+ * limit maximum number of segment lists per type to ensure there's
+ * space for memseg lists for all NUMA nodes with all page sizes
+ */
+ max_seglists_per_type = RTE_MAX_MEMSEG_LISTS / n_memtypes;
- type_msl_idx = 0;
- while (total_type_mem < max_type_mem &&
- total_segs < max_segs) {
- uint64_t cur_max_mem, cur_mem;
- unsigned int n_segs;
+ if (max_seglists_per_type == 0) {
+ RTE_LOG(ERR, EAL, "Cannot accommodate all memory types, please increase %s\n",
+ RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
+ return -1;
+ }
- if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
- RTE_LOG(ERR, EAL,
- "No more space in memseg lists, please increase %s\n",
- RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
- return -1;
- }
+ /* go through all mem types and create segment lists */
+ msl_idx = 0;
+ for (cur_type = 0; cur_type < n_memtypes; cur_type++) {
+ unsigned int cur_seglist, n_seglists, n_segs;
+ unsigned int max_segs_per_type, max_segs_per_list;
+ struct memtype *type = &memtypes[cur_type];
+ uint64_t max_mem_per_list, pagesz;
+ int socket_id;
- msl = &mcfg->memsegs[msl_idx++];
+ pagesz = type->page_sz;
+ socket_id = type->socket_id;
- cur_max_mem = max_type_mem - total_type_mem;
+ /*
+ * we need to create segment lists for this type. we must take
+ * into account the following things:
+ *
+ * 1. total amount of memory we can use for this memory type
+ * 2. total amount of memory per memseg list allowed
+ * 3. number of segments needed to fit the amount of memory
+ * 4. number of segments allowed per type
+ * 5. number of segments allowed per memseg list
+ * 6. number of memseg lists we are allowed to take up
+ */
- cur_mem = get_mem_amount(hugepage_sz,
- cur_max_mem);
- n_segs = cur_mem / hugepage_sz;
+ /* calculate how much segments we will need in total */
+ max_segs_per_type = max_mem_per_type / pagesz;
+ /* limit number of segments to maximum allowed per type */
+ max_segs_per_type = RTE_MIN(max_segs_per_type,
+ (unsigned int)RTE_MAX_MEMSEG_PER_TYPE);
+ /* limit number of segments to maximum allowed per list */
+ max_segs_per_list = RTE_MIN(max_segs_per_type,
+ (unsigned int)RTE_MAX_MEMSEG_PER_LIST);
- if (alloc_memseg_list(msl, hugepage_sz, n_segs,
- socket_id, type_msl_idx))
- return -1;
+ /* calculate how much memory we can have per segment list */
+ max_mem_per_list = RTE_MIN(max_segs_per_list * pagesz,
+ (uint64_t)RTE_MAX_MEM_MB_PER_LIST << 20);
- total_segs += msl->memseg_arr.len;
- total_type_mem = total_segs * hugepage_sz;
- type_msl_idx++;
+ /* calculate how many segments each segment list will have */
+ n_segs = RTE_MIN(max_segs_per_list, max_mem_per_list / pagesz);
- if (alloc_va_space(msl)) {
- RTE_LOG(ERR, EAL, "Cannot allocate VA space for memseg list\n");
- return -1;
- }
+ /* calculate how many segment lists we can have */
+ n_seglists = RTE_MIN(max_segs_per_type / n_segs,
+ max_mem_per_type / max_mem_per_list);
+
+ /* limit number of segment lists according to our maximum */
+ n_seglists = RTE_MIN(n_seglists, max_seglists_per_type);
+
+ RTE_LOG(DEBUG, EAL, "Creating %i segment lists: "
+ "n_segs:%i socket_id:%i hugepage_sz:%" PRIu64 "\n",
+ n_seglists, n_segs, socket_id, pagesz);
+
+ /* create all segment lists */
+ for (cur_seglist = 0; cur_seglist < n_seglists; cur_seglist++) {
+ if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
+ RTE_LOG(ERR, EAL,
+ "No more space in memseg lists, please increase %s\n",
+ RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
+ return -1;
+ }
+ msl = &mcfg->memsegs[msl_idx++];
+
+ if (alloc_memseg_list(msl, pagesz, n_segs,
+ socket_id, cur_seglist))
+ return -1;
+
+ if (alloc_va_space(msl)) {
+ RTE_LOG(ERR, EAL, "Cannot allocate VA space for memseg list\n");
+ return -1;
}
- total_mem += total_type_mem;
}
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.741839268 +0000
+++ 0018-mem-improve-segment-list-preallocation.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 1dd342d0fdc4f72102f0b48c89b6a39f029004fe Mon Sep 17 00:00:00 2001
+From 6d552c83eacba7be4b4f2efbafd58724e07e2330 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Fri, 5 Oct 2018 09:29:44 +0100
Subject: [PATCH] mem: improve segment list preallocation
+[ upstream commit 1dd342d0fdc4f72102f0b48c89b6a39f029004fe ]
+
Current code to preallocate segment lists is trying to do
everything in one go, and thus ends up being convoluted,
hard to understand, and, most importantly, does not scale beyond
@@ -21,7 +23,6 @@
its code is much more readable and not worth changing.
Fixes: 1d406458db47 ("mem: make segment preallocation OS-specific")
-Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
@@ -29,10 +30,10 @@
1 file changed, 137 insertions(+), 42 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
-index 04f264818..19e686eb6 100644
+index 6131bfde2..cc2d3fb69 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
-@@ -2132,7 +2132,13 @@ memseg_primary_init(void)
+@@ -2096,7 +2096,13 @@ memseg_primary_init(void)
{
struct rte_mem_config *mcfg = rte_eal_get_configuration()->mem_config;
- int i, socket_id, hpi_idx, msl_idx = 0;
@@ -48,7 +49,7 @@
+ unsigned int n_memtypes, cur_type;
/* no-huge does not need this at all */
-@@ -2140,8 +2146,49 @@ memseg_primary_init(void)
+@@ -2104,8 +2110,49 @@ memseg_primary_init(void)
return 0;
- max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
@@ -101,7 +102,7 @@
+ cur_type = 0;
for (hpi_idx = 0; hpi_idx < (int) internal_config.num_hugepage_sizes;
hpi_idx++) {
-@@ -2152,9 +2199,6 @@ memseg_primary_init(void)
+@@ -2116,9 +2163,6 @@ memseg_primary_init(void)
hugepage_sz = hpi->hugepage_sz;
- for (i = 0; i < (int) rte_socket_count(); i++) {
@@ -113,7 +114,7 @@
+ int socket_id = rte_socket_id_by_idx(i);
#ifndef RTE_EAL_NUMA_AWARE_HUGEPAGES
-@@ -2162,47 +2206,98 @@ memseg_primary_init(void)
+@@ -2126,47 +2170,98 @@ memseg_primary_init(void)
break;
#endif
+ memtypes[cur_type].page_sz = hugepage_sz;
^ permalink raw reply [flat|nested] 71+ messages in thread
* Re: [dpdk-stable] patch 'mem: improve segment list preallocation' has been queued to stable release 18.08.1
2018-11-22 16:49 ` [dpdk-stable] patch 'mem: improve segment list preallocation' " Kevin Traynor
@ 2018-11-26 11:16 ` Burakov, Anatoly
2018-11-26 11:36 ` Kevin Traynor
0 siblings, 1 reply; 71+ messages in thread
From: Burakov, Anatoly @ 2018-11-26 11:16 UTC (permalink / raw)
To: Kevin Traynor; +Cc: dpdk stable
Hi Kevin,
FYI
http://patches.dpdk.org/patch/48338/
Thanks,
Anatoly
> -----Original Message-----
> From: Kevin Traynor [mailto:ktraynor@redhat.com]
> Sent: Thursday, November 22, 2018 4:49 PM
> To: Burakov, Anatoly <anatoly.burakov@intel.com>
> Cc: dpdk stable <stable@dpdk.org>
> Subject: patch 'mem: improve segment list preallocation' has been queued
> to stable release 18.08.1
>
> Hi,
>
> FYI, your patch has been queued to stable release 18.08.1
>
> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
> It will be pushed if I get no objections before 11/28/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.
>
> Kevin Traynor
>
> ---
> From 6d552c83eacba7be4b4f2efbafd58724e07e2330 Mon Sep 17 00:00:00
> 2001
> From: Anatoly Burakov <anatoly.burakov@intel.com>
> Date: Fri, 5 Oct 2018 09:29:44 +0100
> Subject: [PATCH] mem: improve segment list preallocation
>
> [ upstream commit 1dd342d0fdc4f72102f0b48c89b6a39f029004fe ]
>
> Current code to preallocate segment lists is trying to do everything in one go,
> and thus ends up being convoluted, hard to understand, and, most
> importantly, does not scale beyond initial assumptions about number of
> NUMA nodes and number of page sizes, and therefore has issues on some
> configurations.
>
> Instead of fixing these issues in the existing code, simply rewrite it to be
> slightly less clever but much more logical, and provide ample comments to
> explain exactly what is going on.
>
> We cannot use the same approach for 32-bit code because the limitations of
> the target dictate current socket-centric approach rather than type-centric
> approach we use on 64-bit target, so 32-bit code is left unmodified. FreeBSD
> doesn't support NUMA so there's no complexity involved there, and thus its
> code is much more readable and not worth changing.
>
> Fixes: 1d406458db47 ("mem: make segment preallocation OS-specific")
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> lib/librte_eal/linuxapp/eal/eal_memory.c | 179 +++++++++++++++++------
> 1 file changed, 137 insertions(+), 42 deletions(-)
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c
> b/lib/librte_eal/linuxapp/eal/eal_memory.c
> index 6131bfde2..cc2d3fb69 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
> @@ -2096,7 +2096,13 @@ memseg_primary_init(void) {
> struct rte_mem_config *mcfg = rte_eal_get_configuration()-
> >mem_config;
> - int i, socket_id, hpi_idx, msl_idx = 0;
> + struct memtype {
> + uint64_t page_sz;
> + int socket_id;
> + } *memtypes = NULL;
> + int i, hpi_idx, msl_idx;
> struct rte_memseg_list *msl;
> - uint64_t max_mem, total_mem;
> + uint64_t max_mem, max_mem_per_type;
> + unsigned int max_seglists_per_type;
> + unsigned int n_memtypes, cur_type;
>
> /* no-huge does not need this at all */ @@ -2104,8 +2110,49 @@
> memseg_primary_init(void)
> return 0;
>
> - max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
> - total_mem = 0;
> + /*
> + * figuring out amount of memory we're going to have is a long and
> very
> + * involved process. the basic element we're operating with is a
> memory
> + * type, defined as a combination of NUMA node ID and page size (so
> that
> + * e.g. 2 sockets with 2 page sizes yield 4 memory types in total).
> + *
> + * deciding amount of memory going towards each memory type is a
> + * balancing act between maximum segments per type, maximum
> memory per
> + * type, and number of detected NUMA nodes. the goal is to make
> sure
> + * each memory type gets at least one memseg list.
> + *
> + * the total amount of memory is limited by RTE_MAX_MEM_MB
> value.
> + *
> + * the total amount of memory per type is limited by either
> + * RTE_MAX_MEM_MB_PER_TYPE, or by RTE_MAX_MEM_MB
> divided by the number
> + * of detected NUMA nodes. additionally, maximum number of
> segments per
> + * type is also limited by RTE_MAX_MEMSEG_PER_TYPE. this is
> because for
> + * smaller page sizes, it can take hundreds of thousands of segments
> to
> + * reach the above specified per-type memory limits.
> + *
> + * additionally, each type may have multiple memseg lists associated
> + * with it, each limited by either RTE_MAX_MEM_MB_PER_LIST for
> bigger
> + * page sizes, or RTE_MAX_MEMSEG_PER_LIST segments for smaller
> ones.
> + *
> + * the number of memseg lists per type is decided based on the
> above
> + * limits, and also taking number of detected NUMA nodes, to make
> sure
> + * that we don't run out of memseg lists before we populate all
> NUMA
> + * nodes with memory.
> + *
> + * we do this in three stages. first, we collect the number of types.
> + * then, we figure out memory constraints and populate the list of
> + * would-be memseg lists. then, we go ahead and allocate the
> memseg
> + * lists.
> + */
>
> - /* create memseg lists */
> + /* create space for mem types */
> + n_memtypes = internal_config.num_hugepage_sizes *
> rte_socket_count();
> + memtypes = calloc(n_memtypes, sizeof(*memtypes));
> + if (memtypes == NULL) {
> + RTE_LOG(ERR, EAL, "Cannot allocate space for memory
> types\n");
> + return -1;
> + }
> +
> + /* populate mem types */
> + cur_type = 0;
> for (hpi_idx = 0; hpi_idx < (int) internal_config.num_hugepage_sizes;
> hpi_idx++) {
> @@ -2116,9 +2163,6 @@ memseg_primary_init(void)
> hugepage_sz = hpi->hugepage_sz;
>
> - for (i = 0; i < (int) rte_socket_count(); i++) {
> - uint64_t max_type_mem, total_type_mem = 0;
> - int type_msl_idx, max_segs, total_segs = 0;
> -
> - socket_id = rte_socket_id_by_idx(i);
> + for (i = 0; i < (int) rte_socket_count(); i++, cur_type++) {
> + int socket_id = rte_socket_id_by_idx(i);
>
> #ifndef RTE_EAL_NUMA_AWARE_HUGEPAGES
> @@ -2126,47 +2170,98 @@ memseg_primary_init(void)
> break;
> #endif
> + memtypes[cur_type].page_sz = hugepage_sz;
> + memtypes[cur_type].socket_id = socket_id;
>
> - if (total_mem >= max_mem)
> - break;
> + RTE_LOG(DEBUG, EAL, "Detected memory type: "
> + "socket_id:%u hugepage_sz:%" PRIu64 "\n",
> + socket_id, hugepage_sz);
> + }
> + }
>
> - max_type_mem = RTE_MIN(max_mem -
> total_mem,
> - (uint64_t)RTE_MAX_MEM_MB_PER_TYPE <<
> 20);
> - max_segs = RTE_MAX_MEMSEG_PER_TYPE;
> + /* set up limits for types */
> + max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
> + max_mem_per_type =
> RTE_MIN((uint64_t)RTE_MAX_MEM_MB_PER_TYPE << 20,
> + max_mem / n_memtypes);
> + /*
> + * limit maximum number of segment lists per type to ensure there's
> + * space for memseg lists for all NUMA nodes with all page sizes
> + */
> + max_seglists_per_type = RTE_MAX_MEMSEG_LISTS / n_memtypes;
>
> - type_msl_idx = 0;
> - while (total_type_mem < max_type_mem &&
> - total_segs < max_segs) {
> - uint64_t cur_max_mem, cur_mem;
> - unsigned int n_segs;
> + if (max_seglists_per_type == 0) {
> + RTE_LOG(ERR, EAL, "Cannot accommodate all memory types,
> please increase %s\n",
> + RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
> + return -1;
> + }
>
> - if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
> - RTE_LOG(ERR, EAL,
> - "No more space in memseg
> lists, please increase %s\n",
> -
> RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
> - return -1;
> - }
> + /* go through all mem types and create segment lists */
> + msl_idx = 0;
> + for (cur_type = 0; cur_type < n_memtypes; cur_type++) {
> + unsigned int cur_seglist, n_seglists, n_segs;
> + unsigned int max_segs_per_type, max_segs_per_list;
> + struct memtype *type = &memtypes[cur_type];
> + uint64_t max_mem_per_list, pagesz;
> + int socket_id;
>
> - msl = &mcfg->memsegs[msl_idx++];
> + pagesz = type->page_sz;
> + socket_id = type->socket_id;
>
> - cur_max_mem = max_type_mem -
> total_type_mem;
> + /*
> + * we need to create segment lists for this type. we must
> take
> + * into account the following things:
> + *
> + * 1. total amount of memory we can use for this memory
> type
> + * 2. total amount of memory per memseg list allowed
> + * 3. number of segments needed to fit the amount of
> memory
> + * 4. number of segments allowed per type
> + * 5. number of segments allowed per memseg list
> + * 6. number of memseg lists we are allowed to take up
> + */
>
> - cur_mem =
> get_mem_amount(hugepage_sz,
> - cur_max_mem);
> - n_segs = cur_mem / hugepage_sz;
> + /* calculate how much segments we will need in total */
> + max_segs_per_type = max_mem_per_type / pagesz;
> + /* limit number of segments to maximum allowed per type
> */
> + max_segs_per_type = RTE_MIN(max_segs_per_type,
> + (unsigned
> int)RTE_MAX_MEMSEG_PER_TYPE);
> + /* limit number of segments to maximum allowed per list */
> + max_segs_per_list = RTE_MIN(max_segs_per_type,
> + (unsigned
> int)RTE_MAX_MEMSEG_PER_LIST);
>
> - if (alloc_memseg_list(msl, hugepage_sz,
> n_segs,
> - socket_id, type_msl_idx))
> - return -1;
> + /* calculate how much memory we can have per segment list
> */
> + max_mem_per_list = RTE_MIN(max_segs_per_list * pagesz,
> + (uint64_t)RTE_MAX_MEM_MB_PER_LIST <<
> 20);
>
> - total_segs += msl->memseg_arr.len;
> - total_type_mem = total_segs *
> hugepage_sz;
> - type_msl_idx++;
> + /* calculate how many segments each segment list will have
> */
> + n_segs = RTE_MIN(max_segs_per_list, max_mem_per_list /
> pagesz);
>
> - if (alloc_va_space(msl)) {
> - RTE_LOG(ERR, EAL, "Cannot allocate
> VA space for memseg list\n");
> - return -1;
> - }
> + /* calculate how many segment lists we can have */
> + n_seglists = RTE_MIN(max_segs_per_type / n_segs,
> + max_mem_per_type / max_mem_per_list);
> +
> + /* limit number of segment lists according to our maximum
> */
> + n_seglists = RTE_MIN(n_seglists, max_seglists_per_type);
> +
> + RTE_LOG(DEBUG, EAL, "Creating %i segment lists: "
> + "n_segs:%i socket_id:%i hugepage_sz:%"
> PRIu64 "\n",
> + n_seglists, n_segs, socket_id, pagesz);
> +
> + /* create all segment lists */
> + for (cur_seglist = 0; cur_seglist < n_seglists; cur_seglist++) {
> + if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
> + RTE_LOG(ERR, EAL,
> + "No more space in memseg lists,
> please increase %s\n",
> +
> RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
> + return -1;
> + }
> + msl = &mcfg->memsegs[msl_idx++];
> +
> + if (alloc_memseg_list(msl, pagesz, n_segs,
> + socket_id, cur_seglist))
> + return -1;
> +
> + if (alloc_va_space(msl)) {
> + RTE_LOG(ERR, EAL, "Cannot allocate VA
> space for memseg list\n");
> + return -1;
> }
> - total_mem += total_type_mem;
> }
> }
> --
> 2.19.0
>
> ---
> Diff of the applied patch vs upstream commit (please double-check if non-
> empty:
> ---
> --- - 2018-11-22 16:47:32.741839268 +0000
> +++ 0018-mem-improve-segment-list-preallocation.patch 2018-11-22
> 16:47:32.000000000 +0000
> @@ -1,8 +1,10 @@
> -From 1dd342d0fdc4f72102f0b48c89b6a39f029004fe Mon Sep 17 00:00:00
> 2001
> +From 6d552c83eacba7be4b4f2efbafd58724e07e2330 Mon Sep 17 00:00:00
> 2001
> From: Anatoly Burakov <anatoly.burakov@intel.com>
> Date: Fri, 5 Oct 2018 09:29:44 +0100
> Subject: [PATCH] mem: improve segment list preallocation
>
> +[ upstream commit 1dd342d0fdc4f72102f0b48c89b6a39f029004fe ]
> +
> Current code to preallocate segment lists is trying to do everything in one
> go, and thus ends up being convoluted, hard to understand, and, most
> importantly, does not scale beyond @@ -21,7 +23,6 @@ its code is much
> more readable and not worth changing.
>
> Fixes: 1d406458db47 ("mem: make segment preallocation OS-specific")
> -Cc: stable@dpdk.org
>
> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
> ---
> @@ -29,10 +30,10 @@
> 1 file changed, 137 insertions(+), 42 deletions(-)
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c
> b/lib/librte_eal/linuxapp/eal/eal_memory.c
> -index 04f264818..19e686eb6 100644
> +index 6131bfde2..cc2d3fb69 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
> -@@ -2132,7 +2132,13 @@ memseg_primary_init(void)
> +@@ -2096,7 +2096,13 @@ memseg_primary_init(void)
> {
> struct rte_mem_config *mcfg = rte_eal_get_configuration()-
> >mem_config;
> - int i, socket_id, hpi_idx, msl_idx = 0;
> @@ -48,7 +49,7 @@
> + unsigned int n_memtypes, cur_type;
>
> /* no-huge does not need this at all */ -@@ -2140,8 +2146,49 @@
> memseg_primary_init(void)
> +@@ -2104,8 +2110,49 @@ memseg_primary_init(void)
> return 0;
>
> - max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
> @@ -101,7 +102,7 @@
> + cur_type = 0;
> for (hpi_idx = 0; hpi_idx < (int) internal_config.num_hugepage_sizes;
> hpi_idx++) {
> -@@ -2152,9 +2199,6 @@ memseg_primary_init(void)
> +@@ -2116,9 +2163,6 @@ memseg_primary_init(void)
> hugepage_sz = hpi->hugepage_sz;
>
> - for (i = 0; i < (int) rte_socket_count(); i++) {
> @@ -113,7 +114,7 @@
> + int socket_id = rte_socket_id_by_idx(i);
>
> #ifndef RTE_EAL_NUMA_AWARE_HUGEPAGES
> -@@ -2162,47 +2206,98 @@ memseg_primary_init(void)
> +@@ -2126,47 +2170,98 @@ memseg_primary_init(void)
> break;
> #endif
> + memtypes[cur_type].page_sz = hugepage_sz;
^ permalink raw reply [flat|nested] 71+ messages in thread
* Re: [dpdk-stable] patch 'mem: improve segment list preallocation' has been queued to stable release 18.08.1
2018-11-26 11:16 ` Burakov, Anatoly
@ 2018-11-26 11:36 ` Kevin Traynor
0 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-26 11:36 UTC (permalink / raw)
To: Burakov, Anatoly; +Cc: dpdk stable
On 11/26/2018 11:16 AM, Burakov, Anatoly wrote:
> Hi Kevin,
>
> FYI
>
> http://patches.dpdk.org/patch/48338/
>
Thanks Anatoly. There's a couple of more "batches of patches" to do, so
will make sure it's included (after it's applied on dpdk).
> Thanks,
> Anatoly
>
>
>> -----Original Message-----
>> From: Kevin Traynor [mailto:ktraynor@redhat.com]
>> Sent: Thursday, November 22, 2018 4:49 PM
>> To: Burakov, Anatoly <anatoly.burakov@intel.com>
>> Cc: dpdk stable <stable@dpdk.org>
>> Subject: patch 'mem: improve segment list preallocation' has been queued
>> to stable release 18.08.1
>>
>> Hi,
>>
>> FYI, your patch has been queued to stable release 18.08.1
>>
>> Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
>> It will be pushed if I get no objections before 11/28/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.
>>
>> Kevin Traynor
>>
>> ---
>> From 6d552c83eacba7be4b4f2efbafd58724e07e2330 Mon Sep 17 00:00:00
>> 2001
>> From: Anatoly Burakov <anatoly.burakov@intel.com>
>> Date: Fri, 5 Oct 2018 09:29:44 +0100
>> Subject: [PATCH] mem: improve segment list preallocation
>>
>> [ upstream commit 1dd342d0fdc4f72102f0b48c89b6a39f029004fe ]
>>
>> Current code to preallocate segment lists is trying to do everything in one go,
>> and thus ends up being convoluted, hard to understand, and, most
>> importantly, does not scale beyond initial assumptions about number of
>> NUMA nodes and number of page sizes, and therefore has issues on some
>> configurations.
>>
>> Instead of fixing these issues in the existing code, simply rewrite it to be
>> slightly less clever but much more logical, and provide ample comments to
>> explain exactly what is going on.
>>
>> We cannot use the same approach for 32-bit code because the limitations of
>> the target dictate current socket-centric approach rather than type-centric
>> approach we use on 64-bit target, so 32-bit code is left unmodified. FreeBSD
>> doesn't support NUMA so there's no complexity involved there, and thus its
>> code is much more readable and not worth changing.
>>
>> Fixes: 1d406458db47 ("mem: make segment preallocation OS-specific")
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>> lib/librte_eal/linuxapp/eal/eal_memory.c | 179 +++++++++++++++++------
>> 1 file changed, 137 insertions(+), 42 deletions(-)
>>
>> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c
>> b/lib/librte_eal/linuxapp/eal/eal_memory.c
>> index 6131bfde2..cc2d3fb69 100644
>> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
>> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
>> @@ -2096,7 +2096,13 @@ memseg_primary_init(void) {
>> struct rte_mem_config *mcfg = rte_eal_get_configuration()-
>>> mem_config;
>> - int i, socket_id, hpi_idx, msl_idx = 0;
>> + struct memtype {
>> + uint64_t page_sz;
>> + int socket_id;
>> + } *memtypes = NULL;
>> + int i, hpi_idx, msl_idx;
>> struct rte_memseg_list *msl;
>> - uint64_t max_mem, total_mem;
>> + uint64_t max_mem, max_mem_per_type;
>> + unsigned int max_seglists_per_type;
>> + unsigned int n_memtypes, cur_type;
>>
>> /* no-huge does not need this at all */ @@ -2104,8 +2110,49 @@
>> memseg_primary_init(void)
>> return 0;
>>
>> - max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
>> - total_mem = 0;
>> + /*
>> + * figuring out amount of memory we're going to have is a long and
>> very
>> + * involved process. the basic element we're operating with is a
>> memory
>> + * type, defined as a combination of NUMA node ID and page size (so
>> that
>> + * e.g. 2 sockets with 2 page sizes yield 4 memory types in total).
>> + *
>> + * deciding amount of memory going towards each memory type is a
>> + * balancing act between maximum segments per type, maximum
>> memory per
>> + * type, and number of detected NUMA nodes. the goal is to make
>> sure
>> + * each memory type gets at least one memseg list.
>> + *
>> + * the total amount of memory is limited by RTE_MAX_MEM_MB
>> value.
>> + *
>> + * the total amount of memory per type is limited by either
>> + * RTE_MAX_MEM_MB_PER_TYPE, or by RTE_MAX_MEM_MB
>> divided by the number
>> + * of detected NUMA nodes. additionally, maximum number of
>> segments per
>> + * type is also limited by RTE_MAX_MEMSEG_PER_TYPE. this is
>> because for
>> + * smaller page sizes, it can take hundreds of thousands of segments
>> to
>> + * reach the above specified per-type memory limits.
>> + *
>> + * additionally, each type may have multiple memseg lists associated
>> + * with it, each limited by either RTE_MAX_MEM_MB_PER_LIST for
>> bigger
>> + * page sizes, or RTE_MAX_MEMSEG_PER_LIST segments for smaller
>> ones.
>> + *
>> + * the number of memseg lists per type is decided based on the
>> above
>> + * limits, and also taking number of detected NUMA nodes, to make
>> sure
>> + * that we don't run out of memseg lists before we populate all
>> NUMA
>> + * nodes with memory.
>> + *
>> + * we do this in three stages. first, we collect the number of types.
>> + * then, we figure out memory constraints and populate the list of
>> + * would-be memseg lists. then, we go ahead and allocate the
>> memseg
>> + * lists.
>> + */
>>
>> - /* create memseg lists */
>> + /* create space for mem types */
>> + n_memtypes = internal_config.num_hugepage_sizes *
>> rte_socket_count();
>> + memtypes = calloc(n_memtypes, sizeof(*memtypes));
>> + if (memtypes == NULL) {
>> + RTE_LOG(ERR, EAL, "Cannot allocate space for memory
>> types\n");
>> + return -1;
>> + }
>> +
>> + /* populate mem types */
>> + cur_type = 0;
>> for (hpi_idx = 0; hpi_idx < (int) internal_config.num_hugepage_sizes;
>> hpi_idx++) {
>> @@ -2116,9 +2163,6 @@ memseg_primary_init(void)
>> hugepage_sz = hpi->hugepage_sz;
>>
>> - for (i = 0; i < (int) rte_socket_count(); i++) {
>> - uint64_t max_type_mem, total_type_mem = 0;
>> - int type_msl_idx, max_segs, total_segs = 0;
>> -
>> - socket_id = rte_socket_id_by_idx(i);
>> + for (i = 0; i < (int) rte_socket_count(); i++, cur_type++) {
>> + int socket_id = rte_socket_id_by_idx(i);
>>
>> #ifndef RTE_EAL_NUMA_AWARE_HUGEPAGES
>> @@ -2126,47 +2170,98 @@ memseg_primary_init(void)
>> break;
>> #endif
>> + memtypes[cur_type].page_sz = hugepage_sz;
>> + memtypes[cur_type].socket_id = socket_id;
>>
>> - if (total_mem >= max_mem)
>> - break;
>> + RTE_LOG(DEBUG, EAL, "Detected memory type: "
>> + "socket_id:%u hugepage_sz:%" PRIu64 "\n",
>> + socket_id, hugepage_sz);
>> + }
>> + }
>>
>> - max_type_mem = RTE_MIN(max_mem -
>> total_mem,
>> - (uint64_t)RTE_MAX_MEM_MB_PER_TYPE <<
>> 20);
>> - max_segs = RTE_MAX_MEMSEG_PER_TYPE;
>> + /* set up limits for types */
>> + max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
>> + max_mem_per_type =
>> RTE_MIN((uint64_t)RTE_MAX_MEM_MB_PER_TYPE << 20,
>> + max_mem / n_memtypes);
>> + /*
>> + * limit maximum number of segment lists per type to ensure there's
>> + * space for memseg lists for all NUMA nodes with all page sizes
>> + */
>> + max_seglists_per_type = RTE_MAX_MEMSEG_LISTS / n_memtypes;
>>
>> - type_msl_idx = 0;
>> - while (total_type_mem < max_type_mem &&
>> - total_segs < max_segs) {
>> - uint64_t cur_max_mem, cur_mem;
>> - unsigned int n_segs;
>> + if (max_seglists_per_type == 0) {
>> + RTE_LOG(ERR, EAL, "Cannot accommodate all memory types,
>> please increase %s\n",
>> + RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
>> + return -1;
>> + }
>>
>> - if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
>> - RTE_LOG(ERR, EAL,
>> - "No more space in memseg
>> lists, please increase %s\n",
>> -
>> RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
>> - return -1;
>> - }
>> + /* go through all mem types and create segment lists */
>> + msl_idx = 0;
>> + for (cur_type = 0; cur_type < n_memtypes; cur_type++) {
>> + unsigned int cur_seglist, n_seglists, n_segs;
>> + unsigned int max_segs_per_type, max_segs_per_list;
>> + struct memtype *type = &memtypes[cur_type];
>> + uint64_t max_mem_per_list, pagesz;
>> + int socket_id;
>>
>> - msl = &mcfg->memsegs[msl_idx++];
>> + pagesz = type->page_sz;
>> + socket_id = type->socket_id;
>>
>> - cur_max_mem = max_type_mem -
>> total_type_mem;
>> + /*
>> + * we need to create segment lists for this type. we must
>> take
>> + * into account the following things:
>> + *
>> + * 1. total amount of memory we can use for this memory
>> type
>> + * 2. total amount of memory per memseg list allowed
>> + * 3. number of segments needed to fit the amount of
>> memory
>> + * 4. number of segments allowed per type
>> + * 5. number of segments allowed per memseg list
>> + * 6. number of memseg lists we are allowed to take up
>> + */
>>
>> - cur_mem =
>> get_mem_amount(hugepage_sz,
>> - cur_max_mem);
>> - n_segs = cur_mem / hugepage_sz;
>> + /* calculate how much segments we will need in total */
>> + max_segs_per_type = max_mem_per_type / pagesz;
>> + /* limit number of segments to maximum allowed per type
>> */
>> + max_segs_per_type = RTE_MIN(max_segs_per_type,
>> + (unsigned
>> int)RTE_MAX_MEMSEG_PER_TYPE);
>> + /* limit number of segments to maximum allowed per list */
>> + max_segs_per_list = RTE_MIN(max_segs_per_type,
>> + (unsigned
>> int)RTE_MAX_MEMSEG_PER_LIST);
>>
>> - if (alloc_memseg_list(msl, hugepage_sz,
>> n_segs,
>> - socket_id, type_msl_idx))
>> - return -1;
>> + /* calculate how much memory we can have per segment list
>> */
>> + max_mem_per_list = RTE_MIN(max_segs_per_list * pagesz,
>> + (uint64_t)RTE_MAX_MEM_MB_PER_LIST <<
>> 20);
>>
>> - total_segs += msl->memseg_arr.len;
>> - total_type_mem = total_segs *
>> hugepage_sz;
>> - type_msl_idx++;
>> + /* calculate how many segments each segment list will have
>> */
>> + n_segs = RTE_MIN(max_segs_per_list, max_mem_per_list /
>> pagesz);
>>
>> - if (alloc_va_space(msl)) {
>> - RTE_LOG(ERR, EAL, "Cannot allocate
>> VA space for memseg list\n");
>> - return -1;
>> - }
>> + /* calculate how many segment lists we can have */
>> + n_seglists = RTE_MIN(max_segs_per_type / n_segs,
>> + max_mem_per_type / max_mem_per_list);
>> +
>> + /* limit number of segment lists according to our maximum
>> */
>> + n_seglists = RTE_MIN(n_seglists, max_seglists_per_type);
>> +
>> + RTE_LOG(DEBUG, EAL, "Creating %i segment lists: "
>> + "n_segs:%i socket_id:%i hugepage_sz:%"
>> PRIu64 "\n",
>> + n_seglists, n_segs, socket_id, pagesz);
>> +
>> + /* create all segment lists */
>> + for (cur_seglist = 0; cur_seglist < n_seglists; cur_seglist++) {
>> + if (msl_idx >= RTE_MAX_MEMSEG_LISTS) {
>> + RTE_LOG(ERR, EAL,
>> + "No more space in memseg lists,
>> please increase %s\n",
>> +
>> RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
>> + return -1;
>> + }
>> + msl = &mcfg->memsegs[msl_idx++];
>> +
>> + if (alloc_memseg_list(msl, pagesz, n_segs,
>> + socket_id, cur_seglist))
>> + return -1;
>> +
>> + if (alloc_va_space(msl)) {
>> + RTE_LOG(ERR, EAL, "Cannot allocate VA
>> space for memseg list\n");
>> + return -1;
>> }
>> - total_mem += total_type_mem;
>> }
>> }
>> --
>> 2.19.0
>>
>> ---
>> Diff of the applied patch vs upstream commit (please double-check if non-
>> empty:
>> ---
>> --- - 2018-11-22 16:47:32.741839268 <sip:32741839268> +0000
>> +++ 0018-mem-improve-segment-list-preallocation.patch 2018-11-22
>> 16:47:32.000000000 <sip:32000000000> +0000
>> @@ -1,8 +1,10 @@
>> -From 1dd342d0fdc4f72102f0b48c89b6a39f029004fe Mon Sep 17 00:00:00
>> 2001
>> +From 6d552c83eacba7be4b4f2efbafd58724e07e2330 Mon Sep 17 00:00:00
>> 2001
>> From: Anatoly Burakov <anatoly.burakov@intel.com>
>> Date: Fri, 5 Oct 2018 09:29:44 +0100
>> Subject: [PATCH] mem: improve segment list preallocation
>>
>> +[ upstream commit 1dd342d0fdc4f72102f0b48c89b6a39f029004fe ]
>> +
>> Current code to preallocate segment lists is trying to do everything in one
>> go, and thus ends up being convoluted, hard to understand, and, most
>> importantly, does not scale beyond @@ -21,7 +23,6 @@ its code is much
>> more readable and not worth changing.
>>
>> Fixes: 1d406458db47 ("mem: make segment preallocation OS-specific")
>> -Cc: stable@dpdk.org
>>
>> Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
>> ---
>> @@ -29,10 +30,10 @@
>> 1 file changed, 137 insertions(+), 42 deletions(-)
>>
>> diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c
>> b/lib/librte_eal/linuxapp/eal/eal_memory.c
>> -index 04f264818..19e686eb6 100644
>> +index 6131bfde2..cc2d3fb69 100644
>> --- a/lib/librte_eal/linuxapp/eal/eal_memory.c
>> +++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
>> -@@ -2132,7 +2132,13 @@ memseg_primary_init(void)
>> +@@ -2096,7 +2096,13 @@ memseg_primary_init(void)
>> {
>> struct rte_mem_config *mcfg = rte_eal_get_configuration()-
>>> mem_config;
>> - int i, socket_id, hpi_idx, msl_idx = 0;
>> @@ -48,7 +49,7 @@
>> + unsigned int n_memtypes, cur_type;
>>
>> /* no-huge does not need this at all */ -@@ -2140,8 +2146,49 @@
>> memseg_primary_init(void)
>> +@@ -2104,8 +2110,49 @@ memseg_primary_init(void)
>> return 0;
>>
>> - max_mem = (uint64_t)RTE_MAX_MEM_MB << 20;
>> @@ -101,7 +102,7 @@
>> + cur_type = 0;
>> for (hpi_idx = 0; hpi_idx < (int) internal_config.num_hugepage_sizes;
>> hpi_idx++) {
>> -@@ -2152,9 +2199,6 @@ memseg_primary_init(void)
>> +@@ -2116,9 +2163,6 @@ memseg_primary_init(void)
>> hugepage_sz = hpi->hugepage_sz;
>>
>> - for (i = 0; i < (int) rte_socket_count(); i++) {
>> @@ -113,7 +114,7 @@
>> + int socket_id = rte_socket_id_by_idx(i);
>>
>> #ifndef RTE_EAL_NUMA_AWARE_HUGEPAGES
>> -@@ -2162,47 +2206,98 @@ memseg_primary_init(void)
>> +@@ -2126,47 +2170,98 @@ memseg_primary_init(void)
>> break;
>> #endif
>> + memtypes[cur_type].page_sz = hugepage_sz;
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'mem: fix resource leak' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (16 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'mem: improve segment list preallocation' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Kevin Traynor
` (45 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Anatoly Burakov; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 1c80e6f838c2bdba592583259449b978c64ae778 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Mon, 22 Oct 2018 13:57:03 +0100
Subject: [PATCH] mem: fix resource leak
[ upstream commit 198b66b9461c01558d4fb474d1485d1312bf2650 ]
Segment preallocation code allocates an array of structures on the
heap but does not free the memory afterwards. Fix it by freeing it
at the end of the function, and changing control flow to always go
through that code path.
Coverity issue: 323524
Fixes: 1dd342d0fdc4 ("mem: improve segment list preallocation")
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_eal/linuxapp/eal/eal_memory.c | 16 ++++++++++------
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
index cc2d3fb69..f442dd5ec 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
@@ -2100,5 +2100,5 @@ memseg_primary_init(void)
int socket_id;
} *memtypes = NULL;
- int i, hpi_idx, msl_idx;
+ int i, hpi_idx, msl_idx, ret = -1; /* fail unless told to succeed */
struct rte_memseg_list *msl;
uint64_t max_mem, max_mem_per_type;
@@ -2192,5 +2192,5 @@ memseg_primary_init(void)
RTE_LOG(ERR, EAL, "Cannot accommodate all memory types, please increase %s\n",
RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
- return -1;
+ goto out;
}
@@ -2252,5 +2252,5 @@ memseg_primary_init(void)
"No more space in memseg lists, please increase %s\n",
RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
- return -1;
+ goto out;
}
msl = &mcfg->memsegs[msl_idx++];
@@ -2258,13 +2258,17 @@ memseg_primary_init(void)
if (alloc_memseg_list(msl, pagesz, n_segs,
socket_id, cur_seglist))
- return -1;
+ goto out;
if (alloc_va_space(msl)) {
RTE_LOG(ERR, EAL, "Cannot allocate VA space for memseg list\n");
- return -1;
+ goto out;
}
}
}
- return 0;
+ /* we're successful */
+ ret = 0;
+out:
+ free(memtypes);
+ return ret;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.765993431 +0000
+++ 0019-mem-fix-resource-leak.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 198b66b9461c01558d4fb474d1485d1312bf2650 Mon Sep 17 00:00:00 2001
+From 1c80e6f838c2bdba592583259449b978c64ae778 Mon Sep 17 00:00:00 2001
From: Anatoly Burakov <anatoly.burakov@intel.com>
Date: Mon, 22 Oct 2018 13:57:03 +0100
Subject: [PATCH] mem: fix resource leak
+[ upstream commit 198b66b9461c01558d4fb474d1485d1312bf2650 ]
+
Segment preallocation code allocates an array of structures on the
heap but does not free the memory afterwards. Fix it by freeing it
at the end of the function, and changing control flow to always go
@@ -10,7 +12,6 @@
Coverity issue: 323524
Fixes: 1dd342d0fdc4 ("mem: improve segment list preallocation")
-Cc: stable@dpdk.org
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
@@ -18,31 +19,31 @@
1 file changed, 10 insertions(+), 6 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_memory.c b/lib/librte_eal/linuxapp/eal/eal_memory.c
-index 19e686eb6..fce86fda6 100644
+index cc2d3fb69..f442dd5ec 100644
--- a/lib/librte_eal/linuxapp/eal/eal_memory.c
+++ b/lib/librte_eal/linuxapp/eal/eal_memory.c
-@@ -2136,5 +2136,5 @@ memseg_primary_init(void)
+@@ -2100,5 +2100,5 @@ memseg_primary_init(void)
int socket_id;
} *memtypes = NULL;
- int i, hpi_idx, msl_idx;
+ int i, hpi_idx, msl_idx, ret = -1; /* fail unless told to succeed */
struct rte_memseg_list *msl;
uint64_t max_mem, max_mem_per_type;
-@@ -2228,5 +2228,5 @@ memseg_primary_init(void)
+@@ -2192,5 +2192,5 @@ memseg_primary_init(void)
RTE_LOG(ERR, EAL, "Cannot accommodate all memory types, please increase %s\n",
RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
- return -1;
+ goto out;
}
-@@ -2288,5 +2288,5 @@ memseg_primary_init(void)
+@@ -2252,5 +2252,5 @@ memseg_primary_init(void)
"No more space in memseg lists, please increase %s\n",
RTE_STR(CONFIG_RTE_MAX_MEMSEG_LISTS));
- return -1;
+ goto out;
}
msl = &mcfg->memsegs[msl_idx++];
-@@ -2294,13 +2294,17 @@ memseg_primary_init(void)
+@@ -2258,13 +2258,17 @@ memseg_primary_init(void)
if (alloc_memseg_list(msl, pagesz, n_segs,
socket_id, cur_seglist))
- return -1;
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'kvargs: fix processing a null list' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (17 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'mem: fix resource leak' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'ipc: fix undefined behavior in no-shconf mode' " Kevin Traynor
` (44 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: Olivier Matz, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 5df3c71261f8f3cacf54fe4df778d967d76233ba 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 a28f76945..7ec1ea57f 100644
--- a/lib/librte_kvargs/rte_kvargs.c
+++ b/lib/librte_kvargs/rte_kvargs.c
@@ -121,4 +121,7 @@ rte_kvargs_process(const struct rte_kvargs *kvlist,
unsigned i;
+ if (kvlist == NULL)
+ return 0;
+
for (i = 0; i < kvlist->count; i++) {
pair = &kvlist->pairs[i];
diff --git a/lib/librte_kvargs/rte_kvargs.h b/lib/librte_kvargs/rte_kvargs.h
index fc041956e..1946195de 100644
--- a/lib/librte_kvargs/rte_kvargs.h
+++ b/lib/librte_kvargs/rte_kvargs.h
@@ -111,5 +111,5 @@ struct rte_kvargs *rte_kvargs_parse_delim(const char *args,
*
* @param kvlist
- * The rte_kvargs structure
+ * The rte_kvargs structure. No error if NULL.
*/
void rte_kvargs_free(struct rte_kvargs *kvlist);
@@ -120,9 +120,8 @@ 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
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.795478041 +0000
+++ 0020-kvargs-fix-processing-a-null-list.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 25495407cbda028f7f6d5cce38f78e609cf970e1 Mon Sep 17 00:00:00 2001
+From 5df3c71261f8f3cacf54fe4df778d967d76233ba 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>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'ipc: fix undefined behavior in no-shconf mode' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (18 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'kvargs: fix processing a null list' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'raw/skeleton: fix memory leak on test failure' " Kevin Traynor
` (43 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Dariusz Stojaczyk; +Cc: Anatoly Burakov, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From a716b9ffcbc8a42178c42b29d38dcdfcf706994c Mon Sep 17 00:00:00 2001
From: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Date: Wed, 24 Oct 2018 12:05:17 +0200
Subject: [PATCH] ipc: fix undefined behavior in no-shconf mode
[ upstream commit b4f62e586279bd5c49933f0e873adf047847e556 ]
In no-shconf mode the rte_mp_request_sync() wasn't initializing
the `reply` parameter, which contained e.g. a number of sent
requests. Callers of rte_mp_request_sync() might check that
param afterwards and might read potentially unitialized memory.
The no-shconf check that makes us return early (with rc = 0) was
placed before the `reply` initialization. Fix this by making the
`reply` initialization occur first.
Fixes: 5848e3d2813c ("ipc: support --no-shconf mode")
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
---
lib/librte_eal/common/eal_common_proc.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/lib/librte_eal/common/eal_common_proc.c b/lib/librte_eal/common/eal_common_proc.c
index 9fcb91219..97663d3ba 100644
--- a/lib/librte_eal/common/eal_common_proc.c
+++ b/lib/librte_eal/common/eal_common_proc.c
@@ -940,4 +940,8 @@ rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,
return -1;
+ reply->nb_sent = 0;
+ reply->nb_received = 0;
+ reply->msgs = NULL;
+
if (internal_config.no_shconf) {
RTE_LOG(DEBUG, EAL, "No shared files mode enabled, IPC is disabled\n");
@@ -946,5 +950,5 @@ rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,
if (gettimeofday(&now, NULL) < 0) {
- RTE_LOG(ERR, EAL, "Faile to get current time\n");
+ RTE_LOG(ERR, EAL, "Failed to get current time\n");
rte_errno = errno;
return -1;
@@ -955,8 +959,4 @@ rte_mp_request_sync(struct rte_mp_msg *req, struct rte_mp_reply *reply,
(now.tv_usec * 1000 + ts->tv_nsec) / 1000000000;
- reply->nb_sent = 0;
- reply->nb_received = 0;
- reply->msgs = NULL;
-
/* for secondary process, send request to the primary process only */
if (rte_eal_process_type() == RTE_PROC_SECONDARY) {
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.818565256 +0000
+++ 0021-ipc-fix-undefined-behavior-in-no-shconf-mode.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From b4f62e586279bd5c49933f0e873adf047847e556 Mon Sep 17 00:00:00 2001
+From a716b9ffcbc8a42178c42b29d38dcdfcf706994c Mon Sep 17 00:00:00 2001
From: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Date: Wed, 24 Oct 2018 12:05:17 +0200
Subject: [PATCH] ipc: fix undefined behavior in no-shconf mode
+[ upstream commit b4f62e586279bd5c49933f0e873adf047847e556 ]
+
In no-shconf mode the rte_mp_request_sync() wasn't initializing
the `reply` parameter, which contained e.g. a number of sent
requests. Callers of rte_mp_request_sync() might check that
@@ -13,7 +15,6 @@
`reply` initialization occur first.
Fixes: 5848e3d2813c ("ipc: support --no-shconf mode")
-Cc: stable@dpdk.org
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'raw/skeleton: fix memory leak on test failure' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (19 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'ipc: fix undefined behavior in no-shconf mode' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Kevin Traynor
` (42 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Shreyansh Jain; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 8d739a452b4a33d41be4a41d7781e303c425d112 Mon Sep 17 00:00:00 2001
From: Shreyansh Jain <shreyansh.jain@nxp.com>
Date: Wed, 24 Oct 2018 05:33:41 +0000
Subject: [PATCH] raw/skeleton: fix memory leak on test failure
[ upstream commit 88d0e47880ec729dac682be5e4242e13ffd7dcd2 ]
In skeleton_rawdev unit tests, a malloc'd memory was leaking in case
the next sequential test fails. This fix moves the free of the
malloc'd memory above the failing test.
Coverity issue: 260402
Fixes: 55ca1b0f2151 ("raw/skeleton: add test cases")
Signed-off-by: Shreyansh Jain <shreyansh.jain@nxp.com>
---
drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
index 3405b8984..359c9e296 100644
--- a/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
+++ b/drivers/raw/skeleton_rawdev/skeleton_rawdev_test.c
@@ -295,4 +295,6 @@ test_rawdev_attr_set_get(void)
ret_value);
+ free(dummy_value);
+
ret_value = 0;
ret = rte_rawdev_get_attr(TEST_DEV_ID, "Test2", &ret_value);
@@ -301,5 +303,4 @@ test_rawdev_attr_set_get(void)
ret_value);
- free(dummy_value);
return TEST_SUCCESS;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.844569493 +0000
+++ 0022-raw-skeleton-fix-memory-leak-on-test-failure.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 88d0e47880ec729dac682be5e4242e13ffd7dcd2 Mon Sep 17 00:00:00 2001
+From 8d739a452b4a33d41be4a41d7781e303c425d112 Mon Sep 17 00:00:00 2001
From: Shreyansh Jain <shreyansh.jain@nxp.com>
Date: Wed, 24 Oct 2018 05:33:41 +0000
Subject: [PATCH] raw/skeleton: fix memory leak on test failure
+[ upstream commit 88d0e47880ec729dac682be5e4242e13ffd7dcd2 ]
+
In skeleton_rawdev unit tests, a malloc'd memory was leaking in case
the next sequential test fails. This fix moves the free of the
malloc'd memory above the failing test.
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (20 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'raw/skeleton: fix memory leak on test failure' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'devargs: fix variadic parsing memory leak' " Kevin Traynor
` (41 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Jeff Guo; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 4b25a4627b057f3d6f7d36110a7dc111aac25724 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>
---
kernel/linux/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
@@ -571,4 +571,6 @@ 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);
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.867863759 +0000
+++ 0023-igb_uio-fix-unexpected-removal-for-hot-unplug.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 70efa4116420b6f7a0734711dd603d3024366c79 Mon Sep 17 00:00:00 2001
+From 4b25a4627b057f3d6f7d36110a7dc111aac25724 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,
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'devargs: fix variadic parsing memory leak' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (21 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'igb_uio: fix unexpected removal for hot-unplug' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'bus/vdev: fix multi-process IPC buffer leak on scan' " Kevin Traynor
` (40 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Gaetan Rivet; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From b691e30e7003134a056d108baa2f16b2d09467a2 Mon Sep 17 00:00:00 2001
From: Gaetan Rivet <gaetan.rivet@6wind.com>
Date: Wed, 17 Oct 2018 16:30:13 +0200
Subject: [PATCH] devargs: fix variadic parsing memory leak
[ upstream commit 97e476ad7c89303b21deea5b87fa0f0612d50f5c ]
rte_devargs_parsef will leak memory each time it is called.
The device string must be freed.
Fixes: a23bc2c4e01b ("devargs: add non-variadic parsing function")
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
lib/librte_eal/common/eal_common_devargs.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c
index dac2402a4..19c19c7d0 100644
--- a/lib/librte_eal/common/eal_common_devargs.c
+++ b/lib/librte_eal/common/eal_common_devargs.c
@@ -271,4 +271,5 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
size_t len;
char *dev;
+ int ret;
if (da == NULL)
@@ -289,5 +290,8 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
va_end(ap);
- return rte_devargs_parse(da, dev);
+ ret = rte_devargs_parse(da, dev);
+
+ free(dev);
+ return ret;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.893295427 +0000
+++ 0024-devargs-fix-variadic-parsing-memory-leak.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From 97e476ad7c89303b21deea5b87fa0f0612d50f5c Mon Sep 17 00:00:00 2001
+From b691e30e7003134a056d108baa2f16b2d09467a2 Mon Sep 17 00:00:00 2001
From: Gaetan Rivet <gaetan.rivet@6wind.com>
Date: Wed, 17 Oct 2018 16:30:13 +0200
Subject: [PATCH] devargs: fix variadic parsing memory leak
+[ upstream commit 97e476ad7c89303b21deea5b87fa0f0612d50f5c ]
+
rte_devargs_parsef will leak memory each time it is called.
The device string must be freed.
Fixes: a23bc2c4e01b ("devargs: add non-variadic parsing function")
-Cc: stable@dpdk.org
Signed-off-by: Gaetan Rivet <gaetan.rivet@6wind.com>
---
@@ -15,16 +16,16 @@
1 file changed, 5 insertions(+), 1 deletion(-)
diff --git a/lib/librte_eal/common/eal_common_devargs.c b/lib/librte_eal/common/eal_common_devargs.c
-index 69e9e32e9..c1b06095e 100644
+index dac2402a4..19c19c7d0 100644
--- a/lib/librte_eal/common/eal_common_devargs.c
+++ b/lib/librte_eal/common/eal_common_devargs.c
-@@ -238,4 +238,5 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
+@@ -271,4 +271,5 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
size_t len;
char *dev;
+ int ret;
if (da == NULL)
-@@ -256,5 +257,8 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
+@@ -289,5 +290,8 @@ rte_devargs_parsef(struct rte_devargs *da, const char *format, ...)
va_end(ap);
- return rte_devargs_parse(da, dev);
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'bus/vdev: fix multi-process IPC buffer leak on scan' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (22 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'devargs: fix variadic parsing memory leak' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' " Kevin Traynor
` (39 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Paul Luse; +Cc: Anatoly Burakov, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 88aa5129d0f25ce304affb506db3b7b9f29aac04 Mon Sep 17 00:00:00 2001
From: Paul Luse <paul.e.luse@intel.com>
Date: Fri, 21 Sep 2018 12:25:57 -0400
Subject: [PATCH] bus/vdev: fix multi-process IPC buffer leak on scan
[ upstream commit 66fd3a3b0f5be39ba30a2d6aa617604c8d221230 ]
This patch fixes an issue caught with ASAN where a vdev_scan()
to a secondary bus was failing to free some memory.
The doxygen comment in EAL is fixed at the same time.
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel")
Fixes: 783b6e54971d ("eal: add synchronous multi-process communication")
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
drivers/bus/vdev/vdev.c | 1 +
lib/librte_eal/common/include/rte_eal.h | 2 +-
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
index 69dee89a8..2566d6c0d 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
@@ -424,4 +424,5 @@ vdev_scan(void)
resp = (struct vdev_param *)mp_rep->param;
VDEV_LOG(INFO, "Received %d vdevs", resp->num);
+ free(mp_reply.msgs);
} else
VDEV_LOG(ERR, "Failed to request vdev from primary");
diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h
index e114dcbdc..71a8518cc 100644
--- a/lib/librte_eal/common/include/rte_eal.h
+++ b/lib/librte_eal/common/include/rte_eal.h
@@ -317,5 +317,5 @@ rte_mp_sendmsg(struct rte_mp_msg *msg);
* @param reply
* The reply argument will be for storing all the replied messages;
- * the caller is responsible for free reply->replies.
+ * the caller is responsible for free reply->msgs.
*
* @param ts
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.916091650 +0000
+++ 0025-bus-vdev-fix-multi-process-IPC-buffer-leak-on-scan.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 66fd3a3b0f5be39ba30a2d6aa617604c8d221230 Mon Sep 17 00:00:00 2001
+From 88aa5129d0f25ce304affb506db3b7b9f29aac04 Mon Sep 17 00:00:00 2001
From: Paul Luse <paul.e.luse@intel.com>
Date: Fri, 21 Sep 2018 12:25:57 -0400
Subject: [PATCH] bus/vdev: fix multi-process IPC buffer leak on scan
+[ upstream commit 66fd3a3b0f5be39ba30a2d6aa617604c8d221230 ]
+
This patch fixes an issue caught with ASAN where a vdev_scan()
to a secondary bus was failing to free some memory.
@@ -10,7 +12,6 @@
Fixes: cdb068f031c6 ("bus/vdev: scan by multi-process channel")
Fixes: 783b6e54971d ("eal: add synchronous multi-process communication")
-Cc: stable@dpdk.org
Signed-off-by: Paul Luse <paul.e.luse@intel.com>
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
@@ -21,17 +22,17 @@
2 files changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/bus/vdev/vdev.c b/drivers/bus/vdev/vdev.c
-index 688e31c21..685cc4e78 100644
+index 69dee89a8..2566d6c0d 100644
--- a/drivers/bus/vdev/vdev.c
+++ b/drivers/bus/vdev/vdev.c
-@@ -426,4 +426,5 @@ vdev_scan(void)
+@@ -424,4 +424,5 @@ vdev_scan(void)
resp = (struct vdev_param *)mp_rep->param;
VDEV_LOG(INFO, "Received %d vdevs", resp->num);
+ free(mp_reply.msgs);
} else
VDEV_LOG(ERR, "Failed to request vdev from primary");
diff --git a/lib/librte_eal/common/include/rte_eal.h b/lib/librte_eal/common/include/rte_eal.h
-index 3ee897c1d..6514a9fe6 100644
+index e114dcbdc..71a8518cc 100644
--- a/lib/librte_eal/common/include/rte_eal.h
+++ b/lib/librte_eal/common/include/rte_eal.h
@@ -317,5 +317,5 @@ rte_mp_sendmsg(struct rte_mp_msg *msg);
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (23 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'bus/vdev: fix multi-process IPC buffer leak on scan' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'bpf: fix a typo' " Kevin Traynor
` (38 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Reshma Pattan; +Cc: Bao-Long Tran, Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 038552d73ef112748344c9175b736bb59a0028c6 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 1fdec68e3..5715549e4 100644
--- a/lib/librte_latencystats/rte_latencystats.c
+++ b/lib/librte_latencystats/rte_latencystats.c
@@ -126,6 +126,9 @@ add_time_stamps(uint16_t pid __rte_unused,
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;
}
@@ -157,5 +160,5 @@ 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.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.941265818 +0000
+++ 0026-latency-fix-timestamp-marking-and-latency-calculatio.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 77b7485af7f63f7d528f614ce27a5ce014cfd2c7 Mon Sep 17 00:00:00 2001
+From 038552d73ef112748344c9175b736bb59a0028c6 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>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'bpf: fix a typo' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (24 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'latency: fix timestamp marking and latency calculation' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'mbuf: fix library version on meson build' " Kevin Traynor
` (37 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Rami Rosen; +Cc: Konstantin Ananyev, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 1dbdd45d4c4968589832b235c1cf46e3ad8b27b0 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Wed, 22 Aug 2018 17:45:45 +0300
Subject: [PATCH] bpf: fix a typo
[ upstream commit 2b4aa851ec18ccb0c16ed379528ddff36bcb5cff ]
This trivial patch fixes a typo in rte_bpf_ethdev.h,
Fixes: a93ff62a8938 ("bpf: introduce basic Rx/Tx filters")
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
---
lib/librte_bpf/rte_bpf_ethdev.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_bpf/rte_bpf_ethdev.h b/lib/librte_bpf/rte_bpf_ethdev.h
index 31731e7a9..11d09cdc2 100644
--- a/lib/librte_bpf/rte_bpf_ethdev.h
+++ b/lib/librte_bpf/rte_bpf_ethdev.h
@@ -76,5 +76,5 @@ rte_bpf_eth_tx_unload(uint16_t port, uint16_t queue);
* Parameters used to create and initialise the BPF exeution context.
* @param flags
- * Flags that define expected expected behavior of the loaded filter
+ * Flags that define expected behavior of the loaded filter
* (i.e. jited/non-jited version to use).
* @return
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.966453109 +0000
+++ 0027-bpf-fix-a-typo.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,12 +1,13 @@
-From 2b4aa851ec18ccb0c16ed379528ddff36bcb5cff Mon Sep 17 00:00:00 2001
+From 1dbdd45d4c4968589832b235c1cf46e3ad8b27b0 Mon Sep 17 00:00:00 2001
From: Rami Rosen <ramirose@gmail.com>
Date: Wed, 22 Aug 2018 17:45:45 +0300
Subject: [PATCH] bpf: fix a typo
+[ upstream commit 2b4aa851ec18ccb0c16ed379528ddff36bcb5cff ]
+
This trivial patch fixes a typo in rte_bpf_ethdev.h,
Fixes: a93ff62a8938 ("bpf: introduce basic Rx/Tx filters")
-Cc: stable@dpdk.org
Signed-off-by: Rami Rosen <ramirose@gmail.com>
Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'mbuf: fix library version on meson build' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (25 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'bpf: fix a typo' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'ring: add library version to " Kevin Traynor
` (36 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: Luca Boccassi, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From b85d62b97ad28879786fc75b5b6b26b923f03ce1 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Mon, 15 Oct 2018 15:50:55 +0100
Subject: [PATCH] mbuf: fix library version on meson build
[ upstream commit 63f54e650a47c2ec8a66e820a1bffd53d6eaa765 ]
Fixes: d27a6261875d ("mbuf: remove control mbuf")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
---
lib/librte_mbuf/meson.build | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/librte_mbuf/meson.build b/lib/librte_mbuf/meson.build
index 45ffb0db5..94d9c4c96 100644
--- a/lib/librte_mbuf/meson.build
+++ b/lib/librte_mbuf/meson.build
@@ -2,5 +2,5 @@
# Copyright(c) 2017 Intel Corporation
-version = 3
+version = 4
sources = files('rte_mbuf.c', 'rte_mbuf_ptype.c', 'rte_mbuf_pool_ops.c')
headers = files('rte_mbuf.h', 'rte_mbuf_ptype.h', 'rte_mbuf_pool_ops.h')
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:32.990861148 +0000
+++ 0028-mbuf-fix-library-version-on-meson-build.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,10 +1,11 @@
-From 63f54e650a47c2ec8a66e820a1bffd53d6eaa765 Mon Sep 17 00:00:00 2001
+From b85d62b97ad28879786fc75b5b6b26b923f03ce1 Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Mon, 15 Oct 2018 15:50:55 +0100
Subject: [PATCH] mbuf: fix library version on meson build
+[ upstream commit 63f54e650a47c2ec8a66e820a1bffd53d6eaa765 ]
+
Fixes: d27a6261875d ("mbuf: remove control mbuf")
-Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'ring: add library version to meson build' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (26 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'mbuf: fix library version on meson build' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Kevin Traynor
` (35 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: Luca Boccassi, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 06edceda1fde2e9ef31d2251c500b4d355c0c8cd Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Mon, 15 Oct 2018 15:50:56 +0100
Subject: [PATCH] ring: add library version to meson build
[ upstream commit 73aa5c1332c6fff67ba8e26608595ab2f1fa3cfc ]
Fixes: a3d6026711d0 ("ring: relax alignment constraint on ring structure")
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
---
lib/librte_ring/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/librte_ring/meson.build b/lib/librte_ring/meson.build
index ca8a435e9..ab8b0b469 100644
--- a/lib/librte_ring/meson.build
+++ b/lib/librte_ring/meson.build
@@ -2,4 +2,5 @@
# Copyright(c) 2017 Intel Corporation
+version = 2
sources = files('rte_ring.c')
headers = files('rte_ring.h',
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.013825802 +0000
+++ 0029-ring-add-library-version-to-meson-build.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,10 +1,11 @@
-From 73aa5c1332c6fff67ba8e26608595ab2f1fa3cfc Mon Sep 17 00:00:00 2001
+From 06edceda1fde2e9ef31d2251c500b4d355c0c8cd Mon Sep 17 00:00:00 2001
From: Ferruh Yigit <ferruh.yigit@intel.com>
Date: Mon, 15 Oct 2018 15:50:56 +0100
Subject: [PATCH] ring: add library version to meson build
+[ upstream commit 73aa5c1332c6fff67ba8e26608595ab2f1fa3cfc ]
+
Fixes: a3d6026711d0 ("ring: relax alignment constraint on ring structure")
-Cc: stable@dpdk.org
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Luca Boccassi <bluca@debian.org>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'test/hash: fix bucket size in perf test' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (27 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'ring: add library version to " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'test/hash: fix r/w test with non-consecutive cores' " Kevin Traynor
` (34 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yipeng Wang; +Cc: Bruce Richardson, Honnappa Nagarahalli, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From b5a4111b1eb2471ab268739054ffeaf057d59bb7 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 33dcb9fcf..fe116326d 100644
--- a/test/test/test_hash_perf.c
+++ b/test/test/test_hash_perf.c
@@ -21,5 +21,6 @@
#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
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.039313907 +0000
+++ 0030-test-hash-fix-bucket-size-in-perf-test.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From b772a15eb84ce616114880a20ad6ad91bb8970fc Mon Sep 17 00:00:00 2001
+From b5a4111b1eb2471ab268739054ffeaf057d59bb7 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>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'test/hash: fix r/w test with non-consecutive cores' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (28 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'test/hash: fix bucket size in perf test' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'test/hash: add missing file in meson build' " Kevin Traynor
` (33 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yipeng Wang; +Cc: Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From d99b2fd115bf45183960dc085a867c14a2458d2d Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:07 -0700
Subject: [PATCH] test/hash: fix r/w test with non-consecutive cores
[ upstream commit b2f1f3c02148af2a490802d271842f1c1e80df3d ]
the multi-reader and multi-writer rte_hash unit test does not
work correctly with non-consecutive core ids. This commit
fixes the issue.
Fixes: 0eb3726ebcf1 ("test/hash: add test for read/write concurrency")
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
test/test/test_hash_readwrite.c | 78 +++++++++++++++++++++------------
1 file changed, 49 insertions(+), 29 deletions(-)
diff --git a/test/test/test_hash_readwrite.c b/test/test/test_hash_readwrite.c
index 55ae33d80..2a4f7b9b5 100644
--- a/test/test/test_hash_readwrite.c
+++ b/test/test/test_hash_readwrite.c
@@ -25,4 +25,5 @@
unsigned int core_cnt[NUM_TEST] = {2, 4, 8};
+unsigned int slave_core_ids[RTE_MAX_LCORE];
struct perf {
uint32_t single_read;
@@ -61,10 +62,13 @@ test_hash_readwrite_worker(__attribute__((unused)) void *arg)
int ret;
- offset = (lcore_id - rte_get_master_lcore())
- * tbl_rw_test_param.num_insert;
+ for (i = 0; i < rte_lcore_count(); i++) {
+ if (slave_core_ids[i] == lcore_id)
+ break;
+ }
+ offset = tbl_rw_test_param.num_insert * i;
printf("Core #%d inserting and reading %d: %'"PRId64" - %'"PRId64"\n",
lcore_id, tbl_rw_test_param.num_insert,
- offset, offset + tbl_rw_test_param.num_insert);
+ offset, offset + tbl_rw_test_param.num_insert - 1);
begin = rte_rdtsc_precise();
@@ -172,4 +176,5 @@ test_hash_readwrite_functional(int use_htm)
uint32_t lost_keys = 0;
int use_jhash = 1;
+ int slave_cnt = rte_lcore_count() - 1;
rte_atomic64_init(&gcycles);
@@ -183,9 +188,9 @@ test_hash_readwrite_functional(int use_htm)
tbl_rw_test_param.num_insert =
- TOTAL_INSERT / rte_lcore_count();
+ TOTAL_INSERT / slave_cnt;
tbl_rw_test_param.rounded_tot_insert =
tbl_rw_test_param.num_insert
- * rte_lcore_count();
+ * slave_cnt;
printf("++++++++Start function tests:+++++++++\n");
@@ -193,5 +198,5 @@ test_hash_readwrite_functional(int use_htm)
/* Fire all threads. */
rte_eal_mp_remote_launch(test_hash_readwrite_worker,
- NULL, CALL_MASTER);
+ NULL, SKIP_MASTER);
rte_eal_mp_wait_lcore();
@@ -250,5 +255,5 @@ err:
static int
-test_rw_reader(__attribute__((unused)) void *arg)
+test_rw_reader(void *arg)
{
uint64_t i;
@@ -277,5 +282,5 @@ test_rw_reader(__attribute__((unused)) void *arg)
static int
-test_rw_writer(__attribute__((unused)) void *arg)
+test_rw_writer(void *arg)
{
uint64_t i;
@@ -286,6 +291,11 @@ test_rw_writer(__attribute__((unused)) void *arg)
uint64_t offset;
- offset = TOTAL_INSERT / 2 + (lcore_id - start_coreid)
- * tbl_rw_test_param.num_insert;
+ for (i = 0; i < rte_lcore_count(); i++) {
+ if (slave_core_ids[i] == lcore_id)
+ break;
+ }
+
+ offset = TOTAL_INSERT / 2 + (i - (start_coreid)) *
+ tbl_rw_test_param.num_insert;
begin = rte_rdtsc_precise();
for (i = offset; i < offset + tbl_rw_test_param.num_insert; i++) {
@@ -385,6 +395,6 @@ test_hash_readwrite_perf(struct perf *perf_results, int use_htm,
for (n = 0; n < NUM_TEST; n++) {
- unsigned int tot_lcore = rte_lcore_count();
- if (tot_lcore < core_cnt[n] * 2 + 1)
+ unsigned int tot_slave_lcore = rte_lcore_count() - 1;
+ if (tot_slave_lcore < core_cnt[n] * 2)
goto finish;
@@ -416,7 +426,8 @@ test_hash_readwrite_perf(struct perf *perf_results, int use_htm,
/* Test only reader cases */
- for (i = 1; i <= core_cnt[n]; i++)
+ for (i = 0; i < core_cnt[n]; i++)
rte_eal_remote_launch(test_rw_reader,
- (void *)(uintptr_t)read_cnt, i);
+ (void *)(uintptr_t)read_cnt,
+ slave_core_ids[i]);
rte_eal_mp_wait_lcore();
@@ -424,7 +435,8 @@ test_hash_readwrite_perf(struct perf *perf_results, int use_htm,
start_coreid = i;
/* Test only writer cases */
- for (; i <= core_cnt[n] * 2; i++)
+ for (; i < core_cnt[n] * 2; i++)
rte_eal_remote_launch(test_rw_writer,
- (void *)((uintptr_t)start_coreid), i);
+ (void *)((uintptr_t)start_coreid),
+ slave_core_ids[i]);
rte_eal_mp_wait_lcore();
@@ -465,20 +477,24 @@ test_hash_readwrite_perf(struct perf *perf_results, int use_htm,
}
- start_coreid = core_cnt[n] + 1;
+ start_coreid = core_cnt[n];
if (reader_faster) {
- for (i = core_cnt[n] + 1; i <= core_cnt[n] * 2; i++)
+ for (i = core_cnt[n]; i < core_cnt[n] * 2; i++)
rte_eal_remote_launch(test_rw_writer,
- (void *)((uintptr_t)start_coreid), i);
- for (i = 1; i <= core_cnt[n]; i++)
+ (void *)((uintptr_t)start_coreid),
+ slave_core_ids[i]);
+ for (i = 0; i < core_cnt[n]; i++)
rte_eal_remote_launch(test_rw_reader,
- (void *)(uintptr_t)read_cnt, i);
+ (void *)(uintptr_t)read_cnt,
+ slave_core_ids[i]);
} else {
- for (i = 1; i <= core_cnt[n]; i++)
+ for (i = 0; i < core_cnt[n]; i++)
rte_eal_remote_launch(test_rw_reader,
- (void *)(uintptr_t)read_cnt, i);
- for (; i <= core_cnt[n] * 2; i++)
+ (void *)(uintptr_t)read_cnt,
+ slave_core_ids[i]);
+ for (; i < core_cnt[n] * 2; i++)
rte_eal_remote_launch(test_rw_writer,
- (void *)((uintptr_t)start_coreid), i);
+ (void *)((uintptr_t)start_coreid),
+ slave_core_ids[i]);
}
@@ -563,11 +579,17 @@ test_hash_readwrite_main(void)
*/
int use_htm, reader_faster;
+ unsigned int i = 0, core_id = 0;
- if (rte_lcore_count() == 1) {
- printf("More than one lcore is required "
+ if (rte_lcore_count() <= 2) {
+ printf("More than two lcores are required "
"to do read write test\n");
return 0;
}
+ RTE_LCORE_FOREACH_SLAVE(core_id) {
+ slave_core_ids[i] = core_id;
+ i++;
+ }
+
setlocale(LC_NUMERIC, "");
@@ -611,6 +633,4 @@ test_hash_readwrite_main(void)
printf("Results summary:\n");
- int i;
-
printf("single read: %u\n", htm_results.single_read);
printf("single write: %u\n", htm_results.single_write);
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.062198462 +0000
+++ 0031-test-hash-fix-r-w-test-with-non-consecutive-cores.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From b2f1f3c02148af2a490802d271842f1c1e80df3d Mon Sep 17 00:00:00 2001
+From d99b2fd115bf45183960dc085a867c14a2458d2d Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:07 -0700
Subject: [PATCH] test/hash: fix r/w test with non-consecutive cores
+[ upstream commit b2f1f3c02148af2a490802d271842f1c1e80df3d ]
+
the multi-reader and multi-writer rte_hash unit test does not
work correctly with non-consecutive core ids. This commit
fixes the issue.
Fixes: 0eb3726ebcf1 ("test/hash: add test for read/write concurrency")
-Cc: stable@dpdk.org
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Tested-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'test/hash: add missing file in meson build' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (29 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'test/hash: fix r/w test with non-consecutive cores' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: remove unused constant' " Kevin Traynor
` (32 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yipeng Wang; +Cc: Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 3205373b5622ce165704f0675d35fb1de2304b64 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:08 -0700
Subject: [PATCH] test/hash: add missing file in meson build
[ upstream commit 5437d81dbb5810939244ef231e928d4cf28a3551 ]
The test_hash_readwrite.c was not in the meson.build file. This
commit adds the missing test into the file.
Fixes: 0eb3726ebcf1 ("test/hash: add test for read/write concurrency")
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
test/test/meson.build | 1 +
1 file changed, 1 insertion(+)
diff --git a/test/test/meson.build b/test/test/meson.build
index b1dd6eca2..1826bab8e 100644
--- a/test/test/meson.build
+++ b/test/test/meson.build
@@ -41,4 +41,5 @@ test_sources = files('commands.c',
'test_hash_functions.c',
'test_hash_multiwriter.c',
+ 'test_hash_readwrite.c',
'test_hash_perf.c',
'test_hash_scaling.c',
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.086037972 +0000
+++ 0032-test-hash-add-missing-file-in-meson-build.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From 5437d81dbb5810939244ef231e928d4cf28a3551 Mon Sep 17 00:00:00 2001
+From 3205373b5622ce165704f0675d35fb1de2304b64 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:08 -0700
Subject: [PATCH] test/hash: add missing file in meson build
+[ upstream commit 5437d81dbb5810939244ef231e928d4cf28a3551 ]
+
The test_hash_readwrite.c was not in the meson.build file. This
commit adds the missing test into the file.
Fixes: 0eb3726ebcf1 ("test/hash: add test for read/write concurrency")
-Cc: stable@dpdk.org
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
@@ -16,10 +17,10 @@
1 file changed, 1 insertion(+)
diff --git a/test/test/meson.build b/test/test/meson.build
-index 7c6e3b00b..90d66070d 100644
+index b1dd6eca2..1826bab8e 100644
--- a/test/test/meson.build
+++ b/test/test/meson.build
-@@ -45,4 +45,5 @@ test_sources = files('commands.c',
+@@ -41,4 +41,5 @@ test_sources = files('commands.c',
'test_hash_functions.c',
'test_hash_multiwriter.c',
+ 'test_hash_readwrite.c',
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'hash: remove unused constant' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (30 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'test/hash: add missing file in meson build' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: fix race condition in iterate' " Kevin Traynor
` (31 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yipeng Wang; +Cc: Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 926b6bd79af4f804fc279b4bf6f9e97dbbed76d9 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:09 -0700
Subject: [PATCH] hash: remove unused constant
[ upstream commit 86c1ef20908eb1c7574f581569d2800d00a9846f ]
Since the depth-first search of cuckoo path is removed, we do not
need the macro anymore which specifies the depth of the cuckoo
search.
Fixes: f2e3001b53ec ("hash: support read/write concurrency")
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
lib/librte_hash/rte_cuckoo_hash.h | 2 --
1 file changed, 2 deletions(-)
diff --git a/lib/librte_hash/rte_cuckoo_hash.h b/lib/librte_hash/rte_cuckoo_hash.h
index b43f467d5..fc0e5c262 100644
--- a/lib/librte_hash/rte_cuckoo_hash.h
+++ b/lib/librte_hash/rte_cuckoo_hash.h
@@ -105,6 +105,4 @@ const rte_hash_cmp_eq_t cmp_jump_table[NUM_KEY_CMP_CASES] = {
#define LCORE_CACHE_SIZE 64
-#define RTE_HASH_MAX_PUSHES 100
-
#define RTE_HASH_BFS_QUEUE_MAX_LEN 1000
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.111588386 +0000
+++ 0033-hash-remove-unused-constant.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From 86c1ef20908eb1c7574f581569d2800d00a9846f Mon Sep 17 00:00:00 2001
+From 926b6bd79af4f804fc279b4bf6f9e97dbbed76d9 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 28 Sep 2018 07:11:09 -0700
Subject: [PATCH] hash: remove unused constant
+[ upstream commit 86c1ef20908eb1c7574f581569d2800d00a9846f ]
+
Since the depth-first search of cuckoo path is removed, we do not
need the macro anymore which specifies the depth of the cuckoo
search.
Fixes: f2e3001b53ec ("hash: support read/write concurrency")
-Cc: stable@dpdk.org
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'hash: fix race condition in iterate' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (31 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: remove unused constant' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: fix key store element alignment' " Kevin Traynor
` (30 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yipeng Wang
Cc: Honnappa Nagarahalli, Dharmik Thakkar, Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From e916f02d3fb7ddf504589359aa941ec0971da471 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Mon, 22 Oct 2018 11:39:45 -0700
Subject: [PATCH] hash: fix race condition in iterate
[ upstream commit 99040943442426ebfef0ad69eca73559a9e3b730 ]
In rte_hash_iterate, the reader lock did not protect the
while loop which checks empty entry. This created a race
condition that the entry may become empty when enters
the lock, then a wrong key data value would be read out.
This commit reads out the position in the while condition,
which makes sure that the position will not be changed
to empty before entering the lock.
Fixes: f2e3001b53ec ("hash: support read/write concurrency")
Reported-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Reviewed-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Acked-by: Dharmik Thakkar <dharmik.thakkar@arm.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
lib/librte_hash/rte_cuckoo_hash.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
index f7b86c8c9..da8ddf40a 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
@@ -1319,5 +1319,5 @@ rte_hash_iterate(const struct rte_hash *h, const void **key, void **data, uint32
/* If current position is empty, go to the next one */
- while (h->buckets[bucket_idx].key_idx[idx] == EMPTY_SLOT) {
+ while ((position = h->buckets[bucket_idx].key_idx[idx]) == EMPTY_SLOT) {
(*next)++;
/* End of table */
@@ -1327,7 +1327,6 @@ rte_hash_iterate(const struct rte_hash *h, const void **key, void **data, uint32
idx = *next % RTE_HASH_BUCKET_ENTRIES;
}
+
__hash_rw_reader_lock(h);
- /* Get position of entry in key table */
- position = h->buckets[bucket_idx].key_idx[idx];
next_key = (struct rte_hash_key *) ((char *)h->key_store +
position * h->key_entry_size);
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.134904760 +0000
+++ 0034-hash-fix-race-condition-in-iterate.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 99040943442426ebfef0ad69eca73559a9e3b730 Mon Sep 17 00:00:00 2001
+From e916f02d3fb7ddf504589359aa941ec0971da471 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Mon, 22 Oct 2018 11:39:45 -0700
Subject: [PATCH] hash: fix race condition in iterate
+[ upstream commit 99040943442426ebfef0ad69eca73559a9e3b730 ]
+
In rte_hash_iterate, the reader lock did not protect the
while loop which checks empty entry. This created a race
condition that the entry may become empty when enters
@@ -13,7 +15,6 @@
to empty before entering the lock.
Fixes: f2e3001b53ec ("hash: support read/write concurrency")
-Cc: stable@dpdk.org
Reported-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'hash: fix key store element alignment' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (32 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: fix race condition in iterate' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Kevin Traynor
` (29 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Honnappa Nagarahalli
Cc: Gavin Hu, Ola Liljedahl, Steve Capper, Yipeng Wang,
Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From d5ed694189863035aef1b16ff24c12b732fd94d8 Mon Sep 17 00:00:00 2001
From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Date: Fri, 26 Oct 2018 00:37:31 -0500
Subject: [PATCH] hash: fix key store element alignment
[ upstream commit dbdbc4a2e9c4b67247ef2f6556debe7522b5d2e4 ]
Fix the key store array element alignment such that every array
element is aligned on KEY_ALIGNMENT boundary. This is required to
make 'pdata' in 'struct rte_hash_key' align on its natural boundary
for atomic load/store.
Fixes: 473d1bebce43 ("hash: allow to store data in hash table")
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
Reviewed-by: Ola Liljedahl <ola.liljedahl@arm.com>
Reviewed-by: Steve Capper <steve.capper@arm.com>
Reviewed-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
lib/librte_hash/rte_cuckoo_hash.c | 4 +++-
lib/librte_hash/rte_cuckoo_hash.h | 2 +-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
index da8ddf40a..0c9df35d3 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
@@ -190,5 +190,7 @@ rte_hash_create(const struct rte_hash_parameters *params)
}
- const uint32_t key_entry_size = sizeof(struct rte_hash_key) + params->key_len;
+ const uint32_t key_entry_size =
+ RTE_ALIGN(sizeof(struct rte_hash_key) + params->key_len,
+ KEY_ALIGNMENT);
const uint64_t key_tbl_size = (uint64_t) key_entry_size * num_key_slots;
diff --git a/lib/librte_hash/rte_cuckoo_hash.h b/lib/librte_hash/rte_cuckoo_hash.h
index fc0e5c262..f486d90b3 100644
--- a/lib/librte_hash/rte_cuckoo_hash.h
+++ b/lib/librte_hash/rte_cuckoo_hash.h
@@ -124,5 +124,5 @@ struct rte_hash_key {
/* Variable key size */
char key[0];
-} __attribute__((aligned(KEY_ALIGNMENT)));
+};
/* All different signature compare functions */
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.162930338 +0000
+++ 0035-hash-fix-key-store-element-alignment.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,15 +1,16 @@
-From dbdbc4a2e9c4b67247ef2f6556debe7522b5d2e4 Mon Sep 17 00:00:00 2001
+From d5ed694189863035aef1b16ff24c12b732fd94d8 Mon Sep 17 00:00:00 2001
From: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Date: Fri, 26 Oct 2018 00:37:31 -0500
Subject: [PATCH] hash: fix key store element alignment
+[ upstream commit dbdbc4a2e9c4b67247ef2f6556debe7522b5d2e4 ]
+
Fix the key store array element alignment such that every array
element is aligned on KEY_ALIGNMENT boundary. This is required to
make 'pdata' in 'struct rte_hash_key' align on its natural boundary
for atomic load/store.
Fixes: 473d1bebce43 ("hash: allow to store data in hash table")
-Cc: stable@dpdk.org
Signed-off-by: Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>
Reviewed-by: Gavin Hu <gavin.hu@arm.com>
@@ -23,10 +24,10 @@
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
-index e08739370..d79ba68fd 100644
+index da8ddf40a..0c9df35d3 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
-@@ -280,5 +280,7 @@ rte_hash_create(const struct rte_hash_parameters *params)
+@@ -190,5 +190,7 @@ rte_hash_create(const struct rte_hash_parameters *params)
}
- const uint32_t key_entry_size = sizeof(struct rte_hash_key) + params->key_len;
@@ -36,7 +37,7 @@
const uint64_t key_tbl_size = (uint64_t) key_entry_size * num_key_slots;
diff --git a/lib/librte_hash/rte_cuckoo_hash.h b/lib/librte_hash/rte_cuckoo_hash.h
-index ff9518184..601b2ce78 100644
+index fc0e5c262..f486d90b3 100644
--- a/lib/librte_hash/rte_cuckoo_hash.h
+++ b/lib/librte_hash/rte_cuckoo_hash.h
@@ -124,5 +124,5 @@ struct rte_hash_key {
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'kni: fix build on Linux 4.19' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (33 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: fix key store element alignment' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix FIFO synchronization' " Kevin Traynor
` (28 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Ferruh Yigit; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 91f81a731aa0aca9908fc03166de5a41372f2950 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>
---
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 ++++++++++
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
@@ -136,4 +136,5 @@ static const char 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)
{
@@ -260,5 +261,7 @@ static int igb_get_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
return 0;
}
+#endif
+#ifndef ETHTOOL_SLINKSETTINGS
static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
{
@@ -365,4 +368,5 @@ static int igb_set_settings(struct net_device *netdev, struct ethtool_cmd *ecmd)
return 0;
}
+#endif
static u32 igb_get_link(struct net_device *netdev)
@@ -2738,6 +2742,10 @@ static int igb_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
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,
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
@@ -891,6 +891,8 @@ s32 ixgbe_dcb_hw_ets(struct ixgbe_hw *hw, struct ieee_ets *ets, int max_frame);
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);
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
@@ -159,4 +159,5 @@ static const char ixgbe_gstrings_test[][ETH_GSTRING_LEN] = {
#endif /* ETHTOOL_TEST */
+#ifndef ETHTOOL_GLINKSETTINGS
int ixgbe_get_settings(struct net_device *netdev,
struct ethtool_cmd *ecmd)
@@ -348,5 +349,7 @@ 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)
@@ -392,4 +395,5 @@ static int ixgbe_set_settings(struct net_device *netdev,
return err;
}
+#endif
static void ixgbe_get_pauseparam(struct net_device *netdev,
@@ -2816,6 +2820,10 @@ static int ixgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd)
//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,
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
@@ -28,4 +28,6 @@ kni_get_drvinfo(struct net_device *dev, struct ethtool_drvinfo *info)
}
+/* ETHTOOL_GLINKSETTINGS replaces ETHTOOL_GSET */
+#ifndef ETHTOOL_GLINKSETTINGS
static int
kni_get_settings(struct net_device *dev, struct ethtool_cmd *ecmd)
@@ -35,5 +37,8 @@ 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)
@@ -43,4 +48,5 @@ 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
@@ -191,6 +197,10 @@ 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,
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.189254362 +0000
+++ 0036-kni-fix-build-on-Linux-4.19.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,4 +1,4 @@
-From a9460a0b2efb80a913d8770dc188e816b227622f Mon Sep 17 00:00:00 2001
+From 91f81a731aa0aca9908fc03166de5a41372f2950 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)
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'kni: fix FIFO synchronization' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (34 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix build on Linux 4.19' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix kernel " Kevin Traynor
` (27 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Phil Yang
Cc: Honnappa Nagarahalli, Gavin Hu, Ola Liljedahl, Jerin Jacob,
Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 765313ff6695245477370492511ead09e20a2f6e Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Mon, 8 Oct 2018 17:11:44 +0800
Subject: [PATCH] kni: fix FIFO synchronization
[ upstream commit 0b05abe7bf9a46915bc1823753fc29c0a7b99ed1 ]
With existing code in kni_fifo_put, rx_q values are not being updated
before updating fifo_write. While reading rx_q in kni_net_rx_normal,
This is causing the sync issue on other core. The same situation happens
in kni_fifo_get as well.
So syncing the values by adding memory barriers to make sure the values
being synced before updating fifo_write and fifo_read.
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: Ola Liljedahl <ola.liljedahl@arm.com>
Reviewed-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
lib/librte_kni/rte_kni_fifo.h | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/lib/librte_kni/rte_kni_fifo.h b/lib/librte_kni/rte_kni_fifo.h
index ac26a8c0b..70ac14eec 100644
--- a/lib/librte_kni/rte_kni_fifo.h
+++ b/lib/librte_kni/rte_kni_fifo.h
@@ -29,6 +29,7 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, unsigned num)
unsigned i = 0;
unsigned fifo_write = fifo->write;
- unsigned fifo_read = fifo->read;
unsigned new_write = fifo_write;
+ rte_smp_rmb();
+ unsigned fifo_read = fifo->read;
for (i = 0; i < num; i++) {
@@ -40,4 +41,5 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, unsigned num)
fifo_write = new_write;
}
+ rte_smp_wmb();
fifo->write = fifo_write;
return i;
@@ -52,5 +54,7 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, unsigned num)
unsigned i = 0;
unsigned new_read = fifo->read;
+ rte_smp_rmb();
unsigned fifo_write = fifo->write;
+
for (i = 0; i < num; i++) {
if (new_read == fifo_write)
@@ -60,4 +64,5 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, unsigned num)
new_read = (new_read + 1) & (fifo->len - 1);
}
+ rte_smp_rmb();
fifo->read = new_read;
return i;
@@ -70,4 +75,7 @@ static inline uint32_t
kni_fifo_count(struct rte_kni_fifo *fifo)
{
- return (fifo->len + fifo->write - fifo->read) & (fifo->len - 1);
+ unsigned fifo_write = fifo->write;
+ rte_smp_rmb();
+ unsigned fifo_read = fifo->read;
+ return (fifo->len + fifo_write - fifo_read) & (fifo->len - 1);
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.221649524 +0000
+++ 0037-kni-fix-FIFO-synchronization.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 0b05abe7bf9a46915bc1823753fc29c0a7b99ed1 Mon Sep 17 00:00:00 2001
+From 765313ff6695245477370492511ead09e20a2f6e Mon Sep 17 00:00:00 2001
From: Phil Yang <phil.yang@arm.com>
Date: Mon, 8 Oct 2018 17:11:44 +0800
Subject: [PATCH] kni: fix FIFO synchronization
+[ upstream commit 0b05abe7bf9a46915bc1823753fc29c0a7b99ed1 ]
+
With existing code in kni_fifo_put, rx_q values are not being updated
before updating fifo_write. While reading rx_q in kni_net_rx_normal,
This is causing the sync issue on other core. The same situation happens
@@ -12,7 +14,6 @@
being synced before updating fifo_write and fifo_read.
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>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'kni: fix kernel FIFO synchronization' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (35 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix FIFO synchronization' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'test/kni: check module dependency' " Kevin Traynor
` (26 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Phil Yang; +Cc: Honnappa Nagarahalli, Gavin Hu, Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From efdbe3a293d9234454070c92036da3cc8de9cceb 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>
---
kernel/linux/kni/kni_fifo.h | 16 ++++++++++------
.../eal/include/exec-env/rte_kni_common.h | 1 +
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
@@ -17,5 +17,5 @@ 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;
@@ -28,5 +28,5 @@ kni_fifo_put(struct rte_kni_fifo *fifo, void **data, uint32_t num)
fifo_write = new_write;
}
- fifo->write = fifo_write;
+ smp_store_release(&fifo->write, fifo_write);
return i;
@@ -41,5 +41,5 @@ 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++) {
@@ -50,5 +50,5 @@ kni_fifo_get(struct rte_kni_fifo *fifo, void **data, uint32_t num)
new_read = (new_read + 1) & (fifo->len - 1);
}
- fifo->read = new_read;
+ smp_store_release(&fifo->read, new_read);
return i;
@@ -61,5 +61,7 @@ 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);
}
@@ -70,5 +72,7 @@ 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);
}
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
@@ -9,4 +9,5 @@
#ifdef __KERNEL__
#include <linux/if.h>
+#include <asm/barrier.h>
#define RTE_STD_C11
#else
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.247181298 +0000
+++ 0038-kni-fix-kernel-FIFO-synchronization.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From 711859cd0d076c7abc0c96ce637129a03280645f Mon Sep 17 00:00:00 2001
+From efdbe3a293d9234454070c92036da3cc8de9cceb 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>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'test/kni: check module dependency' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (36 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix kernel " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: remove unnecessary pause' " Kevin Traynor
` (25 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Naga Suresh Somarowthu; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 43258358b40e4f6ed077a550d37c5fb2be022be2 Mon Sep 17 00:00:00 2001
From: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Date: Fri, 14 Sep 2018 14:57:02 +0100
Subject: [PATCH] test/kni: check module dependency
[ upstream commit ee1caebc4dea6ae59ef60d2e3cc75338c213207d ]
Check the prerequisites to run the test
1.checked whether the rte_kni module is loaded, if not fail testcase
2.checked whether the rte_kni module is loaded with loop back mode,
if not skip packet forwarding testcase and log
3.Disabled the test in freebsd as test is not supported
Fixes: 5233e5924a ("app/test: update kni")
Signed-off-by: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
test/test/test_kni.c | 49 ++++++++++++++++++++++++++++++++++----------
1 file changed, 38 insertions(+), 11 deletions(-)
diff --git a/test/test/test_kni.c b/test/test/test_kni.c
index 1b876719a..6c1420a16 100644
--- a/test/test/test_kni.c
+++ b/test/test/test_kni.c
@@ -8,8 +8,9 @@
#include <string.h>
#include <sys/wait.h>
+#include <dirent.h>
#include "test.h"
-#ifndef RTE_LIBRTE_KNI
+#if !defined(RTE_EXEC_ENV_LINUXAPP) || !defined(RTE_LIBRTE_KNI)
static int
@@ -41,4 +42,6 @@ test_kni(void)
#define IFCONFIG "/sbin/ifconfig "
#define TEST_KNI_PORT "test_kni_port"
+#define KNI_MODULE_PATH "/sys/module/rte_kni"
+#define KNI_MODULE_PARAM_LO KNI_MODULE_PATH"/parameters/lo_mode"
#define KNI_TEST_MAX_PORTS 4
/* The threshold number of mbufs to be transmitted or received. */
@@ -463,5 +466,5 @@ test_kni(void)
{
int ret = -1;
- uint16_t nb_ports, port_id;
+ uint16_t port_id;
struct rte_kni *kni;
struct rte_mempool *mp;
@@ -471,4 +474,18 @@ test_kni(void)
const struct rte_pci_device *pci_dev;
const struct rte_bus *bus;
+ FILE *fd;
+ DIR *dir;
+ char buf[16];
+
+ dir = opendir(KNI_MODULE_PATH);
+ if (!dir) {
+ if (errno == ENOENT) {
+ printf("Cannot run UT due to missing rte_kni module\n");
+ return -1;
+ }
+ printf("opendir: %s", strerror(errno));
+ return -1;
+ }
+ closedir(dir);
/* Initialize KNI subsytem */
@@ -486,10 +503,4 @@ test_kni(void)
}
- nb_ports = rte_eth_dev_count_avail();
- if (nb_ports == 0) {
- printf("no supported nic port found\n");
- return -1;
- }
-
/* configuring port 0 for the test is enough */
port_id = 0;
@@ -520,7 +531,23 @@ test_kni(void)
/* basic test of kni processing */
- ret = test_kni_processing(port_id, mp);
- if (ret < 0)
- goto fail;
+ fd = fopen(KNI_MODULE_PARAM_LO, "r");
+ if (fd == NULL) {
+ printf("fopen: %s", strerror(errno));
+ return -1;
+ }
+ memset(&buf, 0, sizeof(buf));
+ if (fgets(buf, sizeof(buf), fd)) {
+ if (!strncmp(buf, "lo_mode_fifo", strlen("lo_mode_fifo")) ||
+ !strncmp(buf, "lo_mode_fifo_skb",
+ strlen("lo_mode_fifo_skb"))) {
+ ret = test_kni_processing(port_id, mp);
+ if (ret < 0) {
+ fclose(fd);
+ goto fail;
+ }
+ } else
+ printf("test_kni_processing skipped because of missing rte_kni module lo_mode argument\n");
+ }
+ fclose(fd);
/* test of allocating KNI with NULL mempool pointer */
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.272394906 +0000
+++ 0039-test-kni-check-module-dependency.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From ee1caebc4dea6ae59ef60d2e3cc75338c213207d Mon Sep 17 00:00:00 2001
+From 43258358b40e4f6ed077a550d37c5fb2be022be2 Mon Sep 17 00:00:00 2001
From: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Date: Fri, 14 Sep 2018 14:57:02 +0100
Subject: [PATCH] test/kni: check module dependency
+[ upstream commit ee1caebc4dea6ae59ef60d2e3cc75338c213207d ]
+
Check the prerequisites to run the test
1.checked whether the rte_kni module is loaded, if not fail testcase
2.checked whether the rte_kni module is loaded with loop back mode,
@@ -10,7 +12,6 @@
3.Disabled the test in freebsd as test is not supported
Fixes: 5233e5924a ("app/test: update kni")
-Cc: stable@dpdk.org
Signed-off-by: Naga Suresh Somarowthu <naga.sureshx.somarowthu@intel.com>
Acked-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -19,7 +20,7 @@
1 file changed, 38 insertions(+), 11 deletions(-)
diff --git a/test/test/test_kni.c b/test/test/test_kni.c
-index e38206905..f3c19b5a0 100644
+index 1b876719a..6c1420a16 100644
--- a/test/test/test_kni.c
+++ b/test/test/test_kni.c
@@ -8,8 +8,9 @@
@@ -40,14 +41,14 @@
+#define KNI_MODULE_PARAM_LO KNI_MODULE_PATH"/parameters/lo_mode"
#define KNI_TEST_MAX_PORTS 4
/* The threshold number of mbufs to be transmitted or received. */
-@@ -531,5 +534,5 @@ test_kni(void)
+@@ -463,5 +466,5 @@ test_kni(void)
{
int ret = -1;
- uint16_t nb_ports, port_id;
+ uint16_t port_id;
struct rte_kni *kni;
struct rte_mempool *mp;
-@@ -539,4 +542,18 @@ test_kni(void)
+@@ -471,4 +474,18 @@ test_kni(void)
const struct rte_pci_device *pci_dev;
const struct rte_bus *bus;
+ FILE *fd;
@@ -66,7 +67,7 @@
+ closedir(dir);
/* Initialize KNI subsytem */
-@@ -554,10 +571,4 @@ test_kni(void)
+@@ -486,10 +503,4 @@ test_kni(void)
}
- nb_ports = rte_eth_dev_count_avail();
@@ -77,7 +78,7 @@
-
/* configuring port 0 for the test is enough */
port_id = 0;
-@@ -588,7 +599,23 @@ test_kni(void)
+@@ -520,7 +531,23 @@ test_kni(void)
/* basic test of kni processing */
- ret = test_kni_processing(port_id, mp);
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'hash: remove unnecessary pause' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (37 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'test/kni: check module dependency' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Kevin Traynor
` (24 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yipeng Wang; +Cc: Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 27c9b92a18f2fa0f5f3b64bdff7ca53acbb14a07 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 26 Oct 2018 02:53:41 -0700
Subject: [PATCH] hash: remove unnecessary pause
[ upstream commit 2d28bb5ddd0fb7c3bed44f3f3fbc7a7bc449ea7a ]
There is a rte_pause in hash table reset function.
Since the loop is not a polling loop on shared
data structure, the rte_pause is not needed.
Fixes: b26473ff8f4a ("hash: add reset function")
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
lib/librte_hash/rte_cuckoo_hash.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
index 0c9df35d3..9a99a415e 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
@@ -27,5 +27,4 @@
#include <rte_ring.h>
#include <rte_compat.h>
-#include <rte_pause.h>
#include "rte_hash.h"
@@ -449,5 +448,5 @@ rte_hash_reset(struct rte_hash *h)
/* clear the free ring */
while (rte_ring_dequeue(h->free_slots, &ptr) == 0)
- rte_pause();
+ continue;
/* Repopulate the free slots ring. Entry zero is reserved for key misses */
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.300523998 +0000
+++ 0040-hash-remove-unnecessary-pause.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,45 +1,39 @@
-From 2d28bb5ddd0fb7c3bed44f3f3fbc7a7bc449ea7a Mon Sep 17 00:00:00 2001
+From 27c9b92a18f2fa0f5f3b64bdff7ca53acbb14a07 Mon Sep 17 00:00:00 2001
From: Yipeng Wang <yipeng1.wang@intel.com>
Date: Fri, 26 Oct 2018 02:53:41 -0700
Subject: [PATCH] hash: remove unnecessary pause
+[ upstream commit 2d28bb5ddd0fb7c3bed44f3f3fbc7a7bc449ea7a ]
+
There is a rte_pause in hash table reset function.
Since the loop is not a polling loop on shared
data structure, the rte_pause is not needed.
Fixes: b26473ff8f4a ("hash: add reset function")
-Cc: stable@dpdk.org
Signed-off-by: Yipeng Wang <yipeng1.wang@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
- lib/librte_hash/rte_cuckoo_hash.c | 5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
+ lib/librte_hash/rte_cuckoo_hash.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/lib/librte_hash/rte_cuckoo_hash.c b/lib/librte_hash/rte_cuckoo_hash.c
-index 0648a2294..5ddcccd87 100644
+index 0c9df35d3..9a99a415e 100644
--- a/lib/librte_hash/rte_cuckoo_hash.c
+++ b/lib/librte_hash/rte_cuckoo_hash.c
-@@ -28,5 +28,4 @@
+@@ -27,5 +27,4 @@
#include <rte_ring.h>
#include <rte_compat.h>
-#include <rte_pause.h>
#include "rte_hash.h"
-@@ -575,5 +574,5 @@ rte_hash_reset(struct rte_hash *h)
+@@ -449,5 +448,5 @@ rte_hash_reset(struct rte_hash *h)
/* clear the free ring */
while (rte_ring_dequeue(h->free_slots, &ptr) == 0)
- rte_pause();
+ continue;
- /* clear free extendable bucket ring and memory */
-@@ -582,5 +581,5 @@ rte_hash_reset(struct rte_hash *h)
- sizeof(struct rte_hash_bucket));
- while (rte_ring_dequeue(h->free_ext_bkts, &ptr) == 0)
-- rte_pause();
-+ continue;
- }
-
+ /* Repopulate the free slots ring. Entry zero is reserved for key misses */
--
2.19.0
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'kni: fix build on Linux < 3.14' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (38 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'hash: remove unnecessary pause' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' " Kevin Traynor
` (23 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 798a282799a1c6fc2bbdb8b5e9d2d46e5b1f5db3 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>
---
kernel/linux/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
@@ -9,4 +9,12 @@
#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.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.326145237 +0000
+++ 0041-kni-fix-build-on-Linux-3.14.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,4 +1,4 @@
-From c6c36fe28a7bfd8ca21784b2b8b62241f89de06e Mon Sep 17 00:00:00 2001
+From 798a282799a1c6fc2bbdb8b5e9d2d46e5b1f5db3 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:
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (39 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'kni: fix build on Linux < 3.14' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Kevin Traynor
` (22 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Phil Yang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 096df3753aa04483a6d2690561681bf5a6a818eb 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 962fad789..95aa29677 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
@@ -406,6 +406,9 @@ 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;
@@ -463,6 +466,9 @@ 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];
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.348713898 +0000
+++ 0042-app-testpmd-reserve-NUMA-node-per-port-and-per-ring.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,15 +1,16 @@
-From a569af2481cd3bd29e5c6d49f2d2f95586d750a8 Mon Sep 17 00:00:00 2001
+From 096df3753aa04483a6d2690561681bf5a6a818eb 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 962fad789..95aa29677 100644
--- a/app/test-pmd/parameters.c
+++ b/app/test-pmd/parameters.c
-@@ -417,6 +417,9 @@ parse_portnuma_config(const char *q_arg)
+@@ -406,6 +406,9 @@ 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();
@@ -34,7 +35,7 @@
+ socket_ids[num_sockets++] = socket_id;
}
port_numa[port_id] = socket_id;
-@@ -474,6 +477,9 @@ parse_ringnuma_config(const char *q_arg)
+@@ -463,6 +466,9 @@ 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();
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (40 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: reserve NUMA node per port and per ring' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: fix spelling in PMD guides' " Kevin Traynor
` (21 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Huaibin Wang; +Cc: Laurent Hardy, Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From de24609e11599ecbacf0257c91d2662d45160039 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 12ac6cde0..541bab7d0 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -2499,4 +2499,8 @@ i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
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);
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.374430623 +0000
+++ 0043-net-i40e-keep-promiscuous-on-if-allmulticast-is-enab.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,15 +1,15 @@
-From 815037b92b3437754183fb256a967a7e82d3820a Mon Sep 17 00:00:00 2001
+From de24609e11599ecbacf0257c91d2662d45160039 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 12ac6cde0..541bab7d0 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
-@@ -2588,4 +2588,8 @@ i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
+@@ -2499,4 +2499,8 @@ i40e_dev_promiscuous_disable(struct rte_eth_dev *dev)
PMD_DRV_LOG(ERR, "Failed to disable unicast promiscuous");
+ /* must remain in all_multicast mode */
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'doc: fix spelling in PMD guides' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (41 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: keep promiscuous on if allmulticast is enabled' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/enic: fix supported packet types' " Kevin Traynor
` (20 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Stephen Hemminger; +Cc: Marko Kovacevic, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From f7976873a926da002019b0f094fe4803706fab5e Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 18 Oct 2018 15:32:55 -0700
Subject: [PATCH] doc: fix spelling in PMD guides
[ upstream commit 987e0def5d40d848c13e031698d1e43245e04fa3 ]
Trivial pelling errors found by codespell.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Marko Kovacevic <marko.kovacevic@intel.com>
---
doc/guides/eventdevs/opdl.rst | 2 +-
doc/guides/nics/axgbe.rst | 2 +-
doc/guides/nics/virtio.rst | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/doc/guides/eventdevs/opdl.rst b/doc/guides/eventdevs/opdl.rst
index 210522329..0262a337a 100644
--- a/doc/guides/eventdevs/opdl.rst
+++ b/doc/guides/eventdevs/opdl.rst
@@ -63,5 +63,5 @@ As stated the order in which packets travel through queues is static in
nature. They go through the queues in the order the queues are setup at
initialisation ``rte_event_queue_setup()``. For example if an application
-sets up 3 queues, Q0, Q1, Q2 and has 3 assoicated ports P0, P1, P2 and
+sets up 3 queues, Q0, Q1, Q2 and has 3 associated ports P0, P1, P2 and
P3 then packets must be
diff --git a/doc/guides/nics/axgbe.rst b/doc/guides/nics/axgbe.rst
index e30f4944f..9b270a422 100644
--- a/doc/guides/nics/axgbe.rst
+++ b/doc/guides/nics/axgbe.rst
@@ -25,5 +25,5 @@ AXGBE PMD has support for:
- RSS (Receive Side Scaling)
- Checksum offload
-- Jumbo Frame upto 9K
+- Jumbo Frame up to 9K
diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst
index 7c099fb7c..2ae875cb4 100644
--- a/doc/guides/nics/virtio.rst
+++ b/doc/guides/nics/virtio.rst
@@ -48,5 +48,5 @@ In this release, the virtio PMD driver provides the basic functionality of packe
If given a different descriptor number by the upper application,
the virtio PMD generates a warning and fall back to the hard-coded value.
- Rx queue size can be configureable and up to 1024 since qemu 2.8 and above. Rx queue size is 256
+ Rx queue size can be configurable and up to 1024 since qemu 2.8 and above. Rx queue size is 256
by default. Tx queue size is still hard-coded to be 256.
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.412345340 +0000
+++ 0044-doc-fix-spelling-in-PMD-guides.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 987e0def5d40d848c13e031698d1e43245e04fa3 Mon Sep 17 00:00:00 2001
+From f7976873a926da002019b0f094fe4803706fab5e Mon Sep 17 00:00:00 2001
From: Stephen Hemminger <stephen@networkplumber.org>
Date: Thu, 18 Oct 2018 15:32:55 -0700
Subject: [PATCH] doc: fix spelling in PMD guides
+[ upstream commit 987e0def5d40d848c13e031698d1e43245e04fa3 ]
+
Trivial pelling errors found by codespell.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
@@ -10,10 +12,8 @@
---
doc/guides/eventdevs/opdl.rst | 2 +-
doc/guides/nics/axgbe.rst | 2 +-
- doc/guides/nics/enic.rst | 2 +-
- doc/guides/nics/mvpp2.rst | 2 +-
doc/guides/nics/virtio.rst | 2 +-
- 5 files changed, 5 insertions(+), 5 deletions(-)
+ 3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/doc/guides/eventdevs/opdl.rst b/doc/guides/eventdevs/opdl.rst
index 210522329..0262a337a 100644
@@ -37,28 +37,6 @@
+- Jumbo Frame up to 9K
-diff --git a/doc/guides/nics/enic.rst b/doc/guides/nics/enic.rst
-index c0490302e..746d89123 100644
---- a/doc/guides/nics/enic.rst
-+++ b/doc/guides/nics/enic.rst
-@@ -373,5 +373,5 @@ vectorized handler, take the following steps.
-
- As the current implementation is intended for field trials, by default, the
-- vectorized handler is not considerd (``enable-avx2-rx=0``).
-+ vectorized handler is not considered (``enable-avx2-rx=0``).
-
- - Run on a UCS M4 or later server with CPUs that support AVX2.
-diff --git a/doc/guides/nics/mvpp2.rst b/doc/guides/nics/mvpp2.rst
-index 59fa0e10d..82b9383ec 100644
---- a/doc/guides/nics/mvpp2.rst
-+++ b/doc/guides/nics/mvpp2.rst
-@@ -585,5 +585,5 @@ MVPP2 PMD supports DPDK traffic metering and policing that allows the following:
- For an additional description please refer to DPDK :doc:`Traffic Metering and Policing API <../prog_guide/traffic_metering_and_policing>`.
-
--The policer objects defined by this feature can work with the default policer defined via config file as discribed in :ref:`QoS Support <qossupport>`.
-+The policer objects defined by this feature can work with the default policer defined via config file as described in :ref:`QoS Support <qossupport>`.
-
- Limitations
diff --git a/doc/guides/nics/virtio.rst b/doc/guides/nics/virtio.rst
index 7c099fb7c..2ae875cb4 100644
--- a/doc/guides/nics/virtio.rst
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/enic: fix supported packet types' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (42 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: fix spelling in PMD guides' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'ethdev: fix doxygen comments of shared data fields' " Kevin Traynor
` (19 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Hyong Youb Kim; +Cc: John Daley, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From dcda5f2e4d2b2aa6ccbae12d23a20bb1e674087a Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Sat, 20 Oct 2018 01:32:47 -0700
Subject: [PATCH] net/enic: fix supported packet types
[ upstream commit 432ed10d817167007dee7ae81f0ee849dde5d7d2 ]
The handler for dev_supported_ptypes_get currently returns null when
the vectorized Rx handler is used. It is also missing tunnel packet
types. Add the missing packet types to the supported list, and return
the right list for the vectorized Rx handler.
Fixes: 8a6ff33d6d36 ("net/enic: add AVX2 based vectorized Rx handler")
Fixes: 93fb21fdbe23 ("net/enic: enable overlay offload for VXLAN and GENEVE")
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
---
drivers/net/enic/enic_ethdev.c | 30 +++++++++++++++++++++++++++---
1 file changed, 27 insertions(+), 3 deletions(-)
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
index b3d57771f..fa2f4709a 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
@@ -522,8 +522,32 @@ static const uint32_t *enicpmd_dev_supported_ptypes_get(struct rte_eth_dev *dev)
RTE_PTYPE_UNKNOWN
};
+ static const uint32_t ptypes_overlay[] = {
+ RTE_PTYPE_L2_ETHER,
+ RTE_PTYPE_L2_ETHER_VLAN,
+ RTE_PTYPE_L3_IPV4_EXT_UNKNOWN,
+ RTE_PTYPE_L3_IPV6_EXT_UNKNOWN,
+ RTE_PTYPE_L4_TCP,
+ RTE_PTYPE_L4_UDP,
+ RTE_PTYPE_L4_FRAG,
+ RTE_PTYPE_L4_NONFRAG,
+ RTE_PTYPE_TUNNEL_GRENAT,
+ RTE_PTYPE_INNER_L2_ETHER,
+ RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN,
+ RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN,
+ RTE_PTYPE_INNER_L4_TCP,
+ RTE_PTYPE_INNER_L4_UDP,
+ RTE_PTYPE_INNER_L4_FRAG,
+ RTE_PTYPE_INNER_L4_NONFRAG,
+ RTE_PTYPE_UNKNOWN
+ };
- if (dev->rx_pkt_burst == enic_recv_pkts ||
- dev->rx_pkt_burst == enic_noscatter_recv_pkts)
- return ptypes;
+ if (dev->rx_pkt_burst != enic_dummy_recv_pkts &&
+ dev->rx_pkt_burst != NULL) {
+ struct enic *enic = pmd_priv(dev);
+ if (enic->overlay_offload)
+ return ptypes_overlay;
+ else
+ return ptypes;
+ }
return NULL;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.440246915 +0000
+++ 0045-net-enic-fix-supported-packet-types.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 432ed10d817167007dee7ae81f0ee849dde5d7d2 Mon Sep 17 00:00:00 2001
+From dcda5f2e4d2b2aa6ccbae12d23a20bb1e674087a Mon Sep 17 00:00:00 2001
From: Hyong Youb Kim <hyonkim@cisco.com>
Date: Sat, 20 Oct 2018 01:32:47 -0700
Subject: [PATCH] net/enic: fix supported packet types
+[ upstream commit 432ed10d817167007dee7ae81f0ee849dde5d7d2 ]
+
The handler for dev_supported_ptypes_get currently returns null when
the vectorized Rx handler is used. It is also missing tunnel packet
types. Add the missing packet types to the supported list, and return
@@ -10,7 +12,6 @@
Fixes: 8a6ff33d6d36 ("net/enic: add AVX2 based vectorized Rx handler")
Fixes: 93fb21fdbe23 ("net/enic: enable overlay offload for VXLAN and GENEVE")
-Cc: stable@dpdk.org
Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
@@ -19,10 +20,10 @@
1 file changed, 27 insertions(+), 3 deletions(-)
diff --git a/drivers/net/enic/enic_ethdev.c b/drivers/net/enic/enic_ethdev.c
-index 4d450fe0c..1a129f414 100644
+index b3d57771f..fa2f4709a 100644
--- a/drivers/net/enic/enic_ethdev.c
+++ b/drivers/net/enic/enic_ethdev.c
-@@ -523,8 +523,32 @@ static const uint32_t *enicpmd_dev_supported_ptypes_get(struct rte_eth_dev *dev)
+@@ -522,8 +522,32 @@ static const uint32_t *enicpmd_dev_supported_ptypes_get(struct rte_eth_dev *dev)
RTE_PTYPE_UNKNOWN
};
+ static const uint32_t ptypes_overlay[] = {
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'ethdev: fix doxygen comments of shared data fields' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (43 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/enic: fix supported packet types' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost/crypto: fix shared lib build without cryptodev' " Kevin Traynor
` (18 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Thomas Monjalon; +Cc: Andrew Rybchenko, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From e4f0c1ecf3e8906c5f4b19a7ce143b12bb1e7681 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 19 Oct 2018 04:07:54 +0200
Subject: [PATCH] ethdev: fix doxygen comments of shared data fields
[ upstream commit f6a12685a5ff64188b5191f52fd486465e4919db ]
Some doxygen comments were wrongly associated to the next field
because of syntax /** instead of /**<
Some other cleanups (like alignment) are done.
Signed-off-by: Thomas Monjalon <thomas@monjalon.net>
Reviewed-by: Andrew Rybchenko <arybchenko@solarflare.com>
---
lib/librte_ethdev/rte_ethdev_core.h | 28 +++++++++++++---------------
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h
index 33d12b3a2..03ec4992a 100644
--- a/lib/librte_ethdev/rte_ethdev_core.h
+++ b/lib/librte_ethdev/rte_ethdev_core.h
@@ -582,20 +582,18 @@ struct rte_eth_dev_data {
void *dev_private; /**< PMD-specific private data */
- struct rte_eth_link dev_link;
- /**< Link-level information & status */
-
+ struct rte_eth_link dev_link; /**< Link-level information & status. */
struct rte_eth_conf dev_conf; /**< Configuration applied to device. */
uint16_t mtu; /**< Maximum Transmission Unit. */
-
uint32_t min_rx_buf_size;
- /**< Common rx buffer size handled by all queues */
+ /**< Common RX buffer size handled by all queues. */
uint64_t rx_mbuf_alloc_failed; /**< RX ring mbuf allocation failures. */
- struct ether_addr* mac_addrs;/**< Device Ethernet Link address. */
+ struct ether_addr *mac_addrs; /**< Device Ethernet link address. */
uint64_t mac_pool_sel[ETH_NUM_RECEIVE_MAC_ADDR];
- /** bitmap array of associating Ethernet MAC addresses to pools */
- struct ether_addr* hash_mac_addrs;
- /** Device Ethernet MAC addresses of hash filtering. */
+ /**< Bitmap associating MAC addresses to pools. */
+ struct ether_addr *hash_mac_addrs;
+ /**< Device Ethernet MAC addresses of hash filtering. */
uint16_t port_id; /**< Device [external] port identifier. */
+
__extension__
uint8_t promiscuous : 1, /**< RX promiscuous mode ON(1) / OFF(0). */
@@ -605,12 +603,12 @@ struct rte_eth_dev_data {
lro : 1; /**< RX LRO is ON(1) / OFF(0) */
uint8_t rx_queue_state[RTE_MAX_QUEUES_PER_PORT];
- /** Queues state: STARTED(1) / STOPPED(0) */
+ /**< Queues state: STARTED(1) / STOPPED(0). */
uint8_t tx_queue_state[RTE_MAX_QUEUES_PER_PORT];
- /** Queues state: STARTED(1) / STOPPED(0) */
- uint32_t dev_flags; /**< Capabilities */
- enum rte_kernel_driver kdrv; /**< Kernel driver passthrough */
- int numa_node; /**< NUMA node connection */
+ /**< Queues state: STARTED(1) / STOPPED(0). */
+ uint32_t dev_flags; /**< Capabilities. */
+ enum rte_kernel_driver kdrv; /**< Kernel driver passthrough. */
+ int numa_node; /**< NUMA node connection. */
struct rte_vlan_filter_conf vlan_filter_conf;
- /**< VLAN filter configuration. */
+ /**< VLAN filter configuration. */
struct rte_eth_dev_owner owner; /**< The port owner. */
} __rte_cache_aligned;
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.465864727 +0000
+++ 0046-ethdev-fix-doxygen-comments-of-shared-data-fields.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From f6a12685a5ff64188b5191f52fd486465e4919db Mon Sep 17 00:00:00 2001
+From e4f0c1ecf3e8906c5f4b19a7ce143b12bb1e7681 Mon Sep 17 00:00:00 2001
From: Thomas Monjalon <thomas@monjalon.net>
Date: Fri, 19 Oct 2018 04:07:54 +0200
Subject: [PATCH] ethdev: fix doxygen comments of shared data fields
+[ upstream commit f6a12685a5ff64188b5191f52fd486465e4919db ]
+
Some doxygen comments were wrongly associated to the next field
because of syntax /** instead of /**<
@@ -15,10 +17,10 @@
1 file changed, 13 insertions(+), 15 deletions(-)
diff --git a/lib/librte_ethdev/rte_ethdev_core.h b/lib/librte_ethdev/rte_ethdev_core.h
-index 0d28fd902..b9d10c53a 100644
+index 33d12b3a2..03ec4992a 100644
--- a/lib/librte_ethdev/rte_ethdev_core.h
+++ b/lib/librte_ethdev/rte_ethdev_core.h
-@@ -588,20 +588,18 @@ struct rte_eth_dev_data {
+@@ -582,20 +582,18 @@ struct rte_eth_dev_data {
void *dev_private; /**< PMD-specific private data */
- struct rte_eth_link dev_link;
@@ -46,7 +48,7 @@
+
__extension__
uint8_t promiscuous : 1, /**< RX promiscuous mode ON(1) / OFF(0). */
-@@ -611,12 +609,12 @@ struct rte_eth_dev_data {
+@@ -605,12 +603,12 @@ struct rte_eth_dev_data {
lro : 1; /**< RX LRO is ON(1) / OFF(0) */
uint8_t rx_queue_state[RTE_MAX_QUEUES_PER_PORT];
- /** Queues state: STARTED(1) / STOPPED(0) */
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'vhost/crypto: fix shared lib build without cryptodev' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (44 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'ethdev: fix doxygen comments of shared data fields' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: fix vector filling for packed ring' " Kevin Traynor
` (17 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Timothy Redaelli; +Cc: Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From cf7826b1c256b267c68ceb74acc2453d4f8a6dfe Mon Sep 17 00:00:00 2001
From: Timothy Redaelli <tredaelli@redhat.com>
Date: Tue, 16 Oct 2018 22:47:16 +0200
Subject: [PATCH] vhost/crypto: fix shared lib build without cryptodev
[ upstream commit 1726e9994c77cddd40a2982a1a01ceaf18a83403 ]
Currently it's not possible to build DPDK as shared library with
cryptodev disabled since vhost is trying to link with rte_crypto,
but rte_crypto and rte_hash are only needed when you build vhost_crypto
and so only when cryptodev is enabled.
This patch fix this by linking rte_vhost with rte_crypto and rte_hash
only when cryptodev is enabled.
Fixes: b4ca81298613 ("vhost/crypto: fix build without cryptodev")
Fixes: 939066d96563 ("vhost/crypto: add public function implementation")
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
lib/librte_vhost/Makefile | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/lib/librte_vhost/Makefile b/lib/librte_vhost/Makefile
index 531cf4832..5dd318987 100644
--- a/lib/librte_vhost/Makefile
+++ b/lib/librte_vhost/Makefile
@@ -20,6 +20,5 @@ ifeq ($(CONFIG_RTE_LIBRTE_VHOST_NUMA),y)
LDLIBS += -lnuma
endif
-LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev -lrte_net \
- -lrte_cryptodev -lrte_hash
+LDLIBS += -lrte_eal -lrte_mempool -lrte_mbuf -lrte_ethdev -lrte_net
# all source are stored in SRCS-y
@@ -32,4 +31,5 @@ SYMLINK-$(CONFIG_RTE_LIBRTE_VHOST)-include += rte_vhost.h rte_vdpa.h
# only compile vhost crypto when cryptodev is enabled
ifeq ($(CONFIG_RTE_LIBRTE_CRYPTODEV),y)
+LDLIBS += -lrte_cryptodev -lrte_hash
SRCS-$(CONFIG_RTE_LIBRTE_VHOST) += vhost_crypto.c
SYMLINK-$(CONFIG_RTE_LIBRTE_VHOST)-include += rte_vhost_crypto.h
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.491978670 +0000
+++ 0047-vhost-crypto-fix-shared-lib-build-without-cryptodev.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 1726e9994c77cddd40a2982a1a01ceaf18a83403 Mon Sep 17 00:00:00 2001
+From cf7826b1c256b267c68ceb74acc2453d4f8a6dfe Mon Sep 17 00:00:00 2001
From: Timothy Redaelli <tredaelli@redhat.com>
Date: Tue, 16 Oct 2018 22:47:16 +0200
Subject: [PATCH] vhost/crypto: fix shared lib build without cryptodev
+[ upstream commit 1726e9994c77cddd40a2982a1a01ceaf18a83403 ]
+
Currently it's not possible to build DPDK as shared library with
cryptodev disabled since vhost is trying to link with rte_crypto,
but rte_crypto and rte_hash are only needed when you build vhost_crypto
@@ -13,7 +15,6 @@
Fixes: b4ca81298613 ("vhost/crypto: fix build without cryptodev")
Fixes: 939066d96563 ("vhost/crypto: add public function implementation")
-Cc: stable@dpdk.org
Signed-off-by: Timothy Redaelli <tredaelli@redhat.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'vhost: fix vector filling for packed ring' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (45 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost/crypto: fix shared lib build without cryptodev' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ixgbe: fix flow create in ntuple check' " Kevin Traynor
` (16 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Tiwei Bie; +Cc: Maxime Coquelin, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 59cef10fedee13cc5fdac4d8b1e1732a244139f2 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Tue, 23 Oct 2018 14:07:49 +0800
Subject: [PATCH] vhost: fix vector filling for packed ring
[ upstream commit 16b9e38e74147fb004fa112c055b2fd500403b36 ]
We should return the length of the buffers described by
the current descriptor chain after filling the buffer
vector. So we need to zero the *len first.
Fixes: 2f3225a7d69b ("vhost: add vector filling support for packed ring")
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
lib/librte_vhost/virtio_net.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index f8794ee19..1c31c0562 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -522,4 +522,5 @@ fill_vec_buf_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
*desc_count = 0;
+ *len = 0;
while (1) {
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.514580860 +0000
+++ 0048-vhost-fix-vector-filling-for-packed-ring.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From 16b9e38e74147fb004fa112c055b2fd500403b36 Mon Sep 17 00:00:00 2001
+From 59cef10fedee13cc5fdac4d8b1e1732a244139f2 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie@intel.com>
Date: Tue, 23 Oct 2018 14:07:49 +0800
Subject: [PATCH] vhost: fix vector filling for packed ring
+[ upstream commit 16b9e38e74147fb004fa112c055b2fd500403b36 ]
+
We should return the length of the buffers described by
the current descriptor chain after filling the buffer
vector. So we need to zero the *len first.
Fixes: 2f3225a7d69b ("vhost: add vector filling support for packed ring")
-Cc: stable@dpdk.org
Signed-off-by: Tiwei Bie <tiwei.bie@intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/ixgbe: fix flow create in ntuple check' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (46 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: fix vector filling for packed ring' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Kevin Traynor
` (15 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Faicker Mo; +Cc: Wei Zhao, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 54952111c26539f4ca0449adf04eed0416be2099 Mon Sep 17 00:00:00 2001
From: Faicker Mo <faicker.mo@ucloud.cn>
Date: Tue, 18 Sep 2018 13:48:52 +0800
Subject: [PATCH] net/ixgbe: fix flow create in ntuple check
[ upstream commit d0dd0cf06135ec043c587bf14b66ec55adde876a ]
In ixgbe_flow_create function, ntuple filter is parsed first. If the
flow is considered to be ntuple filter, it will not go on to judge
ethertype filter, syn filter and fdir filter.
In the function ntuple_filter_to_5tuple, 5 tuple info is checked,
but it's too late to jump over the ntuple filter if it's a fdir filter.
Fixes: 46ea969177f3 ("net/ixgbe: add ntuple support to flow parser")
Signed-off-by: Faicker Mo <faicker.mo@ucloud.cn>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
---
drivers/net/ixgbe/ixgbe_flow.c | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/drivers/net/ixgbe/ixgbe_flow.c b/drivers/net/ixgbe/ixgbe_flow.c
index 1adf1b803..f0fafebc8 100644
--- a/drivers/net/ixgbe/ixgbe_flow.c
+++ b/drivers/net/ixgbe/ixgbe_flow.c
@@ -364,4 +364,15 @@ cons_parse_ntuple_filter(const struct rte_flow_attr *attr,
return -rte_errno;
}
+ if ((ipv4_mask->hdr.src_addr != 0 &&
+ ipv4_mask->hdr.src_addr != UINT32_MAX) ||
+ (ipv4_mask->hdr.dst_addr != 0 &&
+ ipv4_mask->hdr.dst_addr != UINT32_MAX) ||
+ (ipv4_mask->hdr.next_proto_id != UINT8_MAX &&
+ ipv4_mask->hdr.next_proto_id != 0)) {
+ rte_flow_error_set(error,
+ EINVAL, RTE_FLOW_ERROR_TYPE_ITEM,
+ item, "Not supported by ntuple filter");
+ return -rte_errno;
+ }
filter->dst_ip_mask = ipv4_mask->hdr.dst_addr;
@@ -433,4 +444,13 @@ cons_parse_ntuple_filter(const struct rte_flow_attr *attr,
return -rte_errno;
}
+ if ((tcp_mask->hdr.src_port != 0 &&
+ tcp_mask->hdr.src_port != UINT16_MAX) ||
+ (tcp_mask->hdr.dst_port != 0 &&
+ tcp_mask->hdr.dst_port != UINT16_MAX)) {
+ rte_flow_error_set(error,
+ EINVAL, RTE_FLOW_ERROR_TYPE_ITEM,
+ item, "Not supported by ntuple filter");
+ return -rte_errno;
+ }
filter->dst_port_mask = tcp_mask->hdr.dst_port;
@@ -468,4 +488,13 @@ cons_parse_ntuple_filter(const struct rte_flow_attr *attr,
return -rte_errno;
}
+ if ((udp_mask->hdr.src_port != 0 &&
+ udp_mask->hdr.src_port != UINT16_MAX) ||
+ (udp_mask->hdr.dst_port != 0 &&
+ udp_mask->hdr.dst_port != UINT16_MAX)) {
+ rte_flow_error_set(error,
+ EINVAL, RTE_FLOW_ERROR_TYPE_ITEM,
+ item, "Not supported by ntuple filter");
+ return -rte_errno;
+ }
filter->dst_port_mask = udp_mask->hdr.dst_port;
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.540783379 +0000
+++ 0049-net-ixgbe-fix-flow-create-in-ntuple-check.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From d0dd0cf06135ec043c587bf14b66ec55adde876a Mon Sep 17 00:00:00 2001
+From 54952111c26539f4ca0449adf04eed0416be2099 Mon Sep 17 00:00:00 2001
From: Faicker Mo <faicker.mo@ucloud.cn>
Date: Tue, 18 Sep 2018 13:48:52 +0800
Subject: [PATCH] net/ixgbe: fix flow create in ntuple check
+[ upstream commit d0dd0cf06135ec043c587bf14b66ec55adde876a ]
+
In ixgbe_flow_create function, ntuple filter is parsed first. If the
flow is considered to be ntuple filter, it will not go on to judge
ethertype filter, syn filter and fdir filter.
@@ -10,7 +12,6 @@
but it's too late to jump over the ntuple filter if it's a fdir filter.
Fixes: 46ea969177f3 ("net/ixgbe: add ntuple support to flow parser")
-Cc: stable@dpdk.org
Signed-off-by: Faicker Mo <faicker.mo@ucloud.cn>
Acked-by: Wei Zhao <wei.zhao1@intel.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (47 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ixgbe: fix flow create in ntuple check' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: cancel alarm handler at the end of closure' " Kevin Traynor
` (14 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Haiyue Wang; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From eab51dd4f64d8a0d54875b0c74b3890e91d07c8d 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 541bab7d0..53b40fa1f 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
@@ -5287,5 +5287,5 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
/* 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;
@@ -5558,5 +5558,5 @@ i40e_vsi_setup(struct i40e_pf *pf,
/* 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 |=
diff --git a/drivers/net/i40e/rte_pmd_i40e.c b/drivers/net/i40e/rte_pmd_i40e.c
index bba62b1c5..7ce5d02fa 100644
--- a/drivers/net/i40e/rte_pmd_i40e.c
+++ b/drivers/net/i40e/rte_pmd_i40e.c
@@ -339,5 +339,5 @@ i40e_vsi_set_tx_loopback(struct i40e_vsi *vsi, uint8_t on)
/* 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.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.567429226 +0000
+++ 0050-net-i40e-enable-loopback-function-for-X722-MAC.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From 2c6d4f0338efc2134efc55a574f73ac481b323b4 Mon Sep 17 00:00:00 2001
+From eab51dd4f64d8a0d54875b0c74b3890e91d07c8d 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,17 +21,17 @@
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 541bab7d0..53b40fa1f 100644
--- a/drivers/net/i40e/i40e_ethdev.c
+++ b/drivers/net/i40e/i40e_ethdev.c
-@@ -5373,5 +5373,5 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
+@@ -5287,5 +5287,5 @@ i40e_enable_pf_lb(struct i40e_pf *pf)
/* 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;
-@@ -5644,5 +5644,5 @@ i40e_vsi_setup(struct i40e_pf *pf,
+@@ -5558,5 +5558,5 @@ i40e_vsi_setup(struct i40e_pf *pf,
/* Use the VEB configuration if FW >= v5.0 */
- if (hw->aq.fw_maj_ver >= 5) {
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/i40e: cancel alarm handler at the end of closure' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (48 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: enable loopback function for X722 MAC' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ixgbe: fix RSS flow error return' " Kevin Traynor
` (13 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Xiaolong Ye; +Cc: Beilei Xing, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 1df95a893ca9998c878f878ab31dfd0decb2a27c Mon Sep 17 00:00:00 2001
From: Xiaolong Ye <xiaolong.ye@intel.com>
Date: Tue, 23 Oct 2018 08:54:28 +0800
Subject: [PATCH] net/i40e: cancel alarm handler at the end of closure
[ upstream commit e0e6a7f2154ee5ecd7c80a876d323118408369b9 ]
Some operations in i40evf_dev_close like i40evf_dev_promiscuous_disable
still need alarm handler to clear the pending cmd, if alarm handler is
canceled in early stage of i40evf_dev_close,
i40evf_dev_promiscuous_disable will result in failure.
Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
---
drivers/net/i40e/i40e_ethdev_vf.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
index 001c301b9..28b6543cd 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
@@ -2269,5 +2269,4 @@ i40evf_dev_close(struct rte_eth_dev *dev)
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
- rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
i40evf_dev_stop(dev);
i40e_dev_free_queues(dev);
@@ -2283,4 +2282,5 @@ i40evf_dev_close(struct rte_eth_dev *dev)
i40e_shutdown_adminq(hw);
i40evf_disable_irq0(hw);
+ rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.606011963 +0000
+++ 0051-net-i40e-cancel-alarm-handler-at-the-end-of-closure.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,15 +1,16 @@
-From e0e6a7f2154ee5ecd7c80a876d323118408369b9 Mon Sep 17 00:00:00 2001
+From 1df95a893ca9998c878f878ab31dfd0decb2a27c Mon Sep 17 00:00:00 2001
From: Xiaolong Ye <xiaolong.ye@intel.com>
Date: Tue, 23 Oct 2018 08:54:28 +0800
Subject: [PATCH] net/i40e: cancel alarm handler at the end of closure
+[ upstream commit e0e6a7f2154ee5ecd7c80a876d323118408369b9 ]
+
Some operations in i40evf_dev_close like i40evf_dev_promiscuous_disable
still need alarm handler to clear the pending cmd, if alarm handler is
canceled in early stage of i40evf_dev_close,
i40evf_dev_promiscuous_disable will result in failure.
Fixes: 864a800d706d ("net/i40e: remove VF interrupt handler")
-Cc: stable@dpdk.org
Signed-off-by: Xiaolong Ye <xiaolong.ye@intel.com>
Acked-by: Beilei Xing <beilei.xing@intel.com>
@@ -18,16 +19,16 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/i40e/i40e_ethdev_vf.c b/drivers/net/i40e/i40e_ethdev_vf.c
-index ed2fc1310..ae55b9b18 100644
+index 001c301b9..28b6543cd 100644
--- a/drivers/net/i40e/i40e_ethdev_vf.c
+++ b/drivers/net/i40e/i40e_ethdev_vf.c
-@@ -2247,5 +2247,4 @@ i40evf_dev_close(struct rte_eth_dev *dev)
+@@ -2269,5 +2269,4 @@ i40evf_dev_close(struct rte_eth_dev *dev)
struct i40e_hw *hw = I40E_DEV_PRIVATE_TO_HW(dev->data->dev_private);
- rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
i40evf_dev_stop(dev);
i40e_dev_free_queues(dev);
-@@ -2261,4 +2260,5 @@ i40evf_dev_close(struct rte_eth_dev *dev)
+@@ -2283,4 +2282,5 @@ i40evf_dev_close(struct rte_eth_dev *dev)
i40e_shutdown_adminq(hw);
i40evf_disable_irq0(hw);
+ rte_eal_alarm_cancel(i40evf_dev_alarm_handler, dev);
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/ixgbe: fix RSS flow error return' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (49 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: cancel alarm handler at the end of closure' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Kevin Traynor
` (12 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Wei Zhao; +Cc: Yuan Peng, Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From ae3865036d0a4d64b61aba7ae0dbf7462ad617e2 Mon Sep 17 00:00:00 2001
From: Wei Zhao <wei.zhao1@intel.com>
Date: Tue, 23 Oct 2018 11:38:10 +0800
Subject: [PATCH] net/ixgbe: fix RSS flow error return
[ upstream commit 6e8110cca64f69814ccb493efb5471f6e948ba44 ]
If hash function is 0, it should disable RSS then return 0.
Fixes: 518cc3927b13 ("net/ixgbe: move RSS to flow API")
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
---
drivers/net/ixgbe/ixgbe_rxtx.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
index f82b74a9a..b0172a7d2 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -5703,5 +5703,5 @@ ixgbe_config_rss_filter(struct rte_eth_dev *dev,
if ((rss_conf.rss_hf & IXGBE_RSS_OFFLOAD_ALL) == 0) {
ixgbe_rss_disable(dev);
- return -EINVAL;
+ return 0;
}
if (rss_conf.rss_key == NULL)
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.632436417 +0000
+++ 0052-net-ixgbe-fix-RSS-flow-error-return.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,12 +1,13 @@
-From 6e8110cca64f69814ccb493efb5471f6e948ba44 Mon Sep 17 00:00:00 2001
+From ae3865036d0a4d64b61aba7ae0dbf7462ad617e2 Mon Sep 17 00:00:00 2001
From: Wei Zhao <wei.zhao1@intel.com>
Date: Tue, 23 Oct 2018 11:38:10 +0800
Subject: [PATCH] net/ixgbe: fix RSS flow error return
+[ upstream commit 6e8110cca64f69814ccb493efb5471f6e948ba44 ]
+
If hash function is 0, it should disable RSS then return 0.
Fixes: 518cc3927b13 ("net/ixgbe: move RSS to flow API")
-Cc: stable@dpdk.org
Signed-off-by: Wei Zhao <wei.zhao1@intel.com>
Tested-by: Yuan Peng <yuan.peng@intel.com>
@@ -16,7 +17,7 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/ixgbe/ixgbe_rxtx.c b/drivers/net/ixgbe/ixgbe_rxtx.c
-index 8609f4195..9e2fbba3e 100644
+index f82b74a9a..b0172a7d2 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -5703,5 +5703,5 @@ ixgbe_config_rss_filter(struct rte_eth_dev *dev,
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/i40e: update Tx offload mask' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (50 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ixgbe: fix RSS flow error return' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: avoid memory barriers when no descriptors dequeued' " Kevin Traynor
` (11 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Beilei Xing; +Cc: Qi Zhang, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From be6dd0d729f7e4be61925a480c5e8bd3ac70245c 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 2a28ee348..de49f4478 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -56,4 +56,8 @@
#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 | \
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.663527208 +0000
+++ 0053-net-i40e-update-Tx-offload-mask.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From e4845bb4a68513c477dd35fcdcb086681788be7d Mon Sep 17 00:00:00 2001
+From be6dd0d729f7e4be61925a480c5e8bd3ac70245c 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,7 +19,7 @@
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 2a28ee348..de49f4478 100644
--- a/drivers/net/i40e/i40e_rxtx.c
+++ b/drivers/net/i40e/i40e_rxtx.c
@@ -56,4 +56,8 @@
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'vhost: avoid memory barriers when no descriptors dequeued' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (51 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/i40e: update Tx offload mask' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'raw/ifpga: check probing error' " Kevin Traynor
` (10 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Maxime Coquelin; +Cc: Jens Freimann, Tiwei Bie, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From e0ac20188fdc6b7b0fddb4c813385dc5982fd3b4 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Tue, 23 Oct 2018 12:07:10 +0200
Subject: [PATCH] vhost: avoid memory barriers when no descriptors dequeued
[ upstream commit e988a6d84599f83321f8036dc45acf26a97ad7ea ]
In both split and packed dequeue paths, flush_shadow_used_ring
and vhost_ring_call variants gets called even if not packets
have been dequeued, and so no descriptors updates happened.
It has an impact on CPU pipeline, as memory barriers are used
in these functions.
This patch don't call these functions if no descriptors have
been dequeued. The performance gain with split ring when
dequeue zero-copy is disabled should be null, but should be
noticeable with packed ring or dequeue zero-copy enabled.
Fixes: ae999ce49dcb ("vhost: add Tx support for packed ring")
Fixes: 915cf9404225 ("vhost: use shadow used ring in dequeue path")
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
Tested-by: Jens Freimann <jfreimann@redhat.com>
Reviewed-by: Tiwei Bie <tiwei.bie@intel.com>
---
lib/librte_vhost/virtio_net.c | 24 ++++++++++++++++--------
1 file changed, 16 insertions(+), 8 deletions(-)
diff --git a/lib/librte_vhost/virtio_net.c b/lib/librte_vhost/virtio_net.c
index 1c31c0562..8ad30c94a 100644
--- a/lib/librte_vhost/virtio_net.c
+++ b/lib/librte_vhost/virtio_net.c
@@ -1361,6 +1361,8 @@ virtio_dev_tx_split(struct virtio_net *dev, struct vhost_virtqueue *vq,
}
- flush_shadow_used_ring_split(dev, vq);
- vhost_vring_call_split(dev, vq);
+ if (likely(vq->shadow_used_idx)) {
+ flush_shadow_used_ring_split(dev, vq);
+ vhost_vring_call_split(dev, vq);
+ }
}
@@ -1441,6 +1443,8 @@ virtio_dev_tx_split(struct virtio_net *dev, struct vhost_virtqueue *vq,
if (unlikely(i < count))
vq->shadow_used_idx = i;
- flush_shadow_used_ring_split(dev, vq);
- vhost_vring_call_split(dev, vq);
+ if (likely(vq->shadow_used_idx)) {
+ flush_shadow_used_ring_split(dev, vq);
+ vhost_vring_call_split(dev, vq);
+ }
}
@@ -1477,6 +1481,8 @@ virtio_dev_tx_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
}
- flush_shadow_used_ring_packed(dev, vq);
- vhost_vring_call_packed(dev, vq);
+ if (likely(vq->shadow_used_idx)) {
+ flush_shadow_used_ring_packed(dev, vq);
+ vhost_vring_call_packed(dev, vq);
+ }
}
@@ -1556,6 +1562,8 @@ virtio_dev_tx_packed(struct virtio_net *dev, struct vhost_virtqueue *vq,
if (unlikely(i < count))
vq->shadow_used_idx = i;
- flush_shadow_used_ring_packed(dev, vq);
- vhost_vring_call_packed(dev, vq);
+ if (likely(vq->shadow_used_idx)) {
+ flush_shadow_used_ring_packed(dev, vq);
+ vhost_vring_call_packed(dev, vq);
+ }
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.690885454 +0000
+++ 0054-vhost-avoid-memory-barriers-when-no-descriptors-dequ.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From e988a6d84599f83321f8036dc45acf26a97ad7ea Mon Sep 17 00:00:00 2001
+From e0ac20188fdc6b7b0fddb4c813385dc5982fd3b4 Mon Sep 17 00:00:00 2001
From: Maxime Coquelin <maxime.coquelin@redhat.com>
Date: Tue, 23 Oct 2018 12:07:10 +0200
Subject: [PATCH] vhost: avoid memory barriers when no descriptors dequeued
+[ upstream commit e988a6d84599f83321f8036dc45acf26a97ad7ea ]
+
In both split and packed dequeue paths, flush_shadow_used_ring
and vhost_ring_call variants gets called even if not packets
have been dequeued, and so no descriptors updates happened.
@@ -17,7 +19,6 @@
Fixes: ae999ce49dcb ("vhost: add Tx support for packed ring")
Fixes: 915cf9404225 ("vhost: use shadow used ring in dequeue path")
-Cc: stable@dpdk.org
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
Reviewed-by: Jens Freimann <jfreimann@redhat.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'raw/ifpga: check probing error' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (52 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'vhost: avoid memory barriers when no descriptors dequeued' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ixgbe: update Tx offload mask' " Kevin Traynor
` (9 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Rosen Xu; +Cc: Shreyansh Jain, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 2f6edcf4a521dde6c0413f00a89eb3d8cf825c15 Mon Sep 17 00:00:00 2001
From: Rosen Xu <rosen.xu@intel.com>
Date: Tue, 23 Oct 2018 09:50:49 +0800
Subject: [PATCH] raw/ifpga: check probing error
[ upstream commit b6aadd7436bfc1fb2af67aa266588fdd80ca8988 ]
Fixes not checking rte_eal_hotplug_add() return value issue.
Coverity issue: 323508
Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
---
drivers/raw/ifpga_rawdev/ifpga_rawdev.c | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
index 3fed05781..32e318fc3 100644
--- a/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
+++ b/drivers/raw/ifpga_rawdev/ifpga_rawdev.c
@@ -543,4 +543,5 @@ ifpga_cfg_probe(struct rte_vdev_device *dev)
char *name = NULL;
char dev_name[RTE_RAWDEV_NAME_MAX_LEN];
+ int ret = -1;
devargs = dev->device.devargs;
@@ -584,5 +585,5 @@ ifpga_cfg_probe(struct rte_vdev_device *dev)
port, name);
- rte_eal_hotplug_add(RTE_STR(IFPGA_BUS_NAME),
+ ret = rte_eal_hotplug_add(RTE_STR(IFPGA_BUS_NAME),
dev_name, devargs->args);
end:
@@ -592,5 +593,5 @@ end:
free(name);
- return 0;
+ return ret;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.714730084 +0000
+++ 0055-raw-ifpga-check-probing-error.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From b6aadd7436bfc1fb2af67aa266588fdd80ca8988 Mon Sep 17 00:00:00 2001
+From 2f6edcf4a521dde6c0413f00a89eb3d8cf825c15 Mon Sep 17 00:00:00 2001
From: Rosen Xu <rosen.xu@intel.com>
Date: Tue, 23 Oct 2018 09:50:49 +0800
Subject: [PATCH] raw/ifpga: check probing error
+[ upstream commit b6aadd7436bfc1fb2af67aa266588fdd80ca8988 ]
+
Fixes not checking rte_eal_hotplug_add() return value issue.
Coverity issue: 323508
Fixes: ef1e8ede3da5 ("raw/ifpga: add Intel FPGA bus rawdev driver")
-Cc: stable@dpdk.org
Signed-off-by: Rosen Xu <rosen.xu@intel.com>
Acked-by: Shreyansh Jain <shreyansh.jain@nxp.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/ixgbe: update Tx offload mask' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (53 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'raw/ifpga: check probing error' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ena: recreate HW IO rings on start and stop' " Kevin Traynor
` (8 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Zhirun Yan; +Cc: Xiaolong Ye, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From b9f9c3e1e07189d654bcdd5229f3ebf8fd775ab4 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 b0172a7d2..792727353 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -59,4 +59,8 @@
/* 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 | \
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.739716540 +0000
+++ 0056-net-ixgbe-update-Tx-offload-mask.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From aa1e69aebb12a57038f7ed5664605b7bcccbbe20 Mon Sep 17 00:00:00 2001
+From b9f9c3e1e07189d654bcdd5229f3ebf8fd775ab4 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,7 +21,7 @@
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 b0172a7d2..792727353 100644
--- a/drivers/net/ixgbe/ixgbe_rxtx.c
+++ b/drivers/net/ixgbe/ixgbe_rxtx.c
@@ -59,4 +59,8 @@
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/ena: recreate HW IO rings on start and stop' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (54 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ixgbe: update Tx offload mask' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Kevin Traynor
` (7 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Michal Krawczyk; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From a867758113a2a3f60e58da58b650ae9c5636f0bf Mon Sep 17 00:00:00 2001
From: Michal Krawczyk <mk@semihalf.com>
Date: Thu, 25 Oct 2018 19:59:21 +0200
Subject: [PATCH] net/ena: recreate HW IO rings on start and stop
[ upstream commit df238f84c0a21d642bb9517d0c75ba831eeceb46 ]
On the start the driver was refilling all Rx buffs, but the old ones
were not released. That way running start/stop for a few times was
causing device to run out of descriptors.
To fix the issue, IO rings are now being destroyed on stop, and
recreated on start. That way the device is not losing any descriptors.
Furthermore, there was also memory leak for the Rx mbufs, which were
created on start and not destroyed on stop.
Fixes: eb0ef49dd5d5 ("net/ena: add stop and uninit routines")
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
---
drivers/net/ena/ena_ethdev.c | 196 ++++++++++++++++-------------------
1 file changed, 91 insertions(+), 105 deletions(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
index c255dc6db..de5d2edc2 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -240,4 +240,6 @@ static void ena_tx_queue_release_bufs(struct ena_ring *ring);
static int ena_link_update(struct rte_eth_dev *dev,
int wait_to_complete);
+static int ena_create_io_queue(struct ena_ring *ring);
+static void ena_free_io_queues_all(struct ena_adapter *adapter);
static int ena_queue_restart(struct ena_ring *ring);
static int ena_queue_restart_all(struct rte_eth_dev *dev,
@@ -511,5 +513,6 @@ static void ena_close(struct rte_eth_dev *dev)
(struct ena_adapter *)(dev->data->dev_private);
- ena_stop(dev);
+ if (adapter->state == ENA_ADAPTER_STATE_RUNNING)
+ ena_stop(dev);
adapter->state = ENA_ADAPTER_STATE_CLOSED;
@@ -747,6 +750,4 @@ static void ena_rx_queue_release(void *queue)
{
struct ena_ring *ring = (struct ena_ring *)queue;
- struct ena_adapter *adapter = ring->adapter;
- int ena_qid;
ena_assert_msg(ring->configured,
@@ -755,11 +756,4 @@ static void ena_rx_queue_release(void *queue)
"API violation");
- /* Destroy HW queue */
- ena_qid = ENA_IO_RXQ_IDX(ring->id);
- ena_com_destroy_io_queue(&adapter->ena_dev, ena_qid);
-
- /* Free all bufs */
- ena_rx_queue_release_bufs(ring);
-
/* Free ring resources */
if (ring->rx_buffer_info)
@@ -780,6 +774,4 @@ static void ena_tx_queue_release(void *queue)
{
struct ena_ring *ring = (struct ena_ring *)queue;
- struct ena_adapter *adapter = ring->adapter;
- int ena_qid;
ena_assert_msg(ring->configured,
@@ -788,8 +780,4 @@ static void ena_tx_queue_release(void *queue)
"API violation");
- /* Destroy HW queue */
- ena_qid = ENA_IO_TXQ_IDX(ring->id);
- ena_com_destroy_io_queue(&adapter->ena_dev, ena_qid);
-
/* Free all bufs */
ena_tx_queue_release_bufs(ring);
@@ -1079,8 +1067,84 @@ static void ena_stop(struct rte_eth_dev *dev)
rte_timer_stop_sync(&adapter->timer_wd);
+ ena_free_io_queues_all(adapter);
adapter->state = ENA_ADAPTER_STATE_STOPPED;
}
+static int ena_create_io_queue(struct ena_ring *ring)
+{
+ struct ena_adapter *adapter;
+ struct ena_com_dev *ena_dev;
+ struct ena_com_create_io_ctx ctx =
+ /* policy set to _HOST just to satisfy icc compiler */
+ { ENA_ADMIN_PLACEMENT_POLICY_HOST,
+ 0, 0, 0, 0, 0 };
+ uint16_t ena_qid;
+ int rc;
+
+ adapter = ring->adapter;
+ ena_dev = &adapter->ena_dev;
+
+ if (ring->type == ENA_RING_TYPE_TX) {
+ ena_qid = ENA_IO_TXQ_IDX(ring->id);
+ ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_TX;
+ ctx.mem_queue_type = ena_dev->tx_mem_queue_type;
+ ctx.queue_size = adapter->tx_ring_size;
+ } else {
+ ena_qid = ENA_IO_RXQ_IDX(ring->id);
+ ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX;
+ ctx.queue_size = adapter->rx_ring_size;
+ }
+ ctx.qid = ena_qid;
+ ctx.msix_vector = -1; /* interrupts not used */
+ ctx.numa_node = ena_cpu_to_node(ring->id);
+
+ rc = ena_com_create_io_queue(ena_dev, &ctx);
+ if (rc) {
+ RTE_LOG(ERR, PMD,
+ "failed to create io queue #%d (qid:%d) rc: %d\n",
+ ring->id, ena_qid, rc);
+ return rc;
+ }
+
+ rc = ena_com_get_io_handlers(ena_dev, ena_qid,
+ &ring->ena_com_io_sq,
+ &ring->ena_com_io_cq);
+ if (rc) {
+ RTE_LOG(ERR, PMD,
+ "Failed to get io queue handlers. queue num %d rc: %d\n",
+ ring->id, rc);
+ ena_com_destroy_io_queue(ena_dev, ena_qid);
+ return rc;
+ }
+
+ if (ring->type == ENA_RING_TYPE_TX)
+ ena_com_update_numa_node(ring->ena_com_io_cq, ctx.numa_node);
+
+ return 0;
+}
+
+static void ena_free_io_queues_all(struct ena_adapter *adapter)
+{
+ struct rte_eth_dev *eth_dev = adapter->rte_dev;
+ struct ena_com_dev *ena_dev = &adapter->ena_dev;
+ int i;
+ uint16_t ena_qid;
+ uint16_t nb_rxq = eth_dev->data->nb_rx_queues;
+ uint16_t nb_txq = eth_dev->data->nb_tx_queues;
+
+ for (i = 0; i < nb_txq; ++i) {
+ ena_qid = ENA_IO_TXQ_IDX(i);
+ ena_com_destroy_io_queue(ena_dev, ena_qid);
+ }
+
+ for (i = 0; i < nb_rxq; ++i) {
+ ena_qid = ENA_IO_RXQ_IDX(i);
+ ena_com_destroy_io_queue(ena_dev, ena_qid);
+
+ ena_rx_queue_release_bufs(&adapter->rx_ring[i]);
+ }
+}
+
static int ena_queue_restart(struct ena_ring *ring)
{
@@ -1090,4 +1154,10 @@ static int ena_queue_restart(struct ena_ring *ring)
"Trying to restart unconfigured queue\n");
+ rc = ena_create_io_queue(ring);
+ if (rc) {
+ PMD_INIT_LOG(ERR, "Failed to create IO queue!\n");
+ return rc;
+ }
+
ring->next_to_clean = 0;
ring->next_to_use = 0;
@@ -1112,15 +1182,8 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
const struct rte_eth_txconf *tx_conf)
{
- struct ena_com_create_io_ctx ctx =
- /* policy set to _HOST just to satisfy icc compiler */
- { ENA_ADMIN_PLACEMENT_POLICY_HOST,
- ENA_COM_IO_QUEUE_DIRECTION_TX, 0, 0, 0, 0 };
struct ena_ring *txq = NULL;
struct ena_adapter *adapter =
(struct ena_adapter *)(dev->data->dev_private);
unsigned int i;
- int ena_qid;
- int rc;
- struct ena_com_dev *ena_dev = &adapter->ena_dev;
txq = &adapter->tx_ring[queue_idx];
@@ -1147,35 +1210,4 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
}
- ena_qid = ENA_IO_TXQ_IDX(queue_idx);
-
- ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_TX;
- ctx.qid = ena_qid;
- ctx.msix_vector = -1; /* admin interrupts not used */
- ctx.mem_queue_type = ena_dev->tx_mem_queue_type;
- ctx.queue_size = adapter->tx_ring_size;
- ctx.numa_node = ena_cpu_to_node(queue_idx);
-
- rc = ena_com_create_io_queue(ena_dev, &ctx);
- if (rc) {
- RTE_LOG(ERR, PMD,
- "failed to create io TX queue #%d (qid:%d) rc: %d\n",
- queue_idx, ena_qid, rc);
- return rc;
- }
- txq->ena_com_io_cq = &ena_dev->io_cq_queues[ena_qid];
- txq->ena_com_io_sq = &ena_dev->io_sq_queues[ena_qid];
-
- rc = ena_com_get_io_handlers(ena_dev, ena_qid,
- &txq->ena_com_io_sq,
- &txq->ena_com_io_cq);
- if (rc) {
- RTE_LOG(ERR, PMD,
- "Failed to get TX queue handlers. TX queue num %d rc: %d\n",
- queue_idx, rc);
- goto err_destroy_io_queue;
- }
-
- ena_com_update_numa_node(txq->ena_com_io_cq, ctx.numa_node);
-
txq->port_id = dev->data->port_id;
txq->next_to_clean = 0;
@@ -1189,6 +1221,5 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
if (!txq->tx_buffer_info) {
RTE_LOG(ERR, PMD, "failed to alloc mem for tx buffer info\n");
- rc = -ENOMEM;
- goto err_destroy_io_queue;
+ return -ENOMEM;
}
@@ -1198,6 +1229,6 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
if (!txq->empty_tx_reqs) {
RTE_LOG(ERR, PMD, "failed to alloc mem for tx reqs\n");
- rc = -ENOMEM;
- goto err_free;
+ rte_free(txq->tx_buffer_info);
+ return -ENOMEM;
}
@@ -1215,11 +1246,4 @@ static int ena_tx_queue_setup(struct rte_eth_dev *dev,
return 0;
-
-err_free:
- rte_free(txq->tx_buffer_info);
-
-err_destroy_io_queue:
- ena_com_destroy_io_queue(ena_dev, ena_qid);
- return rc;
}
@@ -1231,14 +1255,8 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
struct rte_mempool *mp)
{
- struct ena_com_create_io_ctx ctx =
- /* policy set to _HOST just to satisfy icc compiler */
- { ENA_ADMIN_PLACEMENT_POLICY_HOST,
- ENA_COM_IO_QUEUE_DIRECTION_RX, 0, 0, 0, 0 };
struct ena_adapter *adapter =
(struct ena_adapter *)(dev->data->dev_private);
struct ena_ring *rxq = NULL;
- uint16_t ena_qid = 0;
- int i, rc = 0;
- struct ena_com_dev *ena_dev = &adapter->ena_dev;
+ int i;
rxq = &adapter->rx_ring[queue_idx];
@@ -1264,34 +1282,4 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
}
- ena_qid = ENA_IO_RXQ_IDX(queue_idx);
-
- ctx.qid = ena_qid;
- ctx.direction = ENA_COM_IO_QUEUE_DIRECTION_RX;
- ctx.mem_queue_type = ENA_ADMIN_PLACEMENT_POLICY_HOST;
- ctx.msix_vector = -1; /* admin interrupts not used */
- ctx.queue_size = adapter->rx_ring_size;
- ctx.numa_node = ena_cpu_to_node(queue_idx);
-
- rc = ena_com_create_io_queue(ena_dev, &ctx);
- if (rc) {
- RTE_LOG(ERR, PMD, "failed to create io RX queue #%d rc: %d\n",
- queue_idx, rc);
- return rc;
- }
-
- rxq->ena_com_io_cq = &ena_dev->io_cq_queues[ena_qid];
- rxq->ena_com_io_sq = &ena_dev->io_sq_queues[ena_qid];
-
- rc = ena_com_get_io_handlers(ena_dev, ena_qid,
- &rxq->ena_com_io_sq,
- &rxq->ena_com_io_cq);
- if (rc) {
- RTE_LOG(ERR, PMD,
- "Failed to get RX queue handlers. RX queue num %d rc: %d\n",
- queue_idx, rc);
- ena_com_destroy_io_queue(ena_dev, ena_qid);
- return rc;
- }
-
rxq->port_id = dev->data->port_id;
rxq->next_to_clean = 0;
@@ -1305,5 +1293,4 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
if (!rxq->rx_buffer_info) {
RTE_LOG(ERR, PMD, "failed to alloc mem for rx buffer info\n");
- ena_com_destroy_io_queue(ena_dev, ena_qid);
return -ENOMEM;
}
@@ -1316,5 +1303,4 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
rte_free(rxq->rx_buffer_info);
rxq->rx_buffer_info = NULL;
- ena_com_destroy_io_queue(ena_dev, ena_qid);
return -ENOMEM;
}
@@ -1327,5 +1313,5 @@ static int ena_rx_queue_setup(struct rte_eth_dev *dev,
dev->data->rx_queues[queue_idx] = rxq;
- return rc;
+ return 0;
}
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.767016466 +0000
+++ 0057-net-ena-recreate-HW-IO-rings-on-start-and-stop.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From df238f84c0a21d642bb9517d0c75ba831eeceb46 Mon Sep 17 00:00:00 2001
+From a867758113a2a3f60e58da58b650ae9c5636f0bf Mon Sep 17 00:00:00 2001
From: Michal Krawczyk <mk@semihalf.com>
Date: Thu, 25 Oct 2018 19:59:21 +0200
Subject: [PATCH] net/ena: recreate HW IO rings on start and stop
+[ upstream commit df238f84c0a21d642bb9517d0c75ba831eeceb46 ]
+
On the start the driver was refilling all Rx buffs, but the old ones
were not released. That way running start/stop for a few times was
causing device to run out of descriptors.
@@ -14,7 +16,6 @@
created on start and not destroyed on stop.
Fixes: eb0ef49dd5d5 ("net/ena: add stop and uninit routines")
-Cc: stable@dpdk.org
Signed-off-by: Michal Krawczyk <mk@semihalf.com>
---
@@ -22,7 +23,7 @@
1 file changed, 91 insertions(+), 105 deletions(-)
diff --git a/drivers/net/ena/ena_ethdev.c b/drivers/net/ena/ena_ethdev.c
-index c29a581e8..186ab0e6b 100644
+index c255dc6db..de5d2edc2 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -240,4 +240,6 @@ static void ena_tx_queue_release_bufs(struct ena_ring *ring);
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (55 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ena: recreate HW IO rings on start and stop' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Kevin Traynor
` (6 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Stewart Allen; +Cc: Michal Krawczyk, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 24afedd64121a2880e410df2a8971fb1f9ade22e 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 de5d2edc2..acb1a08e0 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1911,5 +1911,5 @@ 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 */
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.793878653 +0000
+++ 0058-net-ena-fix-passing-RSS-hash-to-mbuf.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From e5df9f33db00eb9d322abaefff30da74fd0e625d Mon Sep 17 00:00:00 2001
+From 24afedd64121a2880e410df2a8971fb1f9ade22e 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,7 +17,7 @@
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 de5d2edc2..acb1a08e0 100644
--- a/drivers/net/ena/ena_ethdev.c
+++ b/drivers/net/ena/ena_ethdev.c
@@ -1911,5 +1911,5 @@ static uint16_t eth_ena_recv_pkts(void *rx_queue, struct rte_mbuf **rx_pkts,
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'doc: fix typo in testpmd guide' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (56 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/ena: fix passing RSS hash to mbuf' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: fix QinQ strip display option' " Kevin Traynor
` (5 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Yong Wang; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 524f5f38d6ed9a9ee567960d4e0505d5f7d4ae08 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 f301c2b6f..4f9eacbe5 100644
--- a/doc/guides/testpmd_app_ug/run_app.rst
+++ b/doc/guides/testpmd_app_ug/run_app.rst
@@ -333,5 +333,5 @@ The commandline options are:
io (the default)
mac
- mac_swap
+ macswap
flowgen
rxonly
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.820288548 +0000
+++ 0059-doc-fix-typo-in-testpmd-guide.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,12 +1,13 @@
-From 153ccd050c8de4e9cc1589daee4d136434a0be61 Mon Sep 17 00:00:00 2001
+From 524f5f38d6ed9a9ee567960d4e0505d5f7d4ae08 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,7 +16,7 @@
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 f301c2b6f..4f9eacbe5 100644
--- a/doc/guides/testpmd_app_ug/run_app.rst
+++ b/doc/guides/testpmd_app_ug/run_app.rst
@@ -333,5 +333,5 @@ The commandline options are:
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'app/testpmd: fix QinQ strip display option' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (57 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'doc: fix typo in testpmd guide' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'common/qat: fix for invalid response from firmware' " Kevin Traynor
` (4 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Jerin Jacob; +Cc: Ferruh Yigit, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From e61584e9105918409c9417f3eca497c4d449958f Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 26 Oct 2018 12:40:32 +0000
Subject: [PATCH] app/testpmd: fix QinQ strip display option
[ upstream commit a72a1ef34e75f40efc0a2051f55d555af9138e9c ]
Fix a typo on DEV_RX_OFFLOAD_QINQ_STRIP selection.
Fixes: 0074d02fca21 ("app/testpmd: convert to new Rx offloads API")
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
---
app/test-pmd/config.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index a08a4a5d9..4d2f00f1b 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -544,5 +544,5 @@ port_offload_cap_display(portid_t port_id)
printf("Double VLANs stripped: ");
if (ports[port_id].dev_conf.rxmode.offloads &
- DEV_RX_OFFLOAD_VLAN_EXTEND)
+ DEV_RX_OFFLOAD_QINQ_STRIP)
printf("on\n");
else
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.844584747 +0000
+++ 0060-app-testpmd-fix-QinQ-strip-display-option.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,12 +1,13 @@
-From a72a1ef34e75f40efc0a2051f55d555af9138e9c Mon Sep 17 00:00:00 2001
+From e61584e9105918409c9417f3eca497c4d449958f Mon Sep 17 00:00:00 2001
From: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Date: Fri, 26 Oct 2018 12:40:32 +0000
Subject: [PATCH] app/testpmd: fix QinQ strip display option
+[ upstream commit a72a1ef34e75f40efc0a2051f55d555af9138e9c ]
+
Fix a typo on DEV_RX_OFFLOAD_QINQ_STRIP selection.
Fixes: 0074d02fca21 ("app/testpmd: convert to new Rx offloads API")
-Cc: stable@dpdk.org
Signed-off-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
@@ -15,10 +16,10 @@
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
-index 56afe46c0..b9e5dd923 100644
+index a08a4a5d9..4d2f00f1b 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
-@@ -588,5 +588,5 @@ port_offload_cap_display(portid_t port_id)
+@@ -544,5 +544,5 @@ port_offload_cap_display(portid_t port_id)
printf("Double VLANs stripped: ");
if (ports[port_id].dev_conf.rxmode.offloads &
- DEV_RX_OFFLOAD_VLAN_EXTEND)
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'common/qat: fix for invalid response from firmware' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (58 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'app/testpmd: fix QinQ strip display option' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'vfio: disable in FreeBSD build with meson' " Kevin Traynor
` (3 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Fiona Trahe; +Cc: Arek Kusztal, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 2ea575fce4957bc9d9a0ca04607f5676a473eb95 Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Wed, 24 Oct 2018 00:39:42 +0100
Subject: [PATCH] common/qat: fix for invalid response from firmware
[ upstream commit d09973f6c4dff9715304ef979c1b0d72aa365193 ]
Check that the firmware response has a bit set indicating
it's valid before dereferencing the rest of the response contents.
Fixes: 0bdd36e12245 ("crypto/qat: make dequeue function generic")
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
---
drivers/common/qat/qat_qp.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
index 7ca7a45eb..816166344 100644
--- a/drivers/common/qat/qat_qp.c
+++ b/drivers/common/qat/qat_qp.c
@@ -597,4 +597,5 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
uint32_t resp_counter = 0;
uint8_t *resp_msg;
+ uint8_t hdr_flags;
rx_queue = &(tmp_qp->rx_q);
@@ -602,8 +603,15 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
head = rx_queue->head;
resp_msg = (uint8_t *)rx_queue->base_addr + rx_queue->head;
+ hdr_flags = ((struct icp_qat_fw_comn_resp_hdr *)resp_msg)->hdr_flags;
while (*(uint32_t *)resp_msg != ADF_RING_EMPTY_SIG &&
resp_counter != nb_ops) {
+ if (unlikely(!ICP_QAT_FW_COMN_VALID_FLAG_GET(hdr_flags))) {
+ /* Fatal firmware error */
+ QAT_LOG(ERR, "QAT Firmware returned invalid response");
+ return 0;
+ }
+
if (tmp_qp->service_type == QAT_SERVICE_SYMMETRIC)
qat_sym_process_response(ops, resp_msg);
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.872853107 +0000
+++ 0061-common-qat-fix-for-invalid-response-from-firmware.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,13 +1,14 @@
-From d09973f6c4dff9715304ef979c1b0d72aa365193 Mon Sep 17 00:00:00 2001
+From 2ea575fce4957bc9d9a0ca04607f5676a473eb95 Mon Sep 17 00:00:00 2001
From: Fiona Trahe <fiona.trahe@intel.com>
Date: Wed, 24 Oct 2018 00:39:42 +0100
Subject: [PATCH] common/qat: fix for invalid response from firmware
+[ upstream commit d09973f6c4dff9715304ef979c1b0d72aa365193 ]
+
Check that the firmware response has a bit set indicating
it's valid before dereferencing the rest of the response contents.
Fixes: 0bdd36e12245 ("crypto/qat: make dequeue function generic")
-Cc: stable@dpdk.org
Signed-off-by: Fiona Trahe <fiona.trahe@intel.com>
Acked-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
@@ -16,16 +17,16 @@
1 file changed, 8 insertions(+)
diff --git a/drivers/common/qat/qat_qp.c b/drivers/common/qat/qat_qp.c
-index ec7f2b309..79f6a01ba 100644
+index 7ca7a45eb..816166344 100644
--- a/drivers/common/qat/qat_qp.c
+++ b/drivers/common/qat/qat_qp.c
-@@ -635,4 +635,5 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
+@@ -597,4 +597,5 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
uint32_t resp_counter = 0;
uint8_t *resp_msg;
+ uint8_t hdr_flags;
rx_queue = &(tmp_qp->rx_q);
-@@ -640,8 +641,15 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
+@@ -602,8 +603,15 @@ qat_dequeue_op_burst(void *qp, void **ops, uint16_t nb_ops)
head = rx_queue->head;
resp_msg = (uint8_t *)rx_queue->base_addr + rx_queue->head;
+ hdr_flags = ((struct icp_qat_fw_comn_resp_hdr *)resp_msg)->hdr_flags;
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'vfio: disable in FreeBSD build with meson' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (59 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'common/qat: fix for invalid response from firmware' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/nfp: " Kevin Traynor
` (2 subsequent siblings)
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Agalya Babu RadhaKrishnan; +Cc: Bruce Richardson, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From a3712b5a8328624ec6c94a2ae2a21b1bc87f3828 Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:09:58 +0100
Subject: [PATCH] vfio: disable in FreeBSD build with meson
[ upstream commit afbafdca7cb7f6c42d62881fec9dfb17e07eb099 ]
FreeBSD compilation was failing through meson build.
RTE_EAL_VFIO is not supported in FreeBSD.
But RTE_EAL_VFIO was enabled for both linux and freebsd.
So RTE_EAL_VFIO is removed from config/rte_config.h and
based on the platform RTE_EAL_VFIO flag is enabled/disabled appropriately.
Fixes: 844514c735 ("eal: build with meson")
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
config/meson.build | 3 +++
config/rte_config.h | 1 -
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/config/meson.build b/config/meson.build
index 4d755323f..25542ef8d 100644
--- a/config/meson.build
+++ b/config/meson.build
@@ -93,2 +93,5 @@ dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
install_headers('rte_config.h', subdir: get_option('include_subdir_arch'))
+
+# enable VFIO only if it is linux OS
+dpdk_conf.set('RTE_EAL_VFIO', host_machine.system() == 'linux')
diff --git a/config/rte_config.h b/config/rte_config.h
index 9ec77efda..e98dc5e29 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
@@ -35,5 +35,4 @@
#define RTE_LOG_DP_LEVEL RTE_LOG_INFO
#define RTE_BACKTRACE 1
-#define RTE_EAL_VFIO 1
#define RTE_MAX_VFIO_CONTAINERS 64
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.895995203 +0000
+++ 0062-vfio-disable-in-FreeBSD-build-with-meson.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,8 +1,10 @@
-From afbafdca7cb7f6c42d62881fec9dfb17e07eb099 Mon Sep 17 00:00:00 2001
+From a3712b5a8328624ec6c94a2ae2a21b1bc87f3828 Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:09:58 +0100
Subject: [PATCH] vfio: disable in FreeBSD build with meson
+[ upstream commit afbafdca7cb7f6c42d62881fec9dfb17e07eb099 ]
+
FreeBSD compilation was failing through meson build.
RTE_EAL_VFIO is not supported in FreeBSD.
But RTE_EAL_VFIO was enabled for both linux and freebsd.
@@ -10,7 +12,6 @@
based on the platform RTE_EAL_VFIO flag is enabled/disabled appropriately.
Fixes: 844514c735 ("eal: build with meson")
-Cc: stable@dpdk.org
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
@@ -20,20 +21,20 @@
2 files changed, 3 insertions(+), 1 deletion(-)
diff --git a/config/meson.build b/config/meson.build
-index 275f00b60..0b710b795 100644
+index 4d755323f..25542ef8d 100644
--- a/config/meson.build
+++ b/config/meson.build
-@@ -104,2 +104,5 @@ dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
+@@ -93,2 +93,5 @@ dpdk_conf.set_quoted('RTE_EAL_PMD_PATH', eal_pmd_path)
install_headers('rte_config.h', subdir: get_option('include_subdir_arch'))
+
+# enable VFIO only if it is linux OS
+dpdk_conf.set('RTE_EAL_VFIO', host_machine.system() == 'linux')
diff --git a/config/rte_config.h b/config/rte_config.h
-index 333fb0be9..d3732e953 100644
+index 9ec77efda..e98dc5e29 100644
--- a/config/rte_config.h
+++ b/config/rte_config.h
-@@ -36,5 +36,4 @@
+@@ -35,5 +35,4 @@
#define RTE_LOG_DP_LEVEL RTE_LOG_INFO
#define RTE_BACKTRACE 1
-#define RTE_EAL_VFIO 1
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/nfp: disable in FreeBSD build with meson' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (60 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'vfio: disable in FreeBSD build with meson' " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/avp: " Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/softnic: " Kevin Traynor
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Agalya Babu RadhaKrishnan; +Cc: dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 1cf336bf2b208e232228cfc690e3f1fe165ce7dc Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:09:59 +0100
Subject: [PATCH] net/nfp: disable in FreeBSD build with meson
[ upstream commit e60a1a8ba5dd48a2b1ff19833c06baa7b6fd0e17 ]
Disabled nfp build in FreeBSD because it is not supported
Added changes to enable NFP build if it is Linux OS and
disable in FreeBSD.
Fixes: d9b9ca7e0595 ("net/nfp: add to meson build")
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
---
drivers/net/nfp/meson.build | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/nfp/meson.build b/drivers/net/nfp/meson.build
index 3ba37e279..a8f29f986 100644
--- a/drivers/net/nfp/meson.build
+++ b/drivers/net/nfp/meson.build
@@ -2,4 +2,7 @@
# Copyright(c) 2018 Intel Corporation
+if host_machine.system() != 'linux'
+ build = false
+endif
sources = files('nfpcore/nfp_cpp_pcie_ops.c',
'nfpcore/nfp_nsp.c',
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.919580296 +0000
+++ 0063-net-nfp-disable-in-FreeBSD-build-with-meson.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From e60a1a8ba5dd48a2b1ff19833c06baa7b6fd0e17 Mon Sep 17 00:00:00 2001
+From 1cf336bf2b208e232228cfc690e3f1fe165ce7dc Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:09:59 +0100
Subject: [PATCH] net/nfp: disable in FreeBSD build with meson
+[ upstream commit e60a1a8ba5dd48a2b1ff19833c06baa7b6fd0e17 ]
+
Disabled nfp build in FreeBSD because it is not supported
Added changes to enable NFP build if it is Linux OS and
disable in FreeBSD.
Fixes: d9b9ca7e0595 ("net/nfp: add to meson build")
-Cc: stable@dpdk.org
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
---
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/avp: disable in FreeBSD build with meson' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (61 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/nfp: " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
2018-11-22 16:49 ` [dpdk-stable] patch 'net/softnic: " Kevin Traynor
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Agalya Babu RadhaKrishnan; +Cc: Allain Legacy, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 88963b80e4a22389db827ad33e26b5c6b3a3c4e5 Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:10:00 +0100
Subject: [PATCH] net/avp: disable in FreeBSD build with meson
[ upstream commit dbb7952d11e6f99023569531f59f8db9e484a3ed ]
Disabled avp build in FreeBSD because it is not supported.
Added changes to enable avp build if it is Linux OS and
disable in FreeBSD.
Fixes: ed71204dd06c ("net/avp: add to meson build")
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
---
drivers/net/avp/meson.build | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/avp/meson.build b/drivers/net/avp/meson.build
index 6076c31b9..b7ffdfc80 100644
--- a/drivers/net/avp/meson.build
+++ b/drivers/net/avp/meson.build
@@ -2,4 +2,7 @@
# Copyright(c) 2018 Intel Corporation
+if host_machine.system() != 'linux'
+ build = false
+endif
sources = files('avp_ethdev.c')
install_headers('rte_avp_common.h', 'rte_avp_fifo.h')
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.944223005 +0000
+++ 0064-net-avp-disable-in-FreeBSD-build-with-meson.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From dbb7952d11e6f99023569531f59f8db9e484a3ed Mon Sep 17 00:00:00 2001
+From 88963b80e4a22389db827ad33e26b5c6b3a3c4e5 Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:10:00 +0100
Subject: [PATCH] net/avp: disable in FreeBSD build with meson
+[ upstream commit dbb7952d11e6f99023569531f59f8db9e484a3ed ]
+
Disabled avp build in FreeBSD because it is not supported.
Added changes to enable avp build if it is Linux OS and
disable in FreeBSD.
Fixes: ed71204dd06c ("net/avp: add to meson build")
-Cc: stable@dpdk.org
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Acked-by: Allain Legacy <allain.legacy@windriver.com>
^ permalink raw reply [flat|nested] 71+ messages in thread
* [dpdk-stable] patch 'net/softnic: disable in FreeBSD build with meson' has been queued to stable release 18.08.1
2018-11-22 16:48 [dpdk-stable] patch 'crypto/mvsam: fix shared library build' has been queued to stable release 18.08.1 Kevin Traynor
` (62 preceding siblings ...)
2018-11-22 16:49 ` [dpdk-stable] patch 'net/avp: " Kevin Traynor
@ 2018-11-22 16:49 ` Kevin Traynor
63 siblings, 0 replies; 71+ messages in thread
From: Kevin Traynor @ 2018-11-22 16:49 UTC (permalink / raw)
To: Agalya Babu RadhaKrishnan; +Cc: Jasvinder Singh, dpdk stable
Hi,
FYI, your patch has been queued to stable release 18.08.1
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/28/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.
Kevin Traynor
---
>From 1071becb379cbe6fdf687bb9e0cc805aab724628 Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:10:01 +0100
Subject: [PATCH] net/softnic: disable in FreeBSD build with meson
[ upstream commit ddb05fec8c4cfadf5e5496b0919e78a7d7038799 ]
Disabled softnic build in FreeBSD because it is not supported
Added changes to enable softnic build if it is Linux OS and
disable in FreeBSD.
Fixes: 6b2a3900e2fb ("net/softnic: add to meson build")
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
---
drivers/net/softnic/meson.build | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/net/softnic/meson.build b/drivers/net/softnic/meson.build
index ff9822747..673d2cee8 100644
--- a/drivers/net/softnic/meson.build
+++ b/drivers/net/softnic/meson.build
@@ -2,4 +2,7 @@
# Copyright(c) 2018 Intel Corporation
+if host_machine.system() != 'linux'
+ build = false
+endif
allow_experimental_apis = true
install_headers('rte_eth_softnic.h')
--
2.19.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2018-11-22 16:47:33.967404698 +0000
+++ 0065-net-softnic-disable-in-FreeBSD-build-with-meson.patch 2018-11-22 16:47:32.000000000 +0000
@@ -1,14 +1,15 @@
-From ddb05fec8c4cfadf5e5496b0919e78a7d7038799 Mon Sep 17 00:00:00 2001
+From 1071becb379cbe6fdf687bb9e0cc805aab724628 Mon Sep 17 00:00:00 2001
From: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Date: Thu, 4 Oct 2018 15:10:01 +0100
Subject: [PATCH] net/softnic: disable in FreeBSD build with meson
+[ upstream commit ddb05fec8c4cfadf5e5496b0919e78a7d7038799 ]
+
Disabled softnic build in FreeBSD because it is not supported
Added changes to enable softnic build if it is Linux OS and
disable in FreeBSD.
Fixes: 6b2a3900e2fb ("net/softnic: add to meson build")
-Cc: stable@dpdk.org
Signed-off-by: Agalya Babu RadhaKrishnan <agalyax.babu.radhakrishnan@intel.com>
Acked-by: Jasvinder Singh <jasvinder.singh@intel.com>
@@ -17,7 +18,7 @@
1 file changed, 3 insertions(+)
diff --git a/drivers/net/softnic/meson.build b/drivers/net/softnic/meson.build
-index a18eef596..da249c068 100644
+index ff9822747..673d2cee8 100644
--- a/drivers/net/softnic/meson.build
+++ b/drivers/net/softnic/meson.build
@@ -2,4 +2,7 @@
^ permalink raw reply [flat|nested] 71+ messages in thread