[dpdk-stable] patch 'net/mlx4: optimize stack memory size in probe' has been queued to stable release 19.11.4
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Aug 6 11:53:44 CEST 2020
Hi,
FYI, your patch has been queued to stable release 19.11.4
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 08/08/20. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Thanks.
Luca Boccassi
---
>From c0e08db4c95be8eb8cd40139f2e594e7507bf39d Mon Sep 17 00:00:00 2001
From: Michael Baum <michaelba at mellanox.com>
Date: Tue, 21 Jul 2020 12:01:09 +0000
Subject: [PATCH] net/mlx4: optimize stack memory size in probe
[ upstream commit 4a28e831c97cd02e1646337ea6391288f7e8db05 ]
The mlx4_pci_probe function sets a pointer to the mlx4_priv structure,
and during that function fills its fields one by one with relevant
values.
It wants to put a value in the intr_handle field that has all its fields
zero except 2. To do so, it initializes a local struct rte_intr_handle
type variable and updates it only 2 fields and assigns it into the
appropriate field. However, it initializes a very large structure on the
stack while not at all certain that this place exists and in any case it
is very wasteful.
Reset all fields directly to the pointer by memset, then format the 2
fields to the relevant values.
Fixes: 63c2f23c852a ("net/mlx4: use a single interrupt handle")
Signed-off-by: Michael Baum <michaelba at mellanox.com>
Acked-by: Matan Azrad <matan at mellanox.com>
---
drivers/net/mlx4/mlx4.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
index 7771417eb..55398e4d0 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
@@ -1033,10 +1033,9 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
eth_dev->device = &pci_dev->device;
rte_eth_copy_pci_info(eth_dev, pci_dev);
/* Initialize local interrupt handle for current port. */
- priv->intr_handle = (struct rte_intr_handle){
- .fd = -1,
- .type = RTE_INTR_HANDLE_EXT,
- };
+ memset(&priv->intr_handle, 0, sizeof(struct rte_intr_handle));
+ priv->intr_handle.fd = -1;
+ priv->intr_handle.type = RTE_INTR_HANDLE_EXT;
/*
* Override ethdev interrupt handle pointer with private
* handle instead of that of the parent PCI device used by
--
2.20.1
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2020-08-06 10:53:16.420080948 +0100
+++ 0016-net-mlx4-optimize-stack-memory-size-in-probe.patch 2020-08-06 10:53:15.756596531 +0100
@@ -1,8 +1,10 @@
-From 4a28e831c97cd02e1646337ea6391288f7e8db05 Mon Sep 17 00:00:00 2001
+From c0e08db4c95be8eb8cd40139f2e594e7507bf39d Mon Sep 17 00:00:00 2001
From: Michael Baum <michaelba at mellanox.com>
Date: Tue, 21 Jul 2020 12:01:09 +0000
Subject: [PATCH] net/mlx4: optimize stack memory size in probe
+[ upstream commit 4a28e831c97cd02e1646337ea6391288f7e8db05 ]
+
The mlx4_pci_probe function sets a pointer to the mlx4_priv structure,
and during that function fills its fields one by one with relevant
values.
@@ -18,7 +20,6 @@
fields to the relevant values.
Fixes: 63c2f23c852a ("net/mlx4: use a single interrupt handle")
-Cc: stable at dpdk.org
Signed-off-by: Michael Baum <michaelba at mellanox.com>
Acked-by: Matan Azrad <matan at mellanox.com>
@@ -27,10 +28,10 @@
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/drivers/net/mlx4/mlx4.c b/drivers/net/mlx4/mlx4.c
-index e619a749d..71061a720 100644
+index 7771417eb..55398e4d0 100644
--- a/drivers/net/mlx4/mlx4.c
+++ b/drivers/net/mlx4/mlx4.c
-@@ -1029,10 +1029,9 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
+@@ -1033,10 +1033,9 @@ mlx4_pci_probe(struct rte_pci_driver *pci_drv, struct rte_pci_device *pci_dev)
eth_dev->device = &pci_dev->device;
rte_eth_copy_pci_info(eth_dev, pci_dev);
/* Initialize local interrupt handle for current port. */
More information about the stable
mailing list