From patchwork Sat Jun 23 21:20:32 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 41428 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 0EAB61BB6F; Sat, 23 Jun 2018 23:20:57 +0200 (CEST) Received: from NAM04-SN1-obe.outbound.protection.outlook.com (mail-eopbgr700076.outbound.protection.outlook.com [40.107.70.76]) by dpdk.org (Postfix) with ESMTP id 19B371BB4E; Sat, 23 Jun 2018 23:20:55 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=xj6M1gJ3eKgQ8DS9HNGEBnW7EJA+VZ9ogTizdIh8u/w=; b=IG37+4sSxvTupb8VOV30hTM/xXZDONE2WG1XAfF9b6wSerJvql2UDIPOE4st9jLV8iRP+rYSF3Mfe8/suGoTYWmaRwqpdl+8Ei6s6tjZqZ5p9qTyQDuoQJ92XCQdl69KREfaUm//ms+gbqg9EA9geWkLHdIXS7gCBQPTH5+7cIA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by BL0PR07MB4017.namprd07.prod.outlook.com (2603:10b6:207:4b::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.884.21; Sat, 23 Jun 2018 21:20:52 +0000 From: Rasesh Mody To: dev@dpdk.org Cc: Shahed Shaikh , ferruh.yigit@intel.com, david.marchand@6wind.com, Dept-EngDPDKDev@cavium.com, stable@dpdk.org Date: Sat, 23 Jun 2018 14:20:32 -0700 Message-Id: <1529788834-18717-2-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1529788834-18717-1-git-send-email-rasesh.mody@cavium.com> References: <1529788834-18717-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: BYAPR04CA0012.namprd04.prod.outlook.com (2603:10b6:a03:40::25) To BL0PR07MB4017.namprd07.prod.outlook.com (2603:10b6:207:4b::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 10541030-9998-4685-13df-08d5d94f33a8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(8989117)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600026)(711020)(2017052603328)(7153060)(7193020); SRVR:BL0PR07MB4017; X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4017; 3:dmvnUVKpOjzI+9fJQnMHMY7cs/2FJj0xEnVLZxJgEP8a1ICBINNPuH2U9TFsEqfVs5xf1f7ENJMkF6YEJmAHWrOn4dsRztemcQMbE64udDNKs5ianz/4cbqtgtFtBX1JF1DVnaCRh8w2saqRAw0WDT6bnz7WMpqjRIs1ucjsktJHex/mKWH8Z732Iu/BhPsqJ2D1KiGuSdswQEhay1PloLawHvRlJ61CrJXbXvm3tv4CdICQJUubp7GRJ9CZAQcp; 25:FGH2s3WsA/eyKZylfrbJDGYPnPbgopeByMAdJo6r2eeOTlD4giD6kmSZhYcF5qHxpyFRxMIFLCW+jCNrwll+NBu38bl39Lauiou5waIybKnOXCaKvzc3CL6x03bI726DK3vANTDZhujwMhnhn0P+DB4J+UQhcSRAtX4rUZElK5A1ASz1E1yZR5nOgUMlXjh5nradfC2V9olA342qEfMg8iyFlqAP8F9y41jH6b9+dUDnyJkkyM7lLR9CY+1B9IMSddFjgwSgXnnK1ojdqsIRoWiCqHhYKJjffqIREfKU3TRNNyEJfoY45CqYgbB1BVO4O0ktOUF40RtZ26ea3TBfdA==; 31:7WCoiNULz8NSIfO4wiUCOdcPmH1iN2byQC4biu+zhkhGqVrIfaysBs0nwOSezmnWwX3ciWZHB66w1t9Bn//KDmce8WxWUHz7N7KA3ZnxODlqQcRf2XdoqUTWkuR5Ou/mz1Etat5EHZC4ghVUpFi/ADnH4JOaZikj/sRrRydLrWvlu+pqqLW9u4LOD5pqEBD8+3lC3HNe1XbbvIA3SIMzhN5TpLPndiC7aQk/JU6ZCb0= X-MS-TrafficTypeDiagnostic: BL0PR07MB4017: X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4017; 20:GmZIDpiFpwgg0xeLnW3JLqCA8qjm/4LQ0V8M7nOrE0JRp10g8adNrs774XjrnKWo47QJQmEjwgYwqaA7CP8pmEAlXKwaoktLE5f9IrFEOiNxsf9vyDCN9LwrrliqwDskb6ciVRnZALdzOk5Qr3qkvuGPM/9Q/FLK4Pa80BsVvQDuiLdpU4I86EFTREXu675QIvDG4rGzumTHvoWlYsYl8Cnln3P7Obs0wccXyeqJU/cpVdZrNycyMSjkCUY8QKs16aCboOK7lkxb0Sc3j90fmYgpQIe6XgToSKnwlu9A7ey1n98Ylj3K55rbKRTSUbscfuKrh7VZQ9ebSt5s9OG3H+c+AqviaorTrpBE1sf5ybkNZS3BeMcSEtAuxFSVMmeZxCQMRkfxdI+yQBoQU0EIgkABPBRtd5O5K48IhX/m2z1wqqrCWQU4aRpQ2XpAWEouvO1KIGgV/jIxmqI6u/sAJpHRo61traXTQ01+EKtzzN1bQ0+LEKY+UCfIJnvECLvZ; 4:6N50DeZikjgLWe1zRoDJ9jt7AMe5I+aQSitkT09XQgcvPHZGDLNN21+X1Lrf4Cno0ojMX34kDoAKLvNwbaRdkkS+RZmT8dMP8VejlEH5iOjkOHiOjlD3DFtU/Gp6QenmPOgLWiI/sCuskabUP+w4o1Y3fpl9ldH0tDGYIk8mX4FwV/RhCNFely06mCz8OctYqf/Dcc6z7aWw5UODkCY2iqG8Y6buJZDfZe+Xb3ecEHW3lRFyUsrMY5mpbrzuihK5THUIN/tEJD12lhRoMpw4+Q== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(3231254)(944501410)(52105095)(93006095)(93001095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123558120)(20161123560045)(20161123562045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(6072148)(201708071742011)(7699016); SRVR:BL0PR07MB4017; BCL:0; PCL:0; RULEID:; SRVR:BL0PR07MB4017; X-Forefront-PRVS: 07126E493C X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(396003)(346002)(39850400004)(376002)(39380400002)(189003)(199004)(16586007)(97736004)(2351001)(72206003)(21086003)(316002)(105586002)(2906002)(50466002)(25786009)(48376002)(478600001)(81166006)(86362001)(3846002)(81156014)(6116002)(2361001)(106356001)(8936002)(8676002)(7736002)(55016002)(305945005)(36756003)(26005)(66066001)(44832011)(186003)(50226002)(486006)(69596002)(59450400001)(386003)(53936002)(16526019)(956004)(2616005)(446003)(4720700003)(476003)(11346002)(68736007)(6666003)(6916009)(5660300001)(76176011)(51416003)(4326008)(7696005)(47776003)(52116002); DIR:OUT; SFP:1101; SCL:1; SRVR:BL0PR07MB4017; H:cavium.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BL0PR07MB4017; 23:maUG5bjl97ascF5TdwgqnbZzWZBOZQKeO57UINuPD?= KJTVvntkPiP5gc1dmMzEdilQkhgo9ELqmNWzRKcApXU75Poa2OlKjLIttfxDzZbb1517fmNzqTwxX8rEQ3TddcHcNOAjKT8YKd9d+FlE5lGu8k2hm5UPQCgzt4aTY23dx7pophvZW9/YyDH4Z1+0l6mf+j3H43mRE9HyeweqZtzNbURXPDb3lRX/tTEOZkYvTUfENyFyfPO5sBo5O6J1ywbUn1rpNBBjo9tnjdeUWjAY24Sm3tF+wmM7Ss0kx1fW/perB5F17eZf73OsoEva2dd83c34hd7U7r8vwwQIscZa08e9CzXCy2fCgVbCPvc+Kxsq1PpWH8z2LqX3cEXpVvybUgugR/+m1g2Lgbd/hsf5H3py/ybIaPLo7jypr6nquT4CNmkVXUmmynAxzHG9OFSqlEtI37e3LxqWFq/mIQziBjKFHxeVD1DKq/GnvbWRdd4VN/ATsaA7BvWfN/YCJzQgBrKtbzjcUDm6ttbxbUGaFtbATa7kNUrr6hG+d7kjWPTsQjU0LpQakbiuMbj3N7cCl3EcsWKDwFwXQa1jYf9JI4+RnkhcGCu7UrW/xPPNMJHWznGBNuLmyQZ+fv+c3BweLUxApksxWVXE+/y4+Wc6MHZr6jFuJ59PqPq6C0uVaUrbIjhJ6TN0fIQQtaypwsv2kvRhZrBi3J8sX1Gnr43VDdd/4UUVSOCDyT19g0sZaq6FXDygLX8Jf5ZQUD0jP5eH9T9XK/7RGsqf8Z3c5j/TpsRkEDmOVDuQnPkrhkyQydlQooBNGaOgXDqycTwsS21R+MDCdacDa3n3DtmPFL+pbQbAcD0TG1fmqFSXX/dK3YfbmOaDnY62iXTe0nVlb1sjTZu5M/WeGIPMmWAXbGJ7I6v+QiP4foV6UggoMsrQ0jm6bNIOeYH22vOf07SL6dEiVJuGupxv3Jjv8GKn1wshLwDRaHqvx8svoIAvpQ64uWVMdZ9RPJfAipd5YNToTXsD2xJDIGZCg88Fx2/Dgepa+gU+0Z31kPypoz4qwxCUyMqlTREK5psZhF3576XhUPG2TOPBFna8ksn1xaIC1a3fGhe36AZtLv8/IrvXHjmWCV2hP5QzgYagRVEec+30IfMAF+Y+MylzOdRinVOU/6w9Wh+7L35YQR8ppc7yIzU8PRGrzyU14KCb1kmFS6gws5G9ZVd7XKnm97gg15nWCXYHPJz1skM1yhxCpPkwlJHq0akGcmcXh5ejapEsgxMcJ85ESh8nG3do/c/vefd1LiJ1v1LhKbhbLNw+MQgXgWq13GsW9CCp4sGVvjadm7ojvRR X-Microsoft-Antispam-Message-Info: lYRVADW1qFCj4oetVPGgC+T9yzSEJQyhXZgJkKmW5Ua9Cnc9aCSUfy9zOzOAqVsFWa7cpecGyO6vMVzw3lfFXJ/HUHSXV98VjiBc6K1uNJ0AFlhtKUL4/R4AmnFf5CPGb3U0vtwPOZZb4ciEc9/C6bTJv9LAApdfIdYBNma9ndn9+bUIFCQBbdg90m617/Vihc90gFA3ZwjeXt6LltW46XYqjmVXvlyhJ6jVLxqMwCeM6yRCQWioXUTz8O8H19DEWvLxISdvNcX5u5Ulgt0VszUWcJzH6MY4L/A1yCjxLE0OvWbnlkydp8Q7pqAsef/l9JRBd5Dmnf8SbnxCBshZLR+8HxGmaoh7nY6k+FU9CLA= X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4017; 6:DrjjKu1J+LHkt5cel7pBo97aAAVbkdH0Fg0ZE949o3NXZYOusaxbt/66UpCHv/Llo03XdNaMpIb5OGxI8zjlH5rxGOEJtmX6OZbMuOo3dM9BQFZFzvBOwx5ooTNOD3/UCnXD6tyVQ+BV56y5xYgFF3lBSUbKbvMZmRcLSa06V/IfuxLTbXX1Z8ZfpnHH7xtr+74N5uhQpvkpzwMcs9ywHo8KaDtshAbq+A7CpxnK4WmKb0nud0iVjkM+vMVuW4cXMiWW6aIsQb+EWEcZiJIDX8M3+SRNQUy5dK23MbWO7HH4MJ23TdXajLMLs++dRu2X9nr+PSmQBd7rrYzGmdkcT7rDGbJwGszahc6YwV/mH+InyNn2lDE+pPF3zsY/t/HmvuCLDwqNc7nE9W+S1Vi2WwsZDNU05eGQK7NVHttNiETmw+gb/vCee+aUS7g9KDBRSqFpMVyOaE4NLadIbWu4eA==; 5:lOe2b5AtSe/y/v0er2aADo5PSfS7hRbOQxR8Jd/sGkGcqdn/iS1t6bPxj+gqoTqsd+UAR6TgKKZVPgIoNXGF0fer/KjDtZ5yFrVthyCIg0AH1M74KyEeAfh3VmQvJQFqyXAVO07pi7jqFsEYQay33hQ7epLPMUVjNbLGSHGm8pQ=; 24:noTDd+4LNlx2FAyj8/oTuaOBrthiuUo0ftrQ3bTLzcac93Pxt9ZC7MEfl6xzNVi8hMTXrmog22kDxTTH3N4sIJL1XXc27AkISbmXIXc5wK0= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BL0PR07MB4017; 7:Phk2bY55Fnn/mtkxJv0fVjOQoFA7a+4nIii5Rlpya0F+nnGF3J95rePkRivFuM9+Usji5vI0RjeGp5ST1HmNkXiJ0tkM4XSkqXV+nboiLS3dVE4+NdMarjpyRiSOQSw4ecbnqskzufmKk7v/ppFZllfYUzazLWnNYLUJHVAYLwN3MOGrpD2y2+CwAFHYlcoDdyN940MRNMH8JjWiZvK8rS02weSnP9MacuAjJZUQVYgUS+Vh/YbMgFzPsNdkNdW1 X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 23 Jun 2018 21:20:52.8058 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 10541030-9998-4685-13df-08d5d94f33a8 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL0PR07MB4017 Subject: [dpdk-dev] [PATCH 2/3] net/qede: fix legacy interrupt mode X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" From: Shahed Shaikh qede pmd does not have support for legacy interrupt mode. This causes slow path completion failure with uio_pci_generic module, since it uses legacy interrupt (INTx) mode. Fix this issue by installing legacy interrupt handler. Fixes: ec94dbc57362 ("qede: add base driver") Cc: stable@dpdk.org Signed-off-by: Shahed Shaikh --- drivers/net/qede/qede_ethdev.c | 40 +++++++++++++++++++++++++++++++++++++--- drivers/net/qede/qede_main.c | 2 +- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/drivers/net/qede/qede_ethdev.c b/drivers/net/qede/qede_ethdev.c index 1cae474..8bbfa95 100644 --- a/drivers/net/qede/qede_ethdev.c +++ b/drivers/net/qede/qede_ethdev.c @@ -339,6 +339,24 @@ static void qede_interrupt_action(struct ecore_hwfn *p_hwfn) } static void +qede_interrupt_handler_intx(void *param) +{ + struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; + struct qede_dev *qdev = eth_dev->data->dev_private; + struct ecore_dev *edev = &qdev->edev; + u64 status; + + /* Check if our device actually raised an interrupt */ + status = ecore_int_igu_read_sisr_reg(ECORE_LEADING_HWFN(edev)); + if (status & 0x1) { + qede_interrupt_action(ECORE_LEADING_HWFN(edev)); + + if (rte_intr_enable(eth_dev->intr_handle)) + DP_ERR(edev, "rte_intr_enable failed\n"); + } +} + +static void qede_interrupt_handler(void *param) { struct rte_eth_dev *eth_dev = (struct rte_eth_dev *)param; @@ -3063,6 +3081,7 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) /* Fix up ecore debug level */ uint32_t dp_module = ~0 & ~ECORE_MSG_HW; uint8_t dp_level = ECORE_LEVEL_VERBOSE; + uint32_t int_mode; int rc; /* Extract key data structures */ @@ -3107,8 +3126,22 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) return -ENODEV; } qede_update_pf_params(edev); - rte_intr_callback_register(&pci_dev->intr_handle, - qede_interrupt_handler, (void *)eth_dev); + + switch (pci_dev->intr_handle.type) { + case RTE_INTR_HANDLE_UIO_INTX: + case RTE_INTR_HANDLE_VFIO_LEGACY: + int_mode = ECORE_INT_MODE_INTA; + rte_intr_callback_register(&pci_dev->intr_handle, + qede_interrupt_handler_intx, + (void *)eth_dev); + break; + default: + int_mode = ECORE_INT_MODE_MSIX; + rte_intr_callback_register(&pci_dev->intr_handle, + qede_interrupt_handler, + (void *)eth_dev); + } + if (rte_intr_enable(&pci_dev->intr_handle)) { DP_ERR(edev, "rte_intr_enable() failed\n"); return -ENODEV; @@ -3116,7 +3149,8 @@ static int qede_common_dev_init(struct rte_eth_dev *eth_dev, bool is_vf) /* Start the Slowpath-process */ memset(¶ms, 0, sizeof(struct qed_slowpath_params)); - params.int_mode = ECORE_INT_MODE_MSIX; + + params.int_mode = int_mode; params.drv_major = QEDE_PMD_VERSION_MAJOR; params.drv_minor = QEDE_PMD_VERSION_MINOR; params.drv_rev = QEDE_PMD_VERSION_REVISION; diff --git a/drivers/net/qede/qede_main.c b/drivers/net/qede/qede_main.c index de5a7ca..2885e5d 100644 --- a/drivers/net/qede/qede_main.c +++ b/drivers/net/qede/qede_main.c @@ -281,7 +281,7 @@ static int qed_slowpath_start(struct ecore_dev *edev, /* Start the slowpath */ memset(&hw_init_params, 0, sizeof(hw_init_params)); hw_init_params.b_hw_start = true; - hw_init_params.int_mode = ECORE_INT_MODE_MSIX; + hw_init_params.int_mode = params->int_mode; hw_init_params.allow_npar_tx_switch = true; hw_init_params.bin_fw_data = data;