From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id AAFAEA0351 for ; Thu, 6 Aug 2020 11:58:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A29A61C0D9; Thu, 6 Aug 2020 11:58:30 +0200 (CEST) Received: from mail-wm1-f68.google.com (mail-wm1-f68.google.com [209.85.128.68]) by dpdk.org (Postfix) with ESMTP id 085761C0D9 for ; Thu, 6 Aug 2020 11:58:30 +0200 (CEST) Received: by mail-wm1-f68.google.com with SMTP id 184so9083490wmb.0 for ; Thu, 06 Aug 2020 02:58:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=y1g8FTjtMbH/iXaVB8B/rqCH7Rfrqs6xL6geTrc7knM=; b=V6FHiCRhVrNvDcPSMfuK52j/HyMWGbEOnsIP5syt3SkBiAYdb2EoSORFpKlPBAsc8Y MwQd43ZkQj4Cig7QTwLCrjvWZtNeBoGnNXkMWe7Kp74pXwTIzB32UVY5x06pk05K7bHJ opvcVqvzJJ/+QF1VaDpU7gZOFB78btFDQ9VxyFkvrb+/ATWyLjJPqE4YgjZbNX8QbHJe GOfTEe11O3vbWMdunKPTwh3eYsftu38dkW43i9StubU4miU2hiG+59QoCK/5X28tUuTb JMA+YebXJLepNNz5/q268HElwpakCHls459fZt7Es3xH+uY+013FdFR08wwoZ7jUlHPg qpXw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=y1g8FTjtMbH/iXaVB8B/rqCH7Rfrqs6xL6geTrc7knM=; b=eBYueFBuuom4wvX3cR4M8yCP9onJKIan9achrzt6/PrttC3ScwIW/y5zHMocxSSJFR bu3H+rYX3aJtzU8FeI5MPQz5Qf4aK7vmB7S/0Xv2FxpGRUwErcJQ/srUsgPhBtUVJ612 mlYK+xcR1KJR9iUramG2e7KeR1n1vei6FWlzgNvztQElcinGVCYwjcM0pxfpNF6X+DtP JeSHXTO4E/s8oWCZ6sGsweDwm5HIL9kYZuFpspiDWP5uZFzKQcQMtreSlgdcM38937/p v+FwIOa5LQ+/mY00iQL4upPbCXgHiitCTgcM59XVkkSVXNyQ3+GeGlg7+G24F7X1bLXC WZBg== X-Gm-Message-State: AOAM530YRu1Tq9ramvAnObekH2SyZFjifbpG2afpb0nJ//2JoWH018WS I/DxWUn7+PShgM7EVc6zRyI= X-Google-Smtp-Source: ABdhPJwpKOl1DDlHXTgQjpy7Vq4g1s1MVAf9auz3AUxL0DuxZMWzGIUk8MHCsfqR53HTDpeCSVSolQ== X-Received: by 2002:a1c:9a06:: with SMTP id c6mr6832780wme.23.1596707909749; Thu, 06 Aug 2020 02:58:29 -0700 (PDT) Received: from localhost ([88.98.246.218]) by smtp.gmail.com with ESMTPSA id b139sm6203625wmd.19.2020.08.06.02.58.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 06 Aug 2020 02:58:28 -0700 (PDT) From: luca.boccassi@gmail.com To: Michael Baum Cc: Matan Azrad , dpdk stable Date: Thu, 6 Aug 2020 10:53:44 +0100 Message-Id: <20200806095411.774624-16-luca.boccassi@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200806095411.774624-1-luca.boccassi@gmail.com> References: <20200724120030.1863487-1-luca.boccassi@gmail.com> <20200806095411.774624-1-luca.boccassi@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: [dpdk-stable] patch 'net/mlx4: optimize stack memory size in probe' has been queued to stable release 19.11.4 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" 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 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 Acked-by: Matan Azrad --- 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 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@dpdk.org Signed-off-by: Michael Baum Acked-by: Matan Azrad @@ -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. */