From patchwork Fri Jan 13 01:04:14 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Poirier X-Patchwork-Id: 714721 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 3v04Df2qLQz9t1F for ; Fri, 13 Jan 2017 12:05:22 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="TFessgYc"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750887AbdAMBFS (ORCPT ); Thu, 12 Jan 2017 20:05:18 -0500 Received: from mail-pf0-f193.google.com ([209.85.192.193]:33336 "EHLO mail-pf0-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750779AbdAMBFR (ORCPT ); Thu, 12 Jan 2017 20:05:17 -0500 Received: by mail-pf0-f193.google.com with SMTP id 127so5665022pfg.0 for ; Thu, 12 Jan 2017 17:05:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:date:message-id; bh=woMUwfKkPJzVlCZqzOw3LI9viFvHKxVtva+7/GWZ3iY=; b=TFessgYc2gA4IK+CAHYuKAD18stbQet8RHftdS/fEuFvjlXagqttBC1FFEmb5yIkHY dNGkzA0eEw00FtwEica3cm4V3Fb6v+A97MtG+MGJeN+BC8zEzQ6R//EObqgR9QtMWpqZ s1Qjw5kZPhvSmk760+UEZZSXhOUAhPQO+qDS0APkVkAL9XpEJo5yCrKdlBRfhad4Ma1g F2gPwR+7Y/B9mH7teVloH6Ou/wTUbkKofVjgKK7PZjxcvWUuLyeT5fucnzaBclDQY/+J O66e8gwDnrWGvjY+kef6+7xrJACq32ihPagpnVXxUq+3zwMYBZmtbdYeNJfYqivFDTeo J6AQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id; bh=woMUwfKkPJzVlCZqzOw3LI9viFvHKxVtva+7/GWZ3iY=; b=Z4FG17hvod/BX9N1DN7T1uZUp4STZ1R2VOtf89jDzRZA4Dy7VG+u3NnxzbtyonFWnN KFPhDFu495bpk8M9NaCB+vxZ7dztBpLdQznrV8zugxgeZHnP9FNZsBttYRW923H1noQP SVclQPUP+ypNva3zuRbn+4en+C0IxyAXC3sYF7G33AHs0bHL+rglzPOzh+FPvT/F0dSS VIEYKHS1GCZdzm0lU2Tjt3+fv/2xSgmG55uWqfsqgW5ruuFvx13nxmdXHjiv+25RCZIN zA7/r1mQnQykvxx4Q3egAB41aFaqpaC7Cm9Ij7wIxukyy6Q2G/bwhrbl3FWbb2XFfL0R hS4g== X-Gm-Message-State: AIkVDXLDvXjz3fAa6i9jy1NWmX1+Ud6M4Ilq1dW/gEbwaBshvqURat4CcYSiwPzw/5/JbA== X-Received: by 10.99.126.68 with SMTP id o4mr20999569pgn.66.1484269516891; Thu, 12 Jan 2017 17:05:16 -0800 (PST) Received: from f1.synalogic.ca (mobile-166-171-251-076.mycingular.net. [166.171.251.76]) by smtp.gmail.com with ESMTPSA id t87sm19580617pfe.59.2017.01.12.17.05.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 12 Jan 2017 17:05:16 -0800 (PST) From: Benjamin Poirier To: Jeff Kirsher Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org Subject: [PATCH] i40e: Invoke softirqs after napi_reschedule Date: Thu, 12 Jan 2017 17:04:14 -0800 Message-Id: <20170113010414.22708-1-bpoirier@suse.com> X-Mailer: git-send-email 2.10.2 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org The following message is logged from time to time when using i40e: NOHZ: local_softirq_pending 08 i40e may schedule napi from a workqueue. Afterwards, softirqs are not run in a deterministic time frame. The problem is the same as what was described in commit ec13ee80145c ("virtio_net: invoke softirqs after __napi_schedule") and this patch applies the same fix to i40e. Signed-off-by: Benjamin Poirier --- drivers/net/ethernet/intel/i40e/i40e_main.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/intel/i40e/i40e_main.c b/drivers/net/ethernet/intel/i40e/i40e_main.c index ad4cf63..d65488c 100644 --- a/drivers/net/ethernet/intel/i40e/i40e_main.c +++ b/drivers/net/ethernet/intel/i40e/i40e_main.c @@ -4621,8 +4621,10 @@ static void i40e_detect_recover_hung_queue(int q_idx, struct i40e_vsi *vsi) */ if ((!tx_pending_hw) && i40e_get_tx_pending(tx_ring, true) && (!(val & I40E_PFINT_DYN_CTLN_INTENA_MASK))) { + local_bh_disable(); if (napi_reschedule(&tx_ring->q_vector->napi)) tx_ring->tx_stats.tx_lost_interrupt++; + local_bh_enable(); } }