From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id B3431A0C3F for ; Sat, 12 Jun 2021 01:08:57 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id AD08C40DDB; Sat, 12 Jun 2021 01:08:57 +0200 (CEST) Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2066.outbound.protection.outlook.com [40.107.236.66]) by mails.dpdk.org (Postfix) with ESMTP id 09F24406A2 for ; Sat, 12 Jun 2021 01:08:56 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FHvcUq2kL2tDuumgsi6z/Nhkh/dKCi5ei+Lmk7YLyxsvli/i8bGv0do/51Zz5AjcCW22OFeiv2yaW/Nx4jKOO7G4Ly9HlE4bXclvTyr6tnZ9G0+b5kdKKLni/kOxthc7VKzFsqUssld4gTkOqDHy8XfE89II61gmHqCPCoN0i8T+msN1wMxGJ14Fh8cjmiY5ndC8Cn0y3XiI+ZvPQOt6+MBNcpCFf2/Ltj2rtcpeZVDIKTLvbwYZNprcfcJ42zyUXpWjE1PdPc89efgoyzPJb7EwO2PAgOOXoRtNqyAOdgJjqmlMKKyXNeUNLPobLKmuBosSiICHMsqqvEob4KQYAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nUY9iWqAPLpaHJjNs6oWxq1x7ovsHGqyOw0qDSwjZ/0=; b=D7AuTg8WsTKxCvoJYh0DqLR+I6TKNH0O4x/6CbwYwH+402bTEuKc/yCdZWtesHPiqslzFXLyRlXLQ/GAjt7gi6sNdPIYnd7NC6MiNuZxunJzpQGMzGBNz6zeHV0YPVYRv/sfxywxAAt4k8HKYXNVh1oFGHkjK3vdGldBrMhFhKRdytatR1vGeZ/Gjtc/RidmPdNHs+AYB4zA9RQJxLuWUNbkRCeFyu3pjQ7wxXyHK8TBh9lJGUvBoyu3tscTKnSOUUZoygNzQVNKQ6DbfKq8BxPOqUoy+he6bKoB1d1xeu3AOjXksUUYgxMke4WD6m1q3incPknQokTkU29lfslp6A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=nUY9iWqAPLpaHJjNs6oWxq1x7ovsHGqyOw0qDSwjZ/0=; b=msu2bJNGAnYqTyz27CTEfPZ1qg4rZxaXahLiEHfhdsRad+9hteNUAlP4htiuneNdsuGJaCzeE7mcbELVsIUUk2yzLzjWBOxQfQM9siG36ng1iYwEsT6XfXUufu/zbekJ26L2foYgNrJfzKTs/yGMYP8cKb9GmDtx7T1PfpJ6QQIVQ4YI0sf13Wu7uTXD9U1agFIo6vUGBhhyllNRDEGaM7dec3qsErOHcfKY4mm/3QXHOKoHgsQWe5kk36y5tsQ7N4ZCS8YDS22xDuK7Us3AYqmrs00R68L5v2uBoipRvbsp0aUJFICmExUuQzqyU6jnA/IRDDnQcxEp+cA1keyqig== Received: from MWHPR2201CA0058.namprd22.prod.outlook.com (2603:10b6:301:16::32) by DM6PR12MB3065.namprd12.prod.outlook.com (2603:10b6:5:3c::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20; Fri, 11 Jun 2021 23:08:54 +0000 Received: from CO1NAM11FT053.eop-nam11.prod.protection.outlook.com (2603:10b6:301:16:cafe::89) by MWHPR2201CA0058.outlook.office365.com (2603:10b6:301:16::32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.20 via Frontend Transport; Fri, 11 Jun 2021 23:08:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34) smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.112.34 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.112.34; helo=mail.nvidia.com; Received: from mail.nvidia.com (216.228.112.34) by CO1NAM11FT053.mail.protection.outlook.com (10.13.175.63) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.4219.21 via Frontend Transport; Fri, 11 Jun 2021 23:08:54 +0000 Received: from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 11 Jun 2021 23:08:51 +0000 From: Xueming Li To: Viacheslav Ovsiienko CC: Luca Boccassi , dpdk stable Date: Sat, 12 Jun 2021 07:02:17 +0800 Message-ID: <20210611230433.8208-43-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210611230433.8208-1-xuemingl@nvidia.com> References: <20210510160258.30982-229-xuemingl@nvidia.com> <20210611230433.8208-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [172.20.187.5] X-ClientProxiedBy: HQMAIL105.nvidia.com (172.20.187.12) To HQMAIL107.nvidia.com (172.20.187.13) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 2af4ee3a-d9f8-4d09-3476-08d92d2de270 X-MS-TrafficTypeDiagnostic: DM6PR12MB3065: X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:9508; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: R4+TYReE4ZgNZRHfhgfyUgF+M4jwwAGhSDnHGQ/HbMpZV6Wi+dhWjzohj63llWGFKxiW73HLENsdIajz/3g+GWt7neXKRgV+Ys1uyPPVsCotRBZsMX4kQKrYRmAeLWqHw8ZTZgubTKRWakAe71mMfiulsGVkmo/TVZ3JxKgxYE7ckRap610Uqf+A2QzKz1qtcMSw8AsZBaeKa+EhUXHHO1XGdP6P3hWeBW5X9JQgS357OGyWryVP4h2gtz1t60Q6SymRBHOs2j9ZV7Oa/1WZAfmqxKkEr0glFyrneJ/A7sGP/T+ZX3l3ihirbrEngKe+6EN4+I2lY5ncatBr9RgodQ8r0DaHqAP+AQPNJD84UC/U2NidmtsCvNnvwUh5kk8ifM+jw0IZX/o+DY+6EUZ1Pg9Buo00pmQH2fPzILyOicJjNA2Y9A4LiV102oqI5F7fEnjWtf1yCN8mYmHVBy/4/hQSnS1GYwnKdjZ8SIjwcZspKsMdToBK4A94yis2o4pgLE9C3GVdBZ09qJrU0hpBrEf6+/RL43Mwy4A+YWDml1+mJgBdP3crRfqGFzvxatv62g0aQkoF8uryB0xUjgh1AONhEYZk3Pzi63xXioAsDZ7drWtunnMlRSPhNWNvMaIem12LP5WgD7vdQq7/eazfP/vB6bycIHY7ENXbXI0qsnau51ACdtv6nMwzp+oc3kjEZjFwvrSddy4H4YOLGbIy5tdsyz+eZ1sDYRfnVwbRBbGyqGNjfdXNNc8Vt+Mhf+eKGvhCtI7g9xOXXwGQs/iVnerjY5ca2HwLp9c/5E6XUXGEPHOcWakvovd/xjh/EmGo X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE; SFS:(4636009)(39860400002)(346002)(376002)(396003)(136003)(36840700001)(46966006)(2906002)(36906005)(8936002)(6636002)(5660300002)(966005)(356005)(316002)(37006003)(4326008)(82740400003)(8676002)(6666004)(53546011)(2616005)(478600001)(83380400001)(426003)(47076005)(54906003)(7636003)(6862004)(26005)(70586007)(7696005)(6286002)(36860700001)(55016002)(82310400003)(1076003)(336012)(36756003)(186003)(86362001)(16526019)(70206006); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jun 2021 23:08:54.4348 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2af4ee3a-d9f8-4d09-3476-08d92d2de270 X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: CO1NAM11FT053.eop-nam11.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR12MB3065 Subject: [dpdk-stable] patch 'net/mlx4: fix buffer leakage on device close' has been queued to stable release 20.11.2 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.29 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 20.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 06/14/21. 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. Queued patches are on a temporary branch at: https://github.com/steevenlee/dpdk This queued commit can be viewed at: https://github.com/steevenlee/dpdk/commit/1c43f69982f8ca627c4ccb5bbac68b980ef85a3e Thanks. Xueming Li --- >From 1c43f69982f8ca627c4ccb5bbac68b980ef85a3e Mon Sep 17 00:00:00 2001 From: Viacheslav Ovsiienko Date: Sat, 17 Apr 2021 20:14:14 +0300 Subject: [PATCH] net/mlx4: fix buffer leakage on device close Cc: Luca Boccassi [ upstream commit b014c6b7b595277860308468c4c12a9337bf132e ] The mlx4 PMD tracks the buffers (mbufs) for the packets being transmitted in the dedicated array named as "elts". The tx_burst routine frees the mbufs from this array once it needs to rearm the hardware descriptor and store the new mbuf, so it looks like as replacement mbuf pointer in the elts array. On the device stop mlx4 PMD freed only the part of elts according tail and head pointers, leaking the rest of buffers, remained in the elts array. Fixes: a2ce2121c01c ("net/mlx4: separate Tx configuration functions") Signed-off-by: Viacheslav Ovsiienko --- drivers/net/mlx4/mlx4_rxtx.c | 4 ---- drivers/net/mlx4/mlx4_txq.c | 19 +++++++++---------- 2 files changed, 9 insertions(+), 14 deletions(-) diff --git a/drivers/net/mlx4/mlx4_rxtx.c b/drivers/net/mlx4/mlx4_rxtx.c index adc1c9bf81..ecf08f53cf 100644 --- a/drivers/net/mlx4/mlx4_rxtx.c +++ b/drivers/net/mlx4/mlx4_rxtx.c @@ -921,10 +921,6 @@ mlx4_tx_burst(void *dpdk_txq, struct rte_mbuf **pkts, uint16_t pkts_n) if (likely(elt->buf != NULL)) { struct rte_mbuf *tmp = elt->buf; -#ifdef RTE_LIBRTE_MLX4_DEBUG - /* Poisoning. */ - memset(&elt->buf, 0x66, sizeof(struct rte_mbuf *)); -#endif /* Faster than rte_pktmbuf_free(). */ do { struct rte_mbuf *next = tmp->next; diff --git a/drivers/net/mlx4/mlx4_txq.c b/drivers/net/mlx4/mlx4_txq.c index 60560d9545..cc5200a1e1 100644 --- a/drivers/net/mlx4/mlx4_txq.c +++ b/drivers/net/mlx4/mlx4_txq.c @@ -206,19 +206,18 @@ mlx4_tx_uar_uninit_secondary(struct rte_eth_dev *dev __rte_unused) static void mlx4_txq_free_elts(struct txq *txq) { - unsigned int elts_head = txq->elts_head; - unsigned int elts_tail = txq->elts_tail; struct txq_elt (*elts)[txq->elts_n] = txq->elts; - unsigned int elts_m = txq->elts_n - 1; + unsigned int n = txq->elts_n; - DEBUG("%p: freeing WRs", (void *)txq); - while (elts_tail != elts_head) { - struct txq_elt *elt = &(*elts)[elts_tail++ & elts_m]; + DEBUG("%p: freeing WRs, %u", (void *)txq, n); + while (n--) { + struct txq_elt *elt = &(*elts)[n]; - MLX4_ASSERT(elt->buf != NULL); - rte_pktmbuf_free(elt->buf); - elt->buf = NULL; - elt->wqe = NULL; + if (elt->buf) { + rte_pktmbuf_free(elt->buf); + elt->buf = NULL; + elt->wqe = NULL; + } } txq->elts_tail = txq->elts_head; } -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2021-06-12 06:53:57.771358900 +0800 +++ 0043-net-mlx4-fix-buffer-leakage-on-device-close.patch 2021-06-12 06:53:56.210000000 +0800 @@ -1 +1 @@ -From b014c6b7b595277860308468c4c12a9337bf132e Mon Sep 17 00:00:00 2001 +From 1c43f69982f8ca627c4ccb5bbac68b980ef85a3e Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Luca Boccassi + +[ upstream commit b014c6b7b595277860308468c4c12a9337bf132e ] @@ -17 +19,0 @@ -Cc: stable@dpdk.org @@ -41 +43 @@ -index 31ab308050..2df26842fb 100644 +index 60560d9545..cc5200a1e1 100644