From patchwork Mon May 22 19:19:48 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Govindarajulu Varadarajan X-Patchwork-Id: 765563 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3wWpdc0W50z9s5L for ; Tue, 23 May 2017 05:29:56 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=cisco.com header.i=@cisco.com header.b="cqae2Ikp"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1761342AbdEVT3x (ORCPT ); Mon, 22 May 2017 15:29:53 -0400 Received: from alln-iport-7.cisco.com ([173.37.142.94]:25905 "EHLO alln-iport-7.cisco.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1758710AbdEVT3w (ORCPT ); Mon, 22 May 2017 15:29:52 -0400 X-Greylist: delayed 556 seconds by postgrey-1.27 at vger.kernel.org; Mon, 22 May 2017 15:29:52 EDT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=1725; q=dns/txt; s=iport; t=1495481392; x=1496690992; h=from:to:cc:subject:date:message-id; bh=B8CW4J+dup7PTRQDIFK/a09JmSFsNV8LY+uS6NFMbvs=; b=cqae2IkpD98r49hi7wKgp3eWtK8R/80sda3tEjhFHWtydAltaaDZxNIX xQKHoxHQ8Q/WBVvRtcPArvouEfTJHo1Dde6/wv2+A+5uv4q9+mGfB6LNR Tp3Rz3eBDYvxm5VC/0Bwra88QlFFm6b7/ZTdSEPtHLGTXsEaMCGRmh9yX g=; X-IronPort-AV: E=Sophos;i="5.38,378,1491264000"; d="scan'208";a="430014480" Received: from alln-core-4.cisco.com ([173.36.13.137]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 22 May 2017 19:20:35 +0000 Received: from a6.cisco.com (arch-kvm-vm.cisco.com [10.193.184.6]) (authenticated bits=0) by alln-core-4.cisco.com (8.14.5/8.14.5) with ESMTP id v4MJKU3X023247 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 22 May 2017 19:20:35 GMT From: Govindarajulu Varadarajan To: netdev@vger.kernel.org, davem@davemloft.net Cc: benve@cisco.com, Govindarajulu Varadarajan Subject: [PATCH net-next] enic: unmask intr only when napi is complete Date: Mon, 22 May 2017 12:19:48 -0700 Message-Id: <20170522191948.1397-1-gvaradar@cisco.com> X-Mailer: git-send-email 2.13.0 X-Authenticated-User: gvaradar@cisco.com Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org In case of busy poll, napi_complete_done returns false and does not dequeue napi. In this case do not unmask the intr. We are guaranteed napi is called again. This reduces unnecessary iowrites. Signed-off-by: Govindarajulu Varadarajan --- drivers/net/ethernet/cisco/enic/enic_main.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/net/ethernet/cisco/enic/enic_main.c b/drivers/net/ethernet/cisco/enic/enic_main.c index 4b87beeabce1..6a9c8878aca0 100644 --- a/drivers/net/ethernet/cisco/enic/enic_main.c +++ b/drivers/net/ethernet/cisco/enic/enic_main.c @@ -1537,13 +1537,12 @@ static int enic_poll(struct napi_struct *napi, int budget) */ enic_calc_int_moderation(enic, &enic->rq[0]); - if (rq_work_done < rq_work_to_do) { + if ((rq_work_done < budget) && napi_complete_done(napi, rq_work_done)) { /* Some work done, but not enough to stay in polling, * exit polling */ - napi_complete_done(napi, rq_work_done); if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic_set_int_moderation(enic, &enic->rq[0]); vnic_intr_unmask(&enic->intr[intr]); @@ -1663,13 +1662,12 @@ static int enic_poll_msix_rq(struct napi_struct *napi, int budget) */ enic_calc_int_moderation(enic, &enic->rq[rq]); - if (work_done < work_to_do) { + if ((work_done < budget) && napi_complete_done(napi, work_done)) { /* Some work done, but not enough to stay in polling, * exit polling */ - napi_complete_done(napi, work_done); if (enic->rx_coalesce_setting.use_adaptive_rx_coalesce) enic_set_int_moderation(enic, &enic->rq[rq]); vnic_intr_unmask(&enic->intr[intr]);