From patchwork Mon Sep 10 06:34:26 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 967875 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=none (p=none dis=none) header.from=cavium.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="CzxRb8mY"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 427yvr4vtjz9s2P for ; Mon, 10 Sep 2018 16:35:04 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727732AbeIJL1a (ORCPT ); Mon, 10 Sep 2018 07:27:30 -0400 Received: from mail-bn3nam01on0081.outbound.protection.outlook.com ([104.47.33.81]:24292 "EHLO NAM01-BN3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727666AbeIJL13 (ORCPT ); Mon, 10 Sep 2018 07:27:29 -0400 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=HCpw9MAP04nSUIHxmGWpzMVM2DujIh5rDWQoWyFtYSM=; b=CzxRb8mYVFjgox7fz8bM9aDOh32xhRVffkRyvlyfHSgL6TxEy6VROBNaK/rymcUvCU+pN8sRWptx37+3nWuwAZ3cUmr76Zbov5p1GTdgMrPkwqdTSWCNvHAbX2Ngf9GFLfnjQMui2tiedGizQ0/9kUPoeMHowcNzYeCYdSXxcC8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.155) by CY4PR07MB2824.namprd07.prod.outlook.com (2603:10b6:903:25::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1122.15; Mon, 10 Sep 2018 06:34:29 +0000 Date: Sun, 9 Sep 2018 23:34:26 -0700 From: Felix Manlunas To: davem@davemloft.net Cc: netdev@vger.kernel.org, raghu.vatsavayi@cavium.com, derek.chickles@cavium.com, satananda.burla@cavium.com, felix.manlunas@cavium.com, intiyaz.basha@cavium.com Subject: [PATCH net-next 3/3] liquidio: Removed droq lock Message-ID: <20180910063426.GA4057@felix-thinkpad.cavium.com> References: <20180910063322.GA4011@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20180910063322.GA4011@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.155] X-ClientProxiedBy: MWHPR19CA0088.namprd19.prod.outlook.com (2603:10b6:320:1f::26) To CY4PR07MB2824.namprd07.prod.outlook.com (2603:10b6:903:25::14) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9343bbbf-c566-4d8b-2c87-08d616e7762d X-Microsoft-Antispam: BCL:0; PCL:0; RULEID:(7020095)(4652040)(8989137)(4534165)(4627221)(201703031133081)(201702281549075)(8990107)(5600074)(711020)(2017052603328)(7153060)(7193020); SRVR:CY4PR07MB2824; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB2824; 3:Tu++ig3gisaz1u64XbSj22ZG19Wm6xJ8dlxf4RnkrN6nI3vmhnW/9YXTQFxZ0vhUwuV/Yv9ZbPzjVti3FG3oUUvW7riG9TFVdC3ViQzjt/LwXG4cVdW6zoJgstPsg+rHpnwEQUkXxXVzY0bUiYL9YHASruNQnx5cOaKyxuf2cvfXRtVkD1m/qtYthGgY+cmXj5/YD25esyyikzzU/qexxXs86swPxj9BxfF7iTg/9EeRwF44sjoiiM+ov2/M4Bm3; 25:r7myIzhyUaPzqvlQeL7vjRFSPscBVyJrCdTTw2SnIUVTEUd9TUGccSrmhMrNMNO3OU8FwrVTVA1uChX4vRF5e90FI57Cm9jak6LBptFjwIt/7A945BSltxYoBfJt4BG2y5Dlti3ufa0ICDR8zne8hAV97HLYdRE1xGRG579Y/fUNNQ+Y9th43VyYOY50ABM0UNYb6lv6W0SrsX0jB5XEmhHQE7ZKkKqERL7jlgzkstYpP0pCvOkli/SjKonK004kKKujzmGvQHZSWuLWQT08NMq9WncSHfV++ER/1YRNATQiE8fTVtzULGbwj1bXUiYdc3GPARJRdl8pt34OeNitLg==; 31:3ms+ojbKbuTLmSyUvk+x66QisqTvDSZBFgRS/74ACjPfBzwfHn4xAWGu4nCS7RuC0MCcmGPeb3qo3tydbXjO02H3QKQwB7LALynX5a9OY88HIC+KjbLeLaUntlbi4tq6LWnjUX6TF3PldfmdNbKHS+bo1W7dPKBM3HXNpzFyEqUSjwK5EEjoH3gVQn1+oaRDIQfIvRVUn93dkWupiCxPx5Yq1KDiOVcV/t5scskQEJc= X-MS-TrafficTypeDiagnostic: CY4PR07MB2824: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB2824; 20:DolGrnfM6TyPTbeizVaIrUADwHOMv+6QTbcuQKjdkbwgmf7HvwKN6yQpnK3n1GkAynKxQbt2OJvx+e9KDJzq10+8uqcgmpvNuMiyjy3b5ggLDjC9l2AX6WYwAGTjS34HNnPaoVwK6sETHemX1ubFWpU06K5NLPt6b6kfgmqYrzJq01jSyJkK2MYTwT8+a9dqATqb4TE7pUvoZDCV15r+XzhSJMWoiBsSoDykKHXvcQasqp9q87A8i3pVA9EgKJnawcQLry2fMy/Lkuz4EizoP5jzWlZBq/E9eQbwBPfgssDUsMGaVhRCm51AffUCGiVjfzb3jtx8x3ipwn/NCief+6KdnXxJcttq/nGzn0wBYC7UStHmZQxKQxHz7u3ftT8/3l2tbPWis4aIVodLTotk6POP4cjQKdo8k60WKcOUCRANmfNiISqbk0c2/WHjROYlacD5LX69nNz5MJEAp1+k7TbgWqe7fgdhzpHs9vCkxuBmaL6zHZ2aQgDakcqYlVgS; 4:hQSzdO//8x7irA5vNUoXNe2glbklt8fJQbuaCh+GPkVp1twji1liwRn/1lVC5HUAsN3zm6QizZnE8SCI0qTk8j+Np+3+pnOZmfyMVZ8AQCZiE3v7+MogCL/lx75njUl08r/tEutHSc50dQOUdV+vo3A/ZTVHihRcpC4X83uzXj1MZeU6Gg2pt/eOffrBvqcf9iuTKqBs/CCSoCBs+4AJJaV75dnfAZ7ae4B8EYhtw4wCK+znwjp2PegaIXfQnVjERg2RVM6jZJh/yZ95ynBJcg== 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)(5005006)(8121501046)(3231311)(944501410)(52105095)(93006095)(93001095)(10201501046)(3002001)(149027)(150027)(6041310)(20161123564045)(20161123560045)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(201708071742011)(7699050); SRVR:CY4PR07MB2824; BCL:0; PCL:0; RULEID:; SRVR:CY4PR07MB2824; X-Forefront-PRVS: 07915F544A X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6069001)(39850400004)(346002)(376002)(136003)(366004)(396003)(189003)(199004)(16526019)(86362001)(575784001)(76176011)(58126008)(66066001)(25786009)(52116002)(6116002)(7736002)(6496006)(76506005)(72206003)(47776003)(23726003)(16586007)(386003)(2906002)(26005)(478600001)(50466002)(97736004)(316002)(3846002)(186003)(305945005)(6486002)(11346002)(476003)(53936002)(33656002)(8676002)(107886003)(1076002)(105586002)(81166006)(446003)(68736007)(5660300001)(956004)(106356001)(486006)(8936002)(6666003)(2351001)(44832011)(2361001)(6916009)(14444005)(4326008)(81156014)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB2824; H:localhost; 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: 1; CY4PR07MB2824; 23:KYlG/iAQ46L/MWWFE0CT67hNfB1t25cmeMfY1gMMmDaAOlAperi3By8wBmKfCFFR21BC6hriReHrswfSGavk+vJxBr9NLK8IRdNV7Ep+quQeeZpO0YXB5/obrrFr/3ifJLmox+5lyXPyjajKYQ3A+ND3Puru01gSbajHIDXcgwxejQ1l944+L6T9mCxJH0Ugzhu1xzvUwCnj6+dzXCGtP6W5A7hvPQIys83FiNmac9CSDUCXl4kmakWDxNtxsxPE+CteyBZEcKbY/udrCAN6/EVWjye1YChLY+WtOsBNSNC2lZTJFGfis/pVx+AjCROFjI1qq3Mm/8S0Qxz1cQS/HuXRP+RMKrbvvFzAfgC+mqIJ6rOmfhDl/xOH/eal9TxRq9tF4TwW+QmqVvpgpFnH3CScMP+oI+O0WFfp9F53g5NYITrmwUBaK1SmNBM8JpjfeWW7N6O6yWWlBFiamrMDuxjDakuS0fIndajzMHdDGh2DxLbN40cYh9QVja1c1Yb+kQzkoksASIo0tsoYFrpPWHCxotWKYwnXBtNj3rRPcWZm9w85JpWg263lCa4exWNVc1a3JozaOw/cvd51ncK0Isk0GZnYJQoDvKQpeWEgzHWp0yahJYXkTjHp2I6fS/4DQNlVnQU3bM3ULhDo/CCDY7+ATzST2qbS64lYrJzCkA0rlTeIKP0K9Rebw7+FsoAA+WNBEKSBCe6beOQC6Vgsy/zOaw/00FxIqyjZpHZApofSVmawmBh5jwsvCjHC3Ln651JTyMqcqnpwWmlD1TFPY5fH6ob8g4r/oOcq3yNW/De5H9kzfLcejr6IvXmuXvjQBfDFD46h2B9n0OgNDj2tlDUd9jrR2x+dgssabFCsVE6jXmDNkPxpKM7uXwv5EXXbTYrOzhkV4/DEbKbSwIIcjWHsiuUnSTFH6osPyLrwQA6qYu7pamJ8lEmK3pET1HtmbT82Y7BGCZTJVw0qZnsccl9zQqrEjSh0BVNVqkyNihiy3sqN9tPzN+Xm9xqRogWCdx/5TISHdPV7aS4LMBRdfe/DlqTfnZWqLHuFsLItX3wfFyiV5+zXIpkzR8zSEUS5LkFdfHK6wFGUv56DcsDFGTuXomZh7nh40wEDjSyOPQ59xJQ7VW4MWaO9GE5tY2rvbKN6yhp/NXUnh+lTBxqtwpyaoIxzv3PnuGWOT6mI/Q62IJECBa+qqlaqWZrFBv/JdAeNGPOVtRWHjmH42jdaqUYXdKHP7cJWlvf9qBbprNKIChU7QVCB0UODsvRCSHJgGcztdxWpQoI57eTYB1GsK+tOVk4fsjErhBLhwLuQno7pDlAHgyIXUEilJjk5cILe X-Microsoft-Antispam-Message-Info: urCDVBOOCMtusihL7a79dHn+ml01EgNuc0s7MGNu9b5olerYma4umQWIsN1iRDciYp2fWtfykk3ZGmLs45vVAbuJPjMgTUL7/kmng/ET8SOz0fx8qDQNTlFX2o5vOkX5d3Amp+Rffly/iNb5C5gfJSIziAGkItF6/Lia7ex2bxms8LwWHKLY5K8uX0wXVHWpUQPIp+JHXrV2DZd4kmWd9Vgf1JKzWSbtLDO1evdt64Gz/yjYYF9RMPdvYcsqQyp+jgpvikucVVHgrNqO7LQFWTuQkB+apaEZdSJZevWf4jWVtm50rkQHo2ZMzyv6YZx+fBadFsbNLj7kDlHhF69eE/GDYXV89uc/abmIvuSebXM= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB2824; 6:xhVD2S5bj0T0TLcRBWSSIxUdffd0XUhbYBLkDnuOmGC/IlK5pxkwutsok7RJyX4A/XrlUG6NJVu8SCMtj0EhuELm+GfiS0fG7UU+fEWDBbaUIO7RShOWGHObaZp/+PBMUerqDZknYVoQFdDjigt3LA4HBUsaldG+0CwG9tgvemhT0e5QpR5Vlk/o3SuZUZXhBorYpMwg8DrVMiz5KbAk+od+58ULMyUK6aP6510iEyVXw8sh86a9oc9u0VKuQ9I6aPHHtnlc40UFQjCJNmH18syj5v+N4wBb6OIAocaC6RpttTbb8LyFRKibhe9Txa1H86+g9M2kiu82faLoUwA368/zUe1uK/6piJku8FY8v8oSRMuSng/10EGySd+0ByUk97g/UC1H59vvjv25VPr3tW/6ORIdjeykkPBu+Yx0PqaRiUdjHJw1sp2n99Fbqy7VzozNXZ5UmZ2gtVFzRf1qIg==; 5:RR0InlHHopODAhgFkvnTulcyW9oPWCKsbRhBouhiYox69rjw9NDIUL1/0OqVyfZK4hUDMo2IaEqYzb5yRlLdpz1iEM5+5ItN22ariYNPzTvqTze0MDlU2aVnxKYSbz6SmYu40m4ZwHCDdsdJt/4mvXtlRf4m/8aq3mwOeKGVkYw=; 7:jHtLXRc8AGWntCfHQX7/IKCBOSbqIKzlPHTALO/isy27s1zqq/7k+JEObxHJLb2SbiK8nqp5UkMP2WxMLo8E9gMYeGhc5d9QrGAWc7YaOsaSOkLjbAKMu3OSlY0qMpEGyRAl32yN4gF7fHx7Jpw9bfU6hgRS0SomnhqqvYD+L2OAzOQO5DczP9kK9CWFP2ZcBPTl2+ebYQTRoJCd0rMRL5mRNAlR+imr3xpNMsVH+FVf50HnAJCOfQh8xihw5Q1u SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 10 Sep 2018 06:34:29.4461 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 9343bbbf-c566-4d8b-2c87-08d616e7762d X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB2824 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Intiyaz Basha With the changes in patch 1 and 2, droq lock is not required. So removing droq lock. Signed-off-by: Intiyaz Basha Acked-by: Derek Chickles Signed-off-by: Felix Manlunas --- .../net/ethernet/cavium/liquidio/octeon_device.c | 4 --- drivers/net/ethernet/cavium/liquidio/octeon_droq.c | 33 ++-------------------- drivers/net/ethernet/cavium/liquidio/octeon_droq.h | 3 -- 3 files changed, 3 insertions(+), 37 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_device.c b/drivers/net/ethernet/cavium/liquidio/octeon_device.c index d0ed6c4..0f0275c 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_device.c +++ b/drivers/net/ethernet/cavium/liquidio/octeon_device.c @@ -1440,12 +1440,8 @@ void lio_enable_irq(struct octeon_droq *droq, struct octeon_instr_queue *iq) /* the whole thing needs to be atomic, ideally */ if (droq) { pkts_pend = (u32)atomic_read(&droq->pkts_pending); - spin_lock_bh(&droq->lock); writel(droq->pkt_count - pkts_pend, droq->pkts_sent_reg); droq->pkt_count = pkts_pend; - /* this write needs to be flushed before we release the lock */ - mmiowb(); - spin_unlock_bh(&droq->lock); oct = droq->oct_dev; } if (iq) { diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_droq.c b/drivers/net/ethernet/cavium/liquidio/octeon_droq.c index 53c25ee..ad621aa 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_droq.c +++ b/drivers/net/ethernet/cavium/liquidio/octeon_droq.c @@ -301,8 +301,6 @@ int octeon_init_droq(struct octeon_device *oct, dev_dbg(&oct->pci_dev->dev, "DROQ INIT: max_empty_descs: %d\n", droq->max_empty_descs); - spin_lock_init(&droq->lock); - INIT_LIST_HEAD(&droq->dispatch_list); /* For 56xx Pass1, this function won't be called, so no checks. */ @@ -506,7 +504,6 @@ int octeon_retry_droq_refill(struct octeon_droq *droq) int desc_refilled, reschedule = 1; u32 pkts_credit; - spin_lock_bh(&droq->lock); pkts_credit = readl(droq->pkts_credit_reg); desc_refilled = octeon_droq_refill(oct, droq); if (desc_refilled) { @@ -522,7 +519,6 @@ int octeon_retry_droq_refill(struct octeon_droq *droq) if (pkts_credit + desc_refilled >= CN23XX_SLI_DEF_BP) reschedule = 0; } - spin_unlock_bh(&droq->lock); return reschedule; } @@ -756,25 +752,17 @@ static inline void octeon_droq_drop_packets(struct octeon_device *oct, u32 pkt_count = 0; struct list_head *tmp, *tmp2; - /* Grab the droq lock */ - spin_lock(&droq->lock); - octeon_droq_check_hw_for_pkts(droq); pkt_count = atomic_read(&droq->pkts_pending); - if (!pkt_count) { - spin_unlock(&droq->lock); + if (!pkt_count) return 0; - } if (pkt_count > budget) pkt_count = budget; octeon_droq_fast_process_packets(oct, droq, pkt_count); - /* Release the spin lock */ - spin_unlock(&droq->lock); - list_for_each_safe(tmp, tmp2, &droq->dispatch_list) { struct __dispatch *rdisp = (struct __dispatch *)tmp; @@ -809,8 +797,6 @@ static inline void octeon_droq_drop_packets(struct octeon_device *oct, if (budget > droq->max_count) budget = droq->max_count; - spin_lock(&droq->lock); - while (total_pkts_processed < budget) { octeon_droq_check_hw_for_pkts(droq); @@ -827,8 +813,6 @@ static inline void octeon_droq_drop_packets(struct octeon_device *oct, total_pkts_processed += pkts_processed; } - spin_unlock(&droq->lock); - list_for_each_safe(tmp, tmp2, &droq->dispatch_list) { struct __dispatch *rdisp = (struct __dispatch *)tmp; @@ -888,9 +872,8 @@ static inline void octeon_droq_drop_packets(struct octeon_device *oct, int octeon_register_droq_ops(struct octeon_device *oct, u32 q_no, struct octeon_droq_ops *ops) { - struct octeon_droq *droq; - unsigned long flags; struct octeon_config *oct_cfg = NULL; + struct octeon_droq *droq; oct_cfg = octeon_get_conf(oct); @@ -910,21 +893,15 @@ int octeon_register_droq_ops(struct octeon_device *oct, u32 q_no, } droq = oct->droq[q_no]; - - spin_lock_irqsave(&droq->lock, flags); - memcpy(&droq->ops, ops, sizeof(struct octeon_droq_ops)); - spin_unlock_irqrestore(&droq->lock, flags); - return 0; } int octeon_unregister_droq_ops(struct octeon_device *oct, u32 q_no) { - unsigned long flags; - struct octeon_droq *droq; struct octeon_config *oct_cfg = NULL; + struct octeon_droq *droq; oct_cfg = octeon_get_conf(oct); @@ -945,14 +922,10 @@ int octeon_unregister_droq_ops(struct octeon_device *oct, u32 q_no) return 0; } - spin_lock_irqsave(&droq->lock, flags); - droq->ops.fptr = NULL; droq->ops.farg = NULL; droq->ops.drop_on_max = 0; - spin_unlock_irqrestore(&droq->lock, flags); - return 0; } diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_droq.h b/drivers/net/ethernet/cavium/liquidio/octeon_droq.h index b201936..c9b19e6 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_droq.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_droq.h @@ -245,9 +245,6 @@ struct octeon_droq_ops { * Octeon DROQ. */ struct octeon_droq { - /** A spinlock to protect access to this ring. */ - spinlock_t lock; - u32 q_no; u32 pkt_count;