From patchwork Sat Aug 12 01:29:03 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Manlunas, Felix" X-Patchwork-Id: 800791 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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; dkim=pass (1024-bit key; unprotected) header.d=CAVIUMNETWORKS.onmicrosoft.com header.i=@CAVIUMNETWORKS.onmicrosoft.com header.b="Ur27M7Iu"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xTkmr5PDRz9t2Z for ; Sat, 12 Aug 2017 11:29:16 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751965AbdHLB3M (ORCPT ); Fri, 11 Aug 2017 21:29:12 -0400 Received: from mail-sn1nam02on0060.outbound.protection.outlook.com ([104.47.36.60]:6496 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751770AbdHLB3J (ORCPT ); Fri, 11 Aug 2017 21:29:09 -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; bh=rf8BHbxGo99pvrl3ETb6fbK7us7QbctlQhXu7Pg5gh8=; b=Ur27M7IuOiV2cVKaZTO+qrI5JvgMyHbh/KN1Qeff6Au0FO+KEKL/LEf0TYgT0fupnQfzeQAFxvQQw9sD1I2Ia2z+VAcEXNa/bKRxi9N6W7bKN6s6C1+AVFosVKjT8/MklROQREQjh+Mn2ZuZK6ZdxAQJwXlt5RscUfqestE7cvc= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Felix.Manlunas@cavium.com; Received: from localhost (50.233.148.156) by CY4PR07MB3176.namprd07.prod.outlook.com (10.172.115.142) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.1.1341.17; Sat, 12 Aug 2017 01:29:07 +0000 Date: Fri, 11 Aug 2017 18:29:03 -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, intiyaz.basha@cavium.com Subject: [PATCH net-next 2/8] liquidio: moved update_txq_status to lio_core.c Message-ID: <20170812012903.GA2536@felix-thinkpad.cavium.com> References: <20170812012818.GA2505@felix-thinkpad.cavium.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20170812012818.GA2505@felix-thinkpad.cavium.com> User-Agent: Mutt/1.6.1 (2016-04-27) X-Originating-IP: [50.233.148.156] X-ClientProxiedBy: MWHPR1201CA0014.namprd12.prod.outlook.com (10.174.253.24) To CY4PR07MB3176.namprd07.prod.outlook.com (10.172.115.142) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 149bfc8b-dd85-4fdb-7c48-08d4e121868f X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(300000502095)(300135100095)(22001)(2017030254152)(300000503095)(300135400095)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:CY4PR07MB3176; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 3:cJ247b6z7ahThRoC5HmRC0qbPG4B/6akhWj+kh5n/s+5GT7ar6NxMFjJzsPmtsgZTFS17HV28kTqcLAbDYOlnVeOhrxIve8aPD62U9SgQszPLDL0c+4pDlv4idvr1pLOn2AlTxMcaeYGgRq71xpm5wuP6T8rYgLe12LbkQ8GwzFJg3MEuoC0SME+b3k+7yx+pqSrbGcETq7/1DA1zDOoEvIu0Ose239uWoxlOJeCpVsl8HvOZpyeiigk1/g/iZ9X; 25:PW/k1P9vf/R5fdL0PFlh7FxE08Tp1lba6Mn8yMfM2ETYQdRgOp5BaOJXOlpNsYh7NybgFOJt9fe6GlEb/freZXx2oQy1mldow/A4uSnDcRwE59BVJaSNlHBScNOhGRS9lDrhlo96nkfnLvM6KQiOrolNavORgyxUnQGIauKI7F+4pTgm4LzQIPS8Y2JrRvXEZSsJnxQWfdxzrmhZo2bsA5vzKqYqlwLQivloNglQ23Pk0k4Ih89JI/zVw8PIIl1ZQeh98ziwYUK5NQWpFZZhc5YTOnMs/vzfraUJ85zRexitm1APUeIewrR1MvGR7DcMLCzWUo8hidLmUxCRz0KURQ==; 31:0RfKv6121GXalorvBHfmfnGTZJk6p5j2IJ4nxBtb1bgYppS5qzxJInyJv68zStgl6oU6s9B1MTVY2FAdatAHOZfBMCEj2cibjbN6y+YGREWqMIdrieS6xy/iLNl1C16LnF1KI/yXCEcyLLSvgsEADI10UtKF7GAma3LLwuJh1enE5BWdKT3bOi1+WC2fujQiagyRMjJ8ZatvUacYjB3UFXnwr9L2A6Wo8Un/gaF5eL8= X-MS-TrafficTypeDiagnostic: CY4PR07MB3176: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 20:nJNyXKtBLRx0Lf2xTF73TOi8m6Q0pKXp/J14TBQvWgdSEm9ln9RYqRMDyUxqOTuK/AS6O/I26vXwQe/ovhABFKVkSYwnLtx2feX4eQeHfbWuAFGeQTUoBsXt6HmPanHF5kCAaX99lRiCyVR3+znGyHOH0Su2wI5z0+DiTH0PcZPiVsAiCQGC+gjJpM8fO1BayNCFIB7PApydGFBLnZcJRfK5C4iRMzl4TsqoFOTBGJQU34SWVX2lIp3A7OP2SSXdDhSIQuOB49L0W0XN4GJkg/HkELwbsTyB5zSSHRvPyjIJTgvI04FGNCm6X164Poab3KN86u/IbhZQQZJ7kHexeRd9rHBgmANzR3WN/Lsmjd+9qHnE9RqNRhBzwJShhR3XMHXJysWeRdN7ynA+l+zyeZzSo+GkYenWDkF0f5oQKJprzKVhAkxm0Jv8SYrEJNmqVNEpILngtCJL/S5mHxcM7hmqO1tZxPDuLgnSnNE3cTTructVJMUx9HrgIrHV2b/L; 4:d3PNXkjPmn9AE4xN6kV4AzQY6A6ikgUUVWkGNNIFIVWM8VEPUm/RsY5bT1AI9cslMFT3BZD34aaNoD4TBf1SLutPqP32Aw+P4na1EdlaRzV6n53MqyxtlMDdBsxb5r9tEdDWs5MzXO4wikNdcYmbVVeXPik9mV+66MVKMe1JFGZlFeC3ld2NvDc3Z7aAszr4qIhPGryy5ks4HSluMkIuj6Zeq61nubjsp4NoxVHm+lmf+UXZU8ynShGiZXEUcrjp X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(601004)(2401047)(5005006)(8121501046)(93006095)(93001095)(100000703101)(100105400095)(10201501046)(3002001)(6041248)(20161123560025)(20161123562025)(20161123564025)(20161123555025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:CY4PR07MB3176; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:CY4PR07MB3176; X-Forefront-PRVS: 039735BC4E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(7370300001)(6069001)(6009001)(199003)(189002)(33656002)(1076002)(2950100002)(6116002)(23726003)(3846002)(97736004)(6916009)(6666003)(6496005)(189998001)(53936002)(105586002)(47776003)(478600001)(81166006)(81156014)(68736007)(4001350100001)(66066001)(76506005)(86362001)(106356001)(8676002)(72206003)(5660300001)(7736002)(2906002)(305945005)(50986999)(2351001)(110136004)(107886003)(2361001)(6486002)(101416001)(83506001)(25786009)(54356999)(42186005)(50466002)(15650500001)(76176999)(7350300001)(4326008)(18370500001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3176; H:localhost; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY4PR07MB3176; 23:ymvbew6IO33yLEklZ1H0A2wBrb+MVbFaTr5ExSqQZ?= =?us-ascii?Q?tUeHK2ubPKsfW+3+tV46prJicKVczjNeZgA7oz+ArBNDKQh5rinBosHKTkc7?= =?us-ascii?Q?RJnkVxBnQx9qtajQC9SB0M22z2afQJ341Dv9Lb3LyOGkldJgTMX6ebmMxnXD?= =?us-ascii?Q?3TnHZs2vJrsGsUw9OYHL9uEUJhg38i21D0EqGe1UrWIdmiJhp5j6YQzwHBtX?= =?us-ascii?Q?Wzft30zd20eWDU5OKjjsj/jqni40YTMumaqRZ8cBc5xRC1qTK6p7ygNr4Edg?= =?us-ascii?Q?O/eRwU53c0lwsz3WQpsqxRTXeU+0VjPbHfcaqnGjuDaf/3ckAzCKmdvDYIWx?= =?us-ascii?Q?5AqVkIAVxZrkEaRvGbS4pU5lkvnuXl/f6ddTsq/K6BbU7lSh7HNFu4f2cVvp?= =?us-ascii?Q?I9xYwL8Ele4vZfwCrU1lfq8UqQpkQ4OfZMN37qZC6tkgei3DNzSTzsedO9xs?= =?us-ascii?Q?M5U5xTPg5q9JF/yX0cYb3BWEKWdQ9AiCyeIXYcVSxEtfWkdPoqkLZOEHV5+8?= =?us-ascii?Q?BB6Xg5DqObFBgB77Y938GkbvbHxJReLUm28/jPw4nhybNXr3D8eP6aYuCy6Q?= =?us-ascii?Q?6sgug51defZMuSP2Da6VkPKhKkquwGKuVyaFvSv4qwlyzj0tbEVl2XvQ4cMa?= =?us-ascii?Q?Ywn6XYcSQUN7p1tTMqeweIFrxKbbkP2X7z+K4rroB3PRKtpTS+c7pcXI0il/?= =?us-ascii?Q?PSfUAJYP7OrzHnoGeINPiQTaOuXuachsYCY7DKBbNQjxXtfDCBKQ4hY9F2Jn?= =?us-ascii?Q?aP2YFuFaMb6ECbTR3WNFRTPDwPVtKwg04SXBcEGPDoYA2qmqmSOl+MOL5t6Q?= =?us-ascii?Q?FF4jMAFOhhwf25jYRURDPKDh3PxFbcSxP7E9hJRfJFWhd9C2/65WoS0/kl4h?= =?us-ascii?Q?IEDhYlYktMEJZmklGcWcpvPvptL5KBCiFQNhswkQIqMZRuKfFtoqOpq14HRS?= =?us-ascii?Q?IHognsO9QPHYtf04Ihr8K41vSEuoxm5Ryi35/aaXpsr5vEyfJHvcg8zOVIFB?= =?us-ascii?Q?XHyzA2GtugFud5Myqj3UIsaxl9MTA+TOxitW2uM1tXDL1q1hD8DmQrrm7kBj?= =?us-ascii?Q?xEt35ukDi47XPg4aVQuGHJN/qkcN0XTycCrJ9c9T+WyPIMInEv+UgAPYDZPG?= =?us-ascii?Q?KcK5V5BlvgSck8fJVYEFC10PwriJqSyv/s4e9R+NGAQtLp0f+tOE/qheLMeP?= =?us-ascii?Q?G6E4SbFJ2zs7x7WPOtfBtLENV0lyb7nI3Xu0B4+uERWxR517fBsDR1fwV0CI?= =?us-ascii?Q?VRGgfFxjyX9bC2mW1s=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3176; 6:Q+5+0LXIhLGQMOvlfyP94D5KYWi0cB3iy8FIPEgN08a4SovqE+FbZLu3MWSBJ3e7wjOsxeOvtng4lj95Uk+ZDt8DQX1IkywXAiqO5bIW1qkYB1g7VSHPcKohKAxjs1XUNPSNP3wszC+tgRmr8NAIMU0TkX+7q0oMAzd7GPQ8qpfmO6q6amRXp94ksWMSl/rxan0ZYCvBT4jtbFe/1dB3c/Xm+6wNEsWEzHVQ9K4xgOSsjFKp09Ltf8XJr1T7EBWT5JFT+F1h2+fC5dakT8cR3ahOHWKKmG6bcVVG5l+9bNYiSRH9BzMVgJJG2nUERIkwZf5eDlNTKPl7I2xYdltiUw==; 5:6FXIi7fjRlCSZJNKvHx+4mgTvNWGvYNrdpsdDcrstrY0GwZwbZ6dGTS+53vdQJ7VpNiW3vh4RN1x/Er/VFpn59mT6GkSgS/5tDmWnrl3IQn44b7CUjYUhs5fNzQeHUH/CGTBoXD+ZHghIQnR/fApqA==; 24:5MJBuNQ3b3sVdJQRKnZrqRQYSa/LYNlswtvHO3e1W09oWJhTxdzkcv7xJY5UoFVovqi3dGJhqkK5hZg+okWE/w9qJjQjhN4T6vpTtAhsEYU=; 7:aGFISNn0cQt2ws0XlwdRQD21m5xWg7emtXa+gJ5S9Ixa4V/y7M88eG2Uv8jwQUjZ1sSMr2wIwr6BAFz1MInHVjFllEVZzQnTsMyV1jiwnjwrit5cBKFBAbHwAU+OkawxEY3LN63xfTRyK2qVprfLOmTEQWkQ8dVaRiole6NA+mg9Dk1RVfqjY/lFu12pGW17RGaVK8XZLpLseZw2vfDHIeUZpq4HbNV/gxhxV3Qvzls= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Aug 2017 01:29:07.2553 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3176 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Intiyaz Basha Moving common update_txq_status to lio_core.c Signed-off-by: Intiyaz Basha Signed-off-by: Felix Manlunas --- drivers/net/ethernet/cavium/liquidio/lio_core.c | 33 ++++++++++++++++++++ drivers/net/ethernet/cavium/liquidio/lio_main.c | 35 +--------------------- drivers/net/ethernet/cavium/liquidio/lio_vf_main.c | 26 +--------------- .../net/ethernet/cavium/liquidio/octeon_network.h | 1 + 4 files changed, 36 insertions(+), 59 deletions(-) diff --git a/drivers/net/ethernet/cavium/liquidio/lio_core.c b/drivers/net/ethernet/cavium/liquidio/lio_core.c index adde774..b55ab75 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_core.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_core.c @@ -364,3 +364,36 @@ void cleanup_rx_oom_poll_fn(struct net_device *netdev) destroy_workqueue(lio->rxq_status_wq.wq); } } + +/* Runs in interrupt context. */ +void lio_update_txq_status(struct octeon_device *oct, int iq_num) +{ + struct octeon_instr_queue *iq = oct->instr_queue[iq_num]; + struct net_device *netdev; + struct lio *lio; + + netdev = oct->props[iq->ifidx].netdev; + + /* This is needed because the first IQ does not have + * a netdev associated with it. + */ + if (!netdev) + return; + + lio = GET_LIO(netdev); + if (netif_is_multiqueue(netdev)) { + if (__netif_subqueue_stopped(netdev, iq->q_index) && + lio->linfo.link.s.link_up && + (!octnet_iq_is_full(oct, iq_num))) { + netif_wake_subqueue(netdev, iq->q_index); + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq_num, + tx_restart, 1); + } + } else if (netif_queue_stopped(netdev) && + lio->linfo.link.s.link_up && + (!octnet_iq_is_full(oct, lio->txq))) { + INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, lio->txq, + tx_restart, 1); + netif_wake_queue(netdev); + } +} diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c index b20d13f..ba1b493 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c @@ -903,39 +903,6 @@ static inline void update_link_status(struct net_device *netdev, } } -/* Runs in interrupt context. */ -static void update_txq_status(struct octeon_device *oct, int iq_num) -{ - struct net_device *netdev; - struct lio *lio; - struct octeon_instr_queue *iq = oct->instr_queue[iq_num]; - - netdev = oct->props[iq->ifidx].netdev; - - /* This is needed because the first IQ does not have - * a netdev associated with it. - */ - if (!netdev) - return; - - lio = GET_LIO(netdev); - if (netif_is_multiqueue(netdev)) { - if (__netif_subqueue_stopped(netdev, iq->q_index) && - lio->linfo.link.s.link_up && - (!octnet_iq_is_full(oct, iq_num))) { - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq_num, - tx_restart, 1); - netif_wake_subqueue(netdev, iq->q_index); - } - } else if (netif_queue_stopped(netdev) && - lio->linfo.link.s.link_up && - (!octnet_iq_is_full(oct, lio->txq))) { - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, - lio->txq, tx_restart, 1); - netif_wake_queue(netdev); - } -} - static int liquidio_schedule_msix_droq_pkt_handler(struct octeon_droq *droq, u64 ret) { @@ -2515,7 +2482,7 @@ static int liquidio_napi_poll(struct napi_struct *napi, int budget) /* Update iq read-index rather than waiting for next interrupt. * Return back if tx_done is false. */ - update_txq_status(oct, iq_no); + lio_update_txq_status(oct, iq_no); } else { dev_err(&oct->pci_dev->dev, "%s: iq (%d) num invalid\n", __func__, iq_no); diff --git a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c index 17623ed..dd0265a 100644 --- a/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c +++ b/drivers/net/ethernet/cavium/liquidio/lio_vf_main.c @@ -647,30 +647,6 @@ static void update_link_status(struct net_device *netdev, } } -static void update_txq_status(struct octeon_device *oct, int iq_num) -{ - struct octeon_instr_queue *iq = oct->instr_queue[iq_num]; - struct net_device *netdev; - struct lio *lio; - - netdev = oct->props[iq->ifidx].netdev; - lio = GET_LIO(netdev); - if (netif_is_multiqueue(netdev)) { - if (__netif_subqueue_stopped(netdev, iq->q_index) && - lio->linfo.link.s.link_up && - (!octnet_iq_is_full(oct, iq_num))) { - netif_wake_subqueue(netdev, iq->q_index); - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, iq_num, - tx_restart, 1); - } - } else if (netif_queue_stopped(netdev) && lio->linfo.link.s.link_up && - (!octnet_iq_is_full(oct, lio->txq))) { - INCR_INSTRQUEUE_PKT_COUNT(lio->oct_dev, - lio->txq, tx_restart, 1); - netif_wake_queue(netdev); - } -} - static int liquidio_schedule_msix_droq_pkt_handler(struct octeon_droq *droq, u64 ret) { @@ -1608,7 +1584,7 @@ static int liquidio_napi_poll(struct napi_struct *napi, int budget) /* Update iq read-index rather than waiting for next interrupt. * Return back if tx_done is false. */ - update_txq_status(oct, iq_no); + lio_update_txq_status(oct, iq_no); } else { dev_err(&oct->pci_dev->dev, "%s: iq (%d) num invalid\n", __func__, iq_no); diff --git a/drivers/net/ethernet/cavium/liquidio/octeon_network.h b/drivers/net/ethernet/cavium/liquidio/octeon_network.h index 043f6e6..0e44ee1 100644 --- a/drivers/net/ethernet/cavium/liquidio/octeon_network.h +++ b/drivers/net/ethernet/cavium/liquidio/octeon_network.h @@ -474,4 +474,5 @@ static inline int wait_for_pending_requests(struct octeon_device *oct) return 0; } +void lio_update_txq_status(struct octeon_device *oct, int iq_num); #endif