Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752758AbbHQGAo (ORCPT ); Mon, 17 Aug 2015 02:00:44 -0400 Received: from mail-db3on0092.outbound.protection.outlook.com ([157.55.234.92]:27136 "EHLO emea01-db3-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1751948AbbHQGAm (ORCPT ); Mon, 17 Aug 2015 02:00:42 -0400 Authentication-Results: spf=fail (sender IP is 212.179.42.66) smtp.mailfrom=ezchip.com; synopsys.com; dkim=none (message not signed) header.d=none; From: Noam Camus To: , CC: , , , , Noam Camus Subject: [v1 2/6] NET: nps_enet: reduce processing latency. Date: Mon, 17 Aug 2015 08:58:35 +0300 Message-ID: <1439791119-26892-3-git-send-email-noamc@ezchip.com> X-Mailer: git-send-email 1.7.1 In-Reply-To: <1439791119-26892-2-git-send-email-noamc@ezchip.com> References: <1439791119-26892-1-git-send-email-noamc@ezchip.com> <1439791119-26892-2-git-send-email-noamc@ezchip.com> MIME-Version: 1.0 Content-Type: text/plain X-TM-AS-Product-Ver: SMEX-11.0.0.1191-8.000.1202-21750.005 X-TM-AS-Result: No--5.352300-8.000000-31 X-TM-AS-User-Approved-Sender: No X-TM-AS-User-Blocked-Sender: No X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1;AM1FFO11FD031;1:Kd9I6pVCHe3ljcd36mrRxf2isz73LEOT/oO5joPCMiw+h81g9yuvY1eqngLcPJXu3o0QQq3kE4VYRpH8UWqiTsRmb43SLGzwRVpbHOWCMi9VXtt2hgSt2DtoZZY3rH+U6hxfasJ/Yr5DTJ6ydJrQq/qtHUnOMbCNAAN0stt/7XMJ986G5Ae052Qg2nkGDSVf06l2iQosaJrUVuvvKwrUP47ZsxJ8iZC5DEMLdcU1+kFh7OnMAbm3utK8RLbzTyklJEIuZKvEItlO0seOlVzIuY83Hwagvloc70XqxlP1Q3OYS0RtDKQNsU3WXjnhxRbQVjxlDC+D3KV2k9mL9D5pa24FsGgnbZauFGkCApkZ1i8nrHh1IYIE7ZTlQlYQ6cRc X-Forefront-Antispam-Report: CIP:212.179.42.66;CTRY:IL;IPV:NLI;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(2980300002)(3050300001)(339900001)(199003)(189002)(5003940100001)(50466002)(92566002)(77096005)(77156002)(189998001)(19580405001)(2950100001)(19580395003)(107886002)(5001970100001)(48376002)(5001770100001)(62966003)(6806004)(5001830100001)(229853001)(5001860100001)(4001540100001)(104016003)(50986999)(106466001)(47776003)(76176999)(46102003)(105606002)(33646002)(64706001)(50226001)(36756003)(87936001)(49486002)(85426001)(86362001)(4001430100001);DIR:OUT;SFP:1101;SCL:1;SRVR:VI1PR02MB1149;H:ezex10.ezchip.com;FPR:;SPF:Fail;PTR:ezmail.ezchip.com;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1149;2:b/CFlYAGZDo/IZYTfOriUeySh6hbFToXbcVBhxZTg8X8HD3Vw0t3atFctZtmQ2OMtvgxgyoTBwfWKGsI0oXlfDS4c1jckWBsz0qOaBNNdBcFz9Hs1TVFb1GDLTP9adsY8M2Nh9wQMUP72AZuNbQw6Wicom0SW7WNIRWc/E9IHX0=;3:i2238+nQ042znMns0L6DJdzrKJQ7D+PXOCf8URYgv8broZ0a96yKEMg1FpRqFM4oPcTACR46dS2s9mC4nIg3bhSyM1yUd/oEjiGHkZBWBmsFljkdyf5mLcn1QgaqAZD3e5XXdkpOdfdyFeuDPogZzRMRkcPEhYK8SqF5dcjRYKx1fXFXBVIZRESzdrE590i7lFsmQsLSdZA8RH1KXvQaBQxv5VY9sEiILJBN9I1bh6g=;25:dWT0LG64ycEfHH1e0pToW6xgY3b3LEBzNRUaOT2vt34lFJzmggSFYPdid7Oub1vPqTMwZjyrRlB1DQLKM8JID/z8WyGTHX8RghYKIXkchx0tJyR0Q51laqXCoRfwQBoIGtsaxoCgp5zDPFA0Q0bQ/W+z8VldrE1eHYt0/6uwHhrl9vIkg91jI4IntSkIZzYwrT1vJQdjtqIazj4wZyNe6TAsZ4hoZGAdgkRF6YnyYEdh8qKsC4AfbowmKHoJNSoF;20:GcmMmQE5LSz+bF8moiWqkFIPO76Sf3Xujeet5Vzwd6k5NzH1KeS0Gs1cW2wTp4iRqUVm4ve7JlZTmq4LcAa5DlhJa87pi0F7edhuAHJy5o442iRyFSE4kwyX6QCEAVqOr41DL14193BkcKKV5w0xYxQGhRAcuLFvKQvTaZTDkAo= X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB1149; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(8121501046)(5005006)(3002001);SRVR:VI1PR02MB1149;BCL:0;PCL:0;RULEID:;SRVR:VI1PR02MB1149; X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1149;4:jgYBk2+JPemPTiWD/c8ovweF1FmFFYS1VZ1GtJIGRAAGk5SsJxfSW5nkpZzJns0V6hcNl3P6uYvevwrCjOgRbYaBrFBPfIbqGbD6BG4hTggh+FqLO51youWsLlHsrtrksyjYZZ2FjZbjxV4aNSXtsWBndL0AANttJq95nNTGZF+a4XI8WRvG7mWpp0AldMoiN6sYhDx4cv9SZq3k3MZTCa2wcQibk3PKefnzvbqYR9QmMS2TOQ+YebAfkW84UQj0DeTiw5jv+RQu47zLhP/4Y1Ds/lPaQGc1g8xcEN/y/qbzuj+YcU3Fz8c4Fm2topV9 X-Forefront-PRVS: 0671F32598 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1;VI1PR02MB1149;23:qiHvYNaD2BA/cO0UmFx2wt3iZ6em0tHovmeJZZtSc?= =?us-ascii?Q?JtzfeG6VNb2/+8N12jAJqrk2Br5IGwGQj675OWqVRf+w+C8AZTdr3ntFHSRZ?= =?us-ascii?Q?zfNyffHajSgMRKOY33H8XY5hpdj8UqdxW3w1LVXKBE1D4ksLzR9R2C15/kCa?= =?us-ascii?Q?vM8CM1ypk0JJsA04HQNw/2womLvrRk1Fiod6CAaMMvg51kXXnuI09b2EtSdw?= =?us-ascii?Q?JykhCS0pEPc4yNKGw4exibkzMxWBXlZhYM5j3ejamhMdCEK0Lml6QKr6sCK4?= =?us-ascii?Q?pVxx4tk0T1mlxo7moBYz2tj3nftGoAQAl5wSooSlGwT5997hgauoO4qHqexY?= =?us-ascii?Q?4ZHqRg6g8UlEjZb3N14AcY0ue/h44D6OzgCXtDfYXCGfCCK8x9wTdykAihEu?= =?us-ascii?Q?SRI9vuFavUwuTwCsdlxspzIqfrjE4xetHBTHLQ5zDZfM9zE69qJkX64z9+iI?= =?us-ascii?Q?zClMQUDVYj2B7Anmrs7kMYLm0sH1OEgqnljFa4A5tTSV39kFi9eEcIFOR04L?= =?us-ascii?Q?fBelfWqnTX2NEflCzM6t3AQTdAkTRdxAM9jz1PJAq4d3tPvPLk0NNM0c1PI5?= =?us-ascii?Q?3WwJU3y0U7LeKYo5rzHzFuJsRCG/LH3ZJJVkNgvg8Tlx3NRYVbnqzhNVNLuP?= =?us-ascii?Q?7A6ZoeCIdHnYeHEZA8UipBGFgX8JvCmBZTxg9a03H/YeR4rvY2fYS2ubOzXD?= =?us-ascii?Q?+ISWBomyvMPIweS5lVibbEgomqreBYlVH04LQX1CQkyzUqykRpct2d/IkYCW?= =?us-ascii?Q?6fTiPMKK/vTe7p5SuB9Z7TFbPZ72YbyVyZja+VIN0hDxRj+KmPc3nF8tSWE/?= =?us-ascii?Q?GOF3Nq8AkXY21QZaZO2XDnbHJyHRYPLHpdO+p2LBtNa2fOGFJ3p7sa8o2368?= =?us-ascii?Q?vEiZyDp778a2yU5YNl6AD/TXT3+n0JrRMF/eJckdyHRPnHZ0V9r5yC0bFdwS?= =?us-ascii?Q?YL/a+m+FPWeD2do7h90UypXLIY1HJgFSXiuxleyBl9r31KvTxOVZ668ijhW9?= =?us-ascii?Q?XAdYPlv4wzfcyU5cArmK3DEaC7gursN02L5ktOaghFIO9u3FSnegtSIZGmxH?= =?us-ascii?Q?RpKE9VhpyBoNY2TTz9UHe6dCvg2YmwDItbwSe3F7DwPuZRF8YRdKcU2Ifq1J?= =?us-ascii?Q?0VZaWhkpdkzQedYK1m+vVPhmAR7Vx0o?= X-Microsoft-Exchange-Diagnostics: 1;VI1PR02MB1149;5:bxNOM0HkKtvZM1vT3HMCHCxtFWerbGYaOrWn+I3stboz+GrQ9A1TXnNl9GlC7HAQE5icMGziyLEWq98HxmmdnKXj3pqxuPD5jrhgaXeXaxFzSeuD1gMolflDncADOdpWtt9I6F3WaiDlynQYn11JVQ==;24:Dlv3aBjEhaA1ZFbdopjHUzG5jusOmgSGm+kw5DeOrBOdowxEA8jXmCmwuCwG+w5tdxAVH6w2odfufkArDAnATbgZIsrh12lCTIYLjNsQcpc=;20:dQk6FP2A4q3SC6wSc24oFD9WXpmttnmzTjLg4i7DKSDUyR+d8CrRVuPQxvJTNjbGmdouvW1U/1Pm7uyzSnJx7w== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: ezchip.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Aug 2015 06:00:37.9802 (UTC) X-MS-Exchange-CrossTenant-Id: 0fc16e0a-3cd3-4092-8b2f-0a42cff122c3 X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=0fc16e0a-3cd3-4092-8b2f-0a42cff122c3;Ip=[212.179.42.66];Helo=[ezex10.ezchip.com] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR02MB1149 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2235 Lines: 64 From: Noam Camus TX handler is minimalistic and there is no need to schedule a NAPI job. Tx done will be processed during hardware interrupt context. Signed-off-by: Noam Camus --- drivers/net/ethernet/ezchip/nps_enet.c | 17 ++++++++++------- 1 files changed, 10 insertions(+), 7 deletions(-) diff --git a/drivers/net/ethernet/ezchip/nps_enet.c b/drivers/net/ethernet/ezchip/nps_enet.c index 0e652b4..af72181 100644 --- a/drivers/net/ethernet/ezchip/nps_enet.c +++ b/drivers/net/ethernet/ezchip/nps_enet.c @@ -159,7 +159,7 @@ static void nps_enet_tx_handler(struct net_device *ndev) } if (priv->tx_skb) { - dev_kfree_skb(priv->tx_skb); + dev_kfree_skb_irq(priv->tx_skb); priv->tx_skb = NULL; } @@ -185,7 +185,6 @@ static int nps_enet_poll(struct napi_struct *napi, int budget) buf_int_enable.rx_rdy = NPS_ENET_ENABLE; buf_int_enable.tx_done = NPS_ENET_ENABLE; - nps_enet_tx_handler(ndev); work_done = nps_enet_rx_handler(ndev); if (work_done < budget) { napi_complete(napi); @@ -212,14 +211,18 @@ static irqreturn_t nps_enet_irq_handler(s32 irq, void *dev_instance) struct net_device *ndev = dev_instance; struct nps_enet_priv *priv = netdev_priv(ndev); struct nps_enet_rx_ctl rx_ctrl; - struct nps_enet_tx_ctl tx_ctrl; - rx_ctrl.value = nps_enet_reg_get(priv, NPS_ENET_REG_RX_CTL); - tx_ctrl.value = nps_enet_reg_get(priv, NPS_ENET_REG_TX_CTL); + nps_enet_tx_handler(ndev); - if ((!tx_ctrl.ct && priv->tx_packet_sent) || rx_ctrl.cr) + rx_ctrl.value = nps_enet_reg_get(priv, NPS_ENET_REG_RX_CTL); + if (rx_ctrl.cr) if (likely(napi_schedule_prep(&priv->napi))) { - nps_enet_reg_set(priv, NPS_ENET_REG_BUF_INT_ENABLE, 0); + struct nps_enet_buf_int_enable buf_int_enable; + + buf_int_enable.rx_rdy = NPS_ENET_DISABLE; + buf_int_enable.tx_done = NPS_ENET_ENABLE; + nps_enet_reg_set(priv, NPS_ENET_REG_BUF_INT_ENABLE, + buf_int_enable.value); __napi_schedule(&priv->napi); } -- 1.7.1 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/