From patchwork Tue Jan 2 18:16:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Thompson X-Patchwork-Id: 1881706 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T4Lfy3G72z23dJ for ; Wed, 3 Jan 2024 05:17:29 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rKjKM-0005SK-Gv; Tue, 02 Jan 2024 18:17:22 +0000 Received: from mail-co1nam11on2074.outbound.protection.outlook.com ([40.107.220.74] helo=NAM11-CO1-obe.outbound.protection.outlook.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rKjKH-0005Rc-GS for kernel-team@lists.ubuntu.com; Tue, 02 Jan 2024 18:17:17 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FfzdHqSF0sABEmqOgcXNxemgDu36qLJXEF3KRp6jkmrZjae1HsMhvNyfJGK2NfHo4jYWq5qvZxZKsQY4LcN6RS3FeJM4HU27Wp+L7LlTN4U2iV6lRX4cx8h/9Al9DpHWdGR7GhOpPVTpni3Cji78vwfYBVXqiA2Q5JZDwE7dSqK3eh6Z1efJdEsffH2JmxMaR3/iNiCPnn52mRUSaDPnAEt3j+/g3cqnv9deDVlkA0EMAeRGPvFxfKFijmKct4oyuxoNBoVmzFl9VbojGR733+l/2iz9g5t+5FJ/V/ciVwDW3KnlAN5xmx+YaI8TVgIs9/o0CkbaccSBg3U+RFl2sw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=1TSzkJbVrkDMiUn6JyiUdiKMtFAxU4QavNMV5tSvxqQ=; b=oAEanYjCTpyJPpixpZAG+8gx5Y9pDo8pc+JM2AAzDtaGnnkz7GEf/juQqwStpFkRMdyo3doZC/1ZI8OsKE/pDAAMkiurJVD/eejMJV9rWtNEQUL3OIRFVwQtUzZLpv1Q7I05Y4ARMaOoZ83tAhU/hjf8xnOi6LJjoC+lQV+b14HH7KSgziYETS4FX2Mf7a13BQMHaPaYTqMsdmipync1jauwRDVyZy3F8zU9z5OxykDum30Kn1cb3eckWB4nqmeV2yOIWH2rPiJMui9GRjsNRfm1Tth4Ii3Yz/yO4ow+Gsjk5Wpz3ZkWn13qPtYghdWgpAmxGLjYN+FnuwL36DO/tQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=lists.ubuntu.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) Received: from MN2PR13CA0004.namprd13.prod.outlook.com (2603:10b6:208:160::17) by BL0PR12MB4945.namprd12.prod.outlook.com (2603:10b6:208:1c4::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Tue, 2 Jan 2024 18:17:12 +0000 Received: from MN1PEPF0000F0DE.namprd04.prod.outlook.com (2603:10b6:208:160:cafe::db) by MN2PR13CA0004.outlook.office365.com (2603:10b6:208:160::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.7 via Frontend Transport; Tue, 2 Jan 2024 18:17:12 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0DE.mail.protection.outlook.com (10.167.242.36) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.9 via Frontend Transport; Tue, 2 Jan 2024 18:17:12 +0000 Received: from rnnvmail202.nvidia.com (10.129.68.7) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Jan 2024 10:16:56 -0800 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail202.nvidia.com (10.129.68.7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Jan 2024 10:16:55 -0800 Received: from vdi.nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server id 15.2.986.41 via Frontend Transport; Tue, 2 Jan 2024 10:16:55 -0800 From: David Thompson To: Subject: [SRU][J:linux-bluefield][PATCH v1 1/2] Revert "UBUNTU: SAUCE: Fix OOB handling RX packets in heavy traffic" Date: Tue, 2 Jan 2024 13:16:52 -0500 Message-ID: <768f1bb03983a88cd69d846a35fd434dd8dce22b.1704218827.git.davthompson@nvidia.com> X-Mailer: git-send-email 2.30.1 In-Reply-To: References: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0DE:EE_|BL0PR12MB4945:EE_ X-MS-Office365-Filtering-Correlation-Id: eeaab506-49a7-420a-f8c3-08dc0bbf0a9f X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DYei4cpyAAIn8E+5Uemv+BHHZaVlIs0GIAPho0umh7fLgpKU120lE2nmIR8otr5p4eT7DF0nBoozIT5v1aDeulyRe2G7ck7ak745ATYyHRsThwD1H8Tc+J3JiazGH/VGlITSg0Vec8L0y7en9F6cHJARcd/gEmws+RDzNccsdStTYvORMrWU3Gkn6e/UEWAyU2le8gZFs9r8X4AAJOJWCJgXd4+i0n46YH26FNC8QNCgqReNzE7+EosN06JUUeV5wzfb3OW8CB6R3YNlaIoWP64oQzrWSzd+t/hcnrEcGNr8lo0VnbBptj85oeHXjIih+X1XxDWciDdQq41Ko3VOFmISSiWMUSvZagyrSw6Uggg9xw7zBMPsgfSMgldxVEMT7ldX41xJgXd5CBsEaBVn2FIuarJI8Ok3y5ZzKRI6pJ1wpg9o9HMw5vxh81q1jq+jj34Z3lSs3Zjc0/eBcDIRBD+ECDK4LaMm7ma1RhNm+jFslMVn32kS0d79Mks8Iq3DtOfkeLxTCnHKwSDU7H3rZuwQQi8nJ/wtAdLk3MGybTLpuT6SA7gXSEUjN3iWw+tlpu73i0Ot87eouwRohWmKSpizD73LNgZFUfc0TcpbQvCEUy+SQeFKETXRndMLgmifzAOoceTT03qdbQUcNskezFinAf47UehAxoeJ1u1V1/xLV6p4twBDKxQfKln5y/SwxFs6hhcGcSw5vkXe4gXRdlyrUDDibXwJtL27tYhACJ6FJEWMPZq9nLnXF1VcOB+XzaGQSpJlPVcDdYZEnccz+68vDFUz7G+G61UCizxyfvQ= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(396003)(136003)(39850400004)(346002)(376002)(230922051799003)(451199024)(1800799012)(64100799003)(186009)(82310400011)(36840700001)(40470700004)(46966006)(82740400003)(7636003)(356005)(36756003)(40460700003)(40480700001)(86362001)(2616005)(336012)(426003)(83380400001)(36860700001)(26005)(107886003)(41300700001)(7696005)(70206006)(316002)(54906003)(6916009)(478600001)(966005)(6666004)(47076005)(8936002)(8676002)(70586007)(5660300002)(2906002)(4326008); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jan 2024 18:17:12.2651 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: eeaab506-49a7-420a-f8c3-08dc0bbf0a9f X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0DE.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR12MB4945 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: asmaa@nvidia.com, davthompson@nvidia.com Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/2047853 This reverts commit 03f5c9832adb5dccd9f320671721ce8138e0dbe4. Signed-off-by: David Thompson --- .../ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c index 52a0314ec229..d82feeabb061 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c @@ -267,9 +267,6 @@ static bool mlxbf_gige_rx_packet(struct mlxbf_gige *priv, int *rx_pkts) priv->stats.rx_truncate_errors++; } - rx_ci = readq(priv->base + MLXBF_GIGE_RX_CQE_PACKET_CI); - rx_ci_rem = rx_ci % priv->rx_q_entries; - /* Let hardware know we've replenished one buffer */ rx_pi++; @@ -282,6 +279,8 @@ static bool mlxbf_gige_rx_packet(struct mlxbf_gige *priv, int *rx_pkts) rx_pi_rem = rx_pi % priv->rx_q_entries; if (rx_pi_rem == 0) priv->valid_polarity ^= 1; + rx_ci = readq(priv->base + MLXBF_GIGE_RX_CQE_PACKET_CI); + rx_ci_rem = rx_ci % priv->rx_q_entries; if (skb) netif_receive_skb(skb); @@ -304,10 +303,6 @@ int mlxbf_gige_poll(struct napi_struct *napi, int budget) mlxbf_gige_handle_tx_complete(priv); - data = readq(priv->base + MLXBF_GIGE_RX_DMA); - data &= ~MLXBF_GIGE_RX_DMA_EN; - writeq(data, priv->base + MLXBF_GIGE_RX_DMA); - do { remaining_pkts = mlxbf_gige_rx_packet(priv, &work_done); } while (remaining_pkts && work_done < budget); @@ -323,10 +318,6 @@ int mlxbf_gige_poll(struct napi_struct *napi, int budget) data = readq(priv->base + MLXBF_GIGE_INT_MASK); data &= ~MLXBF_GIGE_INT_MASK_RX_RECEIVE_PACKET; writeq(data, priv->base + MLXBF_GIGE_INT_MASK); - - data = readq(priv->base + MLXBF_GIGE_RX_DMA); - data |= MLXBF_GIGE_RX_DMA_EN; - writeq(data, priv->base + MLXBF_GIGE_RX_DMA); } return work_done; From patchwork Tue Jan 2 18:16:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Thompson X-Patchwork-Id: 1881707 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.ubuntu.com (client-ip=185.125.189.65; helo=lists.ubuntu.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=patchwork.ozlabs.org) Received: from lists.ubuntu.com (lists.ubuntu.com [185.125.189.65]) (using TLSv1.2 with cipher ECDHE-ECDSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4T4Lg00vpbz23dJ for ; Wed, 3 Jan 2024 05:17:31 +1100 (AEDT) Received: from localhost ([127.0.0.1] helo=lists.ubuntu.com) by lists.ubuntu.com with esmtp (Exim 4.86_2) (envelope-from ) id 1rKjKQ-0005UG-0R; Tue, 02 Jan 2024 18:17:26 +0000 Received: from mail-dm6nam10on2084.outbound.protection.outlook.com ([40.107.93.84] helo=NAM10-DM6-obe.outbound.protection.outlook.com) by lists.ubuntu.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1rKjKJ-0005Ro-9E for kernel-team@lists.ubuntu.com; Tue, 02 Jan 2024 18:17:19 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iOO+BKor4oXkwworxU+7bJ0aCDbcWlyuiFMNxb/UYu3g9PS2ieU6D81rr1vRDbJfqYceN5ufV2pOFfn6ER8NFGAjSNYTRIaE4FFVSWZVgyc8mWwjet5xwm1glI44Mjbq6T1ZgWo9mf/9J6BsQrUWnlTRXnegpoOiREphqf9tIqZUaTtip7FWDqTar1WQRADHRzmWLVeNd03VqFfylL2tIa3AN4FOAbKfPrzIS+S8I+gDTGtcOHP0H+i7d/QD+wvfrLSxL8DU6h+5dlONB3WTHkTvq50v48LuOVK6/Epa2H9EluqDyws4xGxq2fNHisscS1nQYqJ3aN0m2EnCzSSu4Q== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=oTMBvYwP9sybJKvEhaKnHIkQCBDmHPx70UK8b3ixeNw=; b=mqAr8wR2LmAhJyV/3WFBc2z3brkAs/9HrdSltXpCDe70jCrw3xapKpLjglC44QlAhjiT+IKMHFde0xLXs+RyHcL51oDk3zDVgdJoP4s1qCD4v+JAwEIQ4q3cFUGyMbiLj6IUYHGpn/o/F7Lymepuxhd+QWYkO34a9hvyY92KXXX2VN4iOLsInz7eGU5WrXVS1iS375PSs0Jtvq81/yoRdg11m2ezinL39uUry8Kacj84YaDaCrXsvo5H/2G1ntEJ9SAXDLMV1TqDqM/GjKoZkZPIi2U/CYEL/onQfYtxK7OlRFiAY9oIcH4KKU227r8+6wPodZWi9QljhzLj8n+myA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.161) smtp.rcpttodomain=lists.ubuntu.com smtp.mailfrom=nvidia.com; dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com; dkim=none (message not signed); arc=none (0) Received: from BL0PR02CA0011.namprd02.prod.outlook.com (2603:10b6:207:3c::24) by MW4PR12MB5643.namprd12.prod.outlook.com (2603:10b6:303:188::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25; Tue, 2 Jan 2024 18:17:14 +0000 Received: from MN1PEPF0000F0E2.namprd04.prod.outlook.com (2603:10b6:207:3c:cafe::3e) by BL0PR02CA0011.outlook.office365.com (2603:10b6:207:3c::24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7135.25 via Frontend Transport; Tue, 2 Jan 2024 18:17:13 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.161) smtp.mailfrom=nvidia.com; dkim=none (message not signed) header.d=none;dmarc=pass action=none header.from=nvidia.com; Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates 216.228.117.161 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.161; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.161) by MN1PEPF0000F0E2.mail.protection.outlook.com (10.167.242.40) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7159.9 via Frontend Transport; Tue, 2 Jan 2024 18:17:13 +0000 Received: from rnnvmail203.nvidia.com (10.129.68.9) by mail.nvidia.com (10.129.200.67) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Jan 2024 10:16:57 -0800 Received: from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail203.nvidia.com (10.129.68.9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Tue, 2 Jan 2024 10:16:56 -0800 Received: from vdi.nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.9) with Microsoft SMTP Server id 15.2.986.41 via Frontend Transport; Tue, 2 Jan 2024 10:16:56 -0800 From: David Thompson To: Subject: [SRU][J:linux-bluefield][PATCH v1 2/2] mlxbf_gige: fix receive packet race condition Date: Tue, 2 Jan 2024 13:16:53 -0500 Message-ID: <4cbb2eece7a0caf519475e48cbac46c3b551e285.1704218827.git.davthompson@nvidia.com> X-Mailer: git-send-email 2.30.1 In-Reply-To: References: MIME-Version: 1.0 X-NV-OnPremToCloud: ExternallySecured X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000F0E2:EE_|MW4PR12MB5643:EE_ X-MS-Office365-Filtering-Correlation-Id: a6c9ba46-9746-45ce-2ae7-08dc0bbf0b3b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: E0bbzX2Xm9ERa2Z+kLxly50wZzpMpep6AiAzHcKIKnWk8qIL1Cxvzc+NdPemJyv5XWzDR30xobyVwlhaw8fosCuB+NUc4om1tLoI2q9yeOduK6tgr9nW8ff3m1fGqf8Yb9AtghfPQvGHI1PCnVJq1si9QOGbKJF2TOmSmVMS0PyfkN42zREgkQufC1eXvDNcER22jWPBLh1FPTop/TBggyHfdb7Ck8CZEjvvzOgqeVg2HE+j1jd0YyzecXMkw59eIRi+CmiXuRQwO/40P0LJK3bX5N94oLM0c9Cz5OEo/P++/REZs7AFQhDeM2X1TexZRHbAp65X8nfn4Lc10kjifje+GUs9HsYFNJODPrSHBt9WbkZS0EIPCTY0RLvwh+V/U8Tthf3/u5HdSvg4HYKVSsSWY2QF/ad4vFPzZ2s+6EYDy5ooC0sPKYt/3/1Djh07HtwRhgM2O8jdfsEmJIyDy0H8MyjbXkr++EKznz05UqfGJ3MGcy5AzjJuA1Xzrx28cvP6xRLoiy20BieajCoLpyQEx9tm6atmbxrT7vs5dF2BOsrnBkZgx1Mtu11buA8LRZwXN9FVcxrYdbuiPkzDZgbtSkaLrPj2JuaTK6y859rQrP05d2Kp5fuWD8+oacayCsTczEWnBN/ZxCJgyg67U+CIKmBntusOowqJmwKDA3fOJ9+NgApwNss68mzrYDXhz7QvHfogjxTHuif6XXFVg7Gk5ap6De6+eLM7zg/2FyQfsIGalRWohlvmhEZ7wteRtK9wyQELF4H5kjyClYB+CtT+ApMF8BkPDm2/ED3apLA= X-Forefront-Antispam-Report: CIP:216.228.117.161; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge2.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(396003)(376002)(346002)(136003)(39860400002)(230922051799003)(451199024)(1800799012)(82310400011)(186009)(64100799003)(40470700004)(46966006)(36840700001)(26005)(336012)(2616005)(83380400001)(426003)(107886003)(36860700001)(6666004)(7696005)(6916009)(4326008)(70586007)(5660300002)(2906002)(966005)(41300700001)(478600001)(47076005)(316002)(70206006)(54906003)(8936002)(8676002)(86362001)(7636003)(36756003)(356005)(82740400003)(40480700001)(40460700003); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 02 Jan 2024 18:17:13.2822 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: a6c9ba46-9746-45ce-2ae7-08dc0bbf0b3b X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.161]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000F0E2.namprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: MW4PR12MB5643 X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: asmaa@nvidia.com, davthompson@nvidia.com Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" BugLink: https://bugs.launchpad.net/bugs/2047853 Under heavy traffic, the BlueField Gigabit interface can become unresponsive. This is due to a possible race condition in the mlxbf_gige_rx_packet function, where the function exits with producer and consumer indices equal but there are remaining packet(s) to be processed. In order to prevent this situation, read receive consumer index *before* the HW replenish so that the mlxbf_gige_rx_packet function returns an accurate return value even if a packet is received into just-replenished buffer prior to exiting this routine. If the just-replenished buffer is received and occupies the last RX ring entry, the interface would not recover and instead would encounter RX packet drops related to internal buffer shortages since the driver RX logic is not being triggered to drain the RX ring. This patch will address and prevent this "ring full" condition. Fixes: f92e1869d74e ("Add Mellanox BlueField Gigabit Ethernet driver") Reviewed-by: Asmaa Mnebhi Signed-off-by: David Thompson Signed-off-by: David S. Miller (cherry picked from commit dcea1bd45e6d111cc8fc1aaefa7e31694089bda3) Signed-off-by: David Thompson --- drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c index d82feeabb061..1a1eca08bfb9 100644 --- a/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c +++ b/drivers/net/ethernet/mellanox/mlxbf_gige/mlxbf_gige_rx.c @@ -267,6 +267,13 @@ static bool mlxbf_gige_rx_packet(struct mlxbf_gige *priv, int *rx_pkts) priv->stats.rx_truncate_errors++; } + /* Read receive consumer index before replenish so that this routine + * returns accurate return value even if packet is received into + * just-replenished buffer prior to exiting this routine. + */ + rx_ci = readq(priv->base + MLXBF_GIGE_RX_CQE_PACKET_CI); + rx_ci_rem = rx_ci % priv->rx_q_entries; + /* Let hardware know we've replenished one buffer */ rx_pi++; @@ -279,8 +286,6 @@ static bool mlxbf_gige_rx_packet(struct mlxbf_gige *priv, int *rx_pkts) rx_pi_rem = rx_pi % priv->rx_q_entries; if (rx_pi_rem == 0) priv->valid_polarity ^= 1; - rx_ci = readq(priv->base + MLXBF_GIGE_RX_CQE_PACKET_CI); - rx_ci_rem = rx_ci % priv->rx_q_entries; if (skb) netif_receive_skb(skb);