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 F030B433D8 for ; Mon, 11 Dec 2023 11:15:11 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id DEF5C40ED2; Mon, 11 Dec 2023 11:15:11 +0100 (CET) Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2041.outbound.protection.outlook.com [40.107.94.41]) by mails.dpdk.org (Postfix) with ESMTP id F0E9A40E0F for ; Mon, 11 Dec 2023 11:15:10 +0100 (CET) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=MWdx/7fPrMosNubZhg3ckJkPICt/FpjBX1pxo5KW6M63aLnzLUoFz0WTvPxGNlu388Qe3PrQh0gfInfFavvRoOtzTEGxVRyhlwWD1az3B4bkrosFHK/Ydz5GME5sRAt1obWBZToOY7QV9AvdnrzDRF4ua5LWWF0bHqBZ4LFpa/a4/lVRuuh1c+xRWjEoC9dIxctgtxvGwo8R76At2DCU1xcBTv1FkJy8yT2Tt1AlDoxO4DYff+CB4INkky0zM59worke7JGHD79gxH9QD/S/LYDcj+QNc8vg32DzB5RDNT71CZiGqLrZcNKQkmSzrEXjNhgDk9OVzDbfH8Im6MEoAg== 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=2t+a9wU6T324k5KyCa9oRsL9ywPfre7BTWqsnyrlxSo=; b=mDTSDpQnAgTFRyqjRnvJ9zgF3oilWoTzGAiazpifQ3JrTe+tHlqjYXSofgY4VuOmuDAeE+Hy0s+eG5I8YGkIYCTbKdfqdzFjptK23/qpULij6fMKrYDOw+O2IDAwuZNjxTtQ4aWBNGOSPItMqidV4CmxtIWKay7srRirj8Q2K8apBkxnLUUByouw8LSamaSyvcE4FzBNo7D2s+p82ui7/vNblcTFNIKGcs/TQLWAQgOez8B+k1xDObGy4v1g6hNITp3RbcC2T9irt3Q3F7mpxBYkP4Alt2fXsXgd9GjGQxnMJyE248fiko9GbH6D/KZvDBbiV7xrLLh1SYmBsGQkPw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is 216.228.117.160) smtp.rcpttodomain=huawei.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) 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=2t+a9wU6T324k5KyCa9oRsL9ywPfre7BTWqsnyrlxSo=; b=KT/osgdDw1XyYVMIehplM0U8DqCB/inHOPtjpPcHxUH6GwqDH9R7WSjogc3iwimUI+QGk9QK6sDQkfgV7hx7AFxcgoGapOHvJ9DaWMgVL2RGeo3owTxLL4A4NKu4aS+JUKHerG0Mlj9codNzz+whAX/N+XnfCDiTj6aCwZr+m26eOwKeSckQpkWj4dR+GcXC2d43GlqLgWuMRUD0jWEmulVcrCtSv7114hNN//3y8CRRTJGclW2BuOulxEUsv9+5HxYOLVZWCB2Zi1OWXuJG/WyEG03B+Ub5EgEew6AXdH33ZCCa6KkRC8oFuRSjw+3Oon4Lxq6qR+buq0YBDUXbtg== Received: from MN2PR20CA0049.namprd20.prod.outlook.com (2603:10b6:208:235::18) by SJ2PR12MB9113.namprd12.prod.outlook.com (2603:10b6:a03:560::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32; Mon, 11 Dec 2023 10:15:07 +0000 Received: from MN1PEPF0000ECD4.namprd02.prod.outlook.com (2603:10b6:208:235:cafe::2a) by MN2PR20CA0049.outlook.office365.com (2603:10b6:208:235::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7068.32 via Frontend Transport; Mon, 11 Dec 2023 10:15:07 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.117.160) 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.160 as permitted sender) receiver=protection.outlook.com; client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C Received: from mail.nvidia.com (216.228.117.160) by MN1PEPF0000ECD4.mail.protection.outlook.com (10.167.242.132) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7091.18 via Frontend Transport; Mon, 11 Dec 2023 10:15:07 +0000 Received: from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 02:14:51 -0800 Received: from nvidia.com (10.126.231.35) by rnnvmail201.nvidia.com (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Mon, 11 Dec 2023 02:14:50 -0800 From: Xueming Li To: Dengdui Huang CC: dpdk stable Subject: patch 'net/hns3: refactor interrupt state query' has been queued to stable release 22.11.4 Date: Mon, 11 Dec 2023 18:10:50 +0800 Message-ID: <20231211101226.2122-26-xuemingl@nvidia.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20231211101226.2122-1-xuemingl@nvidia.com> References: <20231022142250.10324-1-xuemingl@nvidia.com> <20231211101226.2122-1-xuemingl@nvidia.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain X-Originating-IP: [10.126.231.35] X-ClientProxiedBy: rnnvmail201.nvidia.com (10.129.68.8) To rnnvmail201.nvidia.com (10.129.68.8) X-EOPAttributedMessage: 0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN1PEPF0000ECD4:EE_|SJ2PR12MB9113:EE_ X-MS-Office365-Filtering-Correlation-Id: 69830da8-2948-40f7-7811-08dbfa320cf9 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: HecEdbBcGsPhcsG8iyOkcGkin3pjXiu6tzk1SAWTlDscR9PYlrulKQeLJAQRutH07NRYkEkylbyakR74KJy17/VakWEISElT2D/jhiAoPViDFtmSJ2P43ti1XFqR85Zwvv0M9lmCWvyM+38M977XtANt9mOUynoBZ2V0B7ZJkvwTnybb6T4zYdaXrw7MYODs1nGW9eG42ngLj0AWRsHHXRyk1AGkHZyAwTTkbsf9g0qV/xAU2yT+JVVHMCDQBR9wfcfRflR3z83i1ubezbbcCp3cg4ssRk8UngL55Ka9Cln3kwCp3opsxdyEc3+dnCq24F54ccU2D+6NgrusY6A4LNZxxmyL8nxtvAL2VCQw2rNJfejZAFX1voyahps3cYNDW4P5gmax9hD3UWVQpp0yvyr4Zv5EyORZxhxZ/SZbuSdNGyFycxM/XQQf/dwEVSX43DZe1qaMhoIlfVv3ICa95V7/7xcfm8cI5ywBIiG6M0KHg0JpgHOPv1zeCrX+YHPI1ptW6BvQLUPxBmSyapME0v2/HPwXjf3nr8YhdsTPjGv2uCSl0LSsJs/BBzFcK5aVfVkX9K8mfzrge7TZi8IzPoIHOqkKN+HgmuA6mPeBE5KQuhVNTk0ejyxdah0CbkNOoA7WqiJXHmQOJbWB2LVc7bg3EHhkdhVk4tBDJRXO7J0x9XvfckXdS52r5hzOKp/IQiSm9BXIcePApSVqkNcYJ9qLKe92sA0KfcLc22k3aHB2XEI4MceyQ7XyfBZAddvRaOvfdCsPSMHfWaI+V0v1wqHS9WQIcLmvcbaGdZihMpHN0gaPVBmtZ/hf0evGD+QK X-Forefront-Antispam-Report: CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE; SFS:(13230031)(4636009)(376002)(136003)(346002)(396003)(39860400002)(230922051799003)(451199024)(186009)(64100799003)(1800799012)(82310400011)(46966006)(40470700004)(36840700001)(41300700001)(36860700001)(16526019)(1076003)(426003)(336012)(26005)(6286002)(2616005)(83380400001)(47076005)(82740400003)(36756003)(86362001)(7636003)(356005)(5660300002)(316002)(8936002)(8676002)(4326008)(2906002)(4001150100001)(7696005)(53546011)(6916009)(70206006)(70586007)(478600001)(966005)(40480700001)(40460700003)(55016003)(461764006); DIR:OUT; SFP:1101; X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2023 10:15:07.4010 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 69830da8-2948-40f7-7811-08dbfa320cf9 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.160]; Helo=[mail.nvidia.com] X-MS-Exchange-CrossTenant-AuthSource: MN1PEPF0000ECD4.namprd02.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ2PR12MB9113 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 Hi, FYI, your patch has been queued to stable release 22.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 12/13/23. 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://git.dpdk.org/dpdk-stable/log/?h=22.11-staging This queued commit can be viewed at: https://git.dpdk.org/dpdk-stable/commit/?h=22.11-staging&id=8dcc1b45529b93d5a850f79e86b1f010b99bd138 Thanks. Xueming Li --- >From 8dcc1b45529b93d5a850f79e86b1f010b99bd138 Mon Sep 17 00:00:00 2001 From: Dengdui Huang Date: Fri, 27 Oct 2023 14:09:46 +0800 Subject: [PATCH] net/hns3: refactor interrupt state query Cc: Xueming Li [ upstream commit c01ffb24a241a360361ed5c94a819824a8542f3f ] PF driver get all interrupt states by reading three registers. This logic code block is distributed in many places. So this patch extracts a common function to do this to improve the maintenance. Fixes: f53a793bb7c2 ("net/hns3: add more hardware error types") Fixes: 3988ab0eee52 ("net/hns3: add abnormal interrupt process") Signed-off-by: Dengdui Huang --- drivers/net/hns3/hns3_ethdev.c | 57 +++++++++++++++++++--------------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/drivers/net/hns3/hns3_ethdev.c b/drivers/net/hns3/hns3_ethdev.c index 036062947d..af66bf062e 100644 --- a/drivers/net/hns3/hns3_ethdev.c +++ b/drivers/net/hns3/hns3_ethdev.c @@ -62,6 +62,12 @@ enum hns3_evt_cause { HNS3_VECTOR0_EVENT_OTHER, }; +struct hns3_intr_state { + uint32_t vector0_state; + uint32_t cmdq_state; + uint32_t hw_err_state; +}; + #define HNS3_SPEEDS_SUPP_FEC (RTE_ETH_LINK_SPEED_10G | \ RTE_ETH_LINK_SPEED_25G | \ RTE_ETH_LINK_SPEED_40G | \ @@ -155,20 +161,23 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val) return HNS3_VECTOR0_EVENT_RST; } +static void +hns3_query_intr_state(struct hns3_hw *hw, struct hns3_intr_state *state) +{ + state->vector0_state = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG); + state->cmdq_state = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG); + state->hw_err_state = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG); +} + static enum hns3_evt_cause hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval) { struct hns3_hw *hw = &hns->hw; - uint32_t vector0_int_stats; - uint32_t cmdq_src_val; - uint32_t hw_err_src_reg; + struct hns3_intr_state state; uint32_t val; enum hns3_evt_cause ret; - /* fetch the events from their corresponding regs */ - vector0_int_stats = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG); - cmdq_src_val = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG); - hw_err_src_reg = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG); + hns3_query_intr_state(hw, &state); /* * Assumption: If by any chance reset and mailbox events are reported @@ -177,41 +186,41 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval) * RX CMDQ event this time we would receive again another interrupt * from H/W just for the mailbox. */ - if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & vector0_int_stats) { /* IMP */ + if (BIT(HNS3_VECTOR0_IMPRESET_INT_B) & state.vector0_state) { /* IMP */ ret = hns3_proc_imp_reset_event(hns, &val); goto out; } /* Global reset */ - if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & vector0_int_stats) { + if (BIT(HNS3_VECTOR0_GLOBALRESET_INT_B) & state.vector0_state) { ret = hns3_proc_global_reset_event(hns, &val); goto out; } /* Check for vector0 1588 event source */ - if (BIT(HNS3_VECTOR0_1588_INT_B) & vector0_int_stats) { + if (BIT(HNS3_VECTOR0_1588_INT_B) & state.vector0_state) { val = BIT(HNS3_VECTOR0_1588_INT_B); ret = HNS3_VECTOR0_EVENT_PTP; goto out; } /* check for vector0 msix event source */ - if (vector0_int_stats & HNS3_VECTOR0_REG_MSIX_MASK || - hw_err_src_reg & HNS3_RAS_REG_NFE_MASK) { - val = vector0_int_stats | hw_err_src_reg; + if (state.vector0_state & HNS3_VECTOR0_REG_MSIX_MASK || + state.hw_err_state & HNS3_RAS_REG_NFE_MASK) { + val = state.vector0_state | state.hw_err_state; ret = HNS3_VECTOR0_EVENT_ERR; goto out; } /* check for vector0 mailbox(=CMDQ RX) event source */ - if (BIT(HNS3_VECTOR0_RX_CMDQ_INT_B) & cmdq_src_val) { - cmdq_src_val &= ~BIT(HNS3_VECTOR0_RX_CMDQ_INT_B); - val = cmdq_src_val; + if (BIT(HNS3_VECTOR0_RX_CMDQ_INT_B) & state.cmdq_state) { + state.cmdq_state &= ~BIT(HNS3_VECTOR0_RX_CMDQ_INT_B); + val = state.cmdq_state; ret = HNS3_VECTOR0_EVENT_MBX; goto out; } - val = vector0_int_stats; + val = state.vector0_state; ret = HNS3_VECTOR0_EVENT_OTHER; out: @@ -350,10 +359,8 @@ hns3_interrupt_handler(void *param) struct hns3_adapter *hns = dev->data->dev_private; struct hns3_hw *hw = &hns->hw; enum hns3_evt_cause event_cause; + struct hns3_intr_state state; uint32_t clearval = 0; - uint32_t vector0_int; - uint32_t ras_int; - uint32_t cmdq_int; if (!hns3_reset_event_valid(hw)) return; @@ -362,16 +369,15 @@ hns3_interrupt_handler(void *param) hns3_pf_disable_irq0(hw); event_cause = hns3_check_event_cause(hns, &clearval); - vector0_int = hns3_read_dev(hw, HNS3_VECTOR0_OTHER_INT_STS_REG); - ras_int = hns3_read_dev(hw, HNS3_RAS_PF_OTHER_INT_STS_REG); - cmdq_int = hns3_read_dev(hw, HNS3_VECTOR0_CMDQ_SRC_REG); + hns3_query_intr_state(hw, &state); hns3_delay_before_clear_event_cause(hw, event_cause, clearval); hns3_clear_event_cause(hw, event_cause, clearval); /* vector 0 interrupt is shared with reset and mailbox source events. */ if (event_cause == HNS3_VECTOR0_EVENT_ERR) { hns3_warn(hw, "received interrupt: vector0_int_stat:0x%x " "ras_int_stat:0x%x cmdq_int_stat:0x%x", - vector0_int, ras_int, cmdq_int); + state.vector0_state, state.hw_err_state, + state.cmdq_state); hns3_handle_mac_tnl(hw); hns3_handle_error(hns); } else if (event_cause == HNS3_VECTOR0_EVENT_RST) { @@ -382,7 +388,8 @@ hns3_interrupt_handler(void *param) } else if (event_cause != HNS3_VECTOR0_EVENT_PTP) { hns3_warn(hw, "received unknown event: vector0_int_stat:0x%x " "ras_int_stat:0x%x cmdq_int_stat:0x%x", - vector0_int, ras_int, cmdq_int); + state.vector0_state, state.hw_err_state, + state.cmdq_state); } /* Enable interrupt if it is not cause by reset */ -- 2.25.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2023-12-11 17:56:23.999817300 +0800 +++ 0025-net-hns3-refactor-interrupt-state-query.patch 2023-12-11 17:56:22.927652300 +0800 @@ -1 +1 @@ -From c01ffb24a241a360361ed5c94a819824a8542f3f Mon Sep 17 00:00:00 2001 +From 8dcc1b45529b93d5a850f79e86b1f010b99bd138 Mon Sep 17 00:00:00 2001 @@ -4,0 +5,3 @@ +Cc: Xueming Li + +[ upstream commit c01ffb24a241a360361ed5c94a819824a8542f3f ] @@ -12 +14,0 @@ -Cc: stable@dpdk.org @@ -20 +22 @@ -index bb9dde9c5b..0feea52542 100644 +index 036062947d..af66bf062e 100644 @@ -23 +25 @@ -@@ -57,6 +57,12 @@ enum hns3_evt_cause { +@@ -62,6 +62,12 @@ enum hns3_evt_cause { @@ -36 +38 @@ -@@ -151,20 +157,23 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val) +@@ -155,20 +161,23 @@ hns3_proc_global_reset_event(struct hns3_adapter *hns, uint32_t *vec_val) @@ -67 +69 @@ -@@ -173,41 +182,41 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval) +@@ -177,41 +186,41 @@ hns3_check_event_cause(struct hns3_adapter *hns, uint32_t *clearval) @@ -119 +121 @@ -@@ -346,10 +355,8 @@ hns3_interrupt_handler(void *param) +@@ -350,10 +359,8 @@ hns3_interrupt_handler(void *param) @@ -131 +133 @@ -@@ -358,16 +365,15 @@ hns3_interrupt_handler(void *param) +@@ -362,16 +369,15 @@ hns3_interrupt_handler(void *param) @@ -151 +153 @@ -@@ -378,7 +384,8 @@ hns3_interrupt_handler(void *param) +@@ -382,7 +388,8 @@ hns3_interrupt_handler(void *param)