[dpdk-stable] [dpdk-dev] [PATCH] net/mlx4: optimize stuck memory size in probe
Raslan Darawsheh
rasland at mellanox.com
Wed Jul 22 17:30:49 CEST 2020
Hi,
> -----Original Message-----
> From: dev <dev-bounces at dpdk.org> On Behalf Of Michael Baum
> Sent: Tuesday, July 21, 2020 3:01 PM
> To: dev at dpdk.org
> Cc: Matan Azrad <matan at mellanox.com>; Slava Ovsiienko
> <viacheslavo at mellanox.com>; stable at dpdk.org
> Subject: [dpdk-dev] [PATCH] net/mlx4: optimize stuck memory size in probe
>
> 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")
> Cc: stable at dpdk.org
>
> 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 e619a74..71061a7 100644
> --- a/drivers/net/mlx4/mlx4.c
> +++ b/drivers/net/mlx4/mlx4.c
> @@ -1029,10 +1029,9 @@ struct mlx4_conf {
> 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
> --
> 1.8.3.1
Patch applied to next-net-mlx
Kindest regards,
Raslan Darawsheh
More information about the stable
mailing list