From patchwork Mon Feb 6 17:10:46 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Poirier X-Patchwork-Id: 724604 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 3vHDX912NWz9rvt for ; Tue, 7 Feb 2017 04:11:21 +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="BoKnMUJN"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751762AbdBFRLT (ORCPT ); Mon, 6 Feb 2017 12:11:19 -0500 Received: from mail-pf0-f195.google.com ([209.85.192.195]:33822 "EHLO mail-pf0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751395AbdBFRLR (ORCPT ); Mon, 6 Feb 2017 12:11:17 -0500 Received: by mail-pf0-f195.google.com with SMTP id y143so7282849pfb.1; Mon, 06 Feb 2017 09:11: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=+fphkuhYm0GPc6sXJucq958e3p/allvBAWh1EvVeE8o=; b=BoKnMUJNJmBXobTONPXbWm8UvDH/6Gt1rFYLmw5QShpp6g4petCDtYecVf/xAeJk+p HjZRH/IO1Z1dkXDd+Eax8oKpfj4jJArXQv9Nh/OXXHOZCFSchGzdDDxMjJVrCJylQxMa cGf6/xP8BRWjNPMmJx7Hx4pb1AmoygLBPo1Mw0ZVDno+DNfgCayY/eI1IFEob1ySold9 mCEsKouMap+Cbyd0NhJz8wGdyPRYRdIBGc5wfvAXVgpIrvdRqTXQJGdVIQTEF6a1PxBC 9PCPsP29EBTlndFvfos1xMSIkQpN28UOJaApkooq2uMhQjyFAEAhgV22IPbAwWJ9HaMG ZbCA== 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=+fphkuhYm0GPc6sXJucq958e3p/allvBAWh1EvVeE8o=; b=Auf25EF7Cp3PK9g2bLH++fgS71isKihbtrzb8uwTAVTtFPtlCu1hLGfr8w2dQx/uTc K/8kYdyaE3iKdo7GxL7LE5VafH54gEURhIcPkYcYGPP5uivnDTMxVDoMB1cg5rR90FBO oWZ6YGG3iuu0XPlxAJBvgBq8sdYOFoOMgc6XJI38qP0NB3aiufoq1s+yaif0+69ANGot nB+TaNX5Ox0U8Jjez3Nmcb8o5K5QmSC1AAuj98J+dW43fgH5PRRWdiv+R8gJ128HNc0r d1AZJwIAHGh9Q1CLqytQvtm+/THvVQ79lVv3wXJYANAUDhoPB7Z4GKOgDSsoLegvj8T3 8SYw== X-Gm-Message-State: AIkVDXLjSl2xYVdDbJr1HRqyqSg2nC5HiWtYuQkH8p/MFtndAxUEv58QT2utbk1pALjwAg== X-Received: by 10.84.232.78 with SMTP id f14mr18999211pln.27.1486401076732; Mon, 06 Feb 2017 09:11:16 -0800 (PST) Received: from f1.synalogic.ca (c-50-173-235-212.hsd1.ca.comcast.net. [50.173.235.212]) by smtp.gmail.com with ESMTPSA id t15sm4170630pgn.18.2017.02.06.09.11.15 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 06 Feb 2017 09:11:16 -0800 (PST) From: Benjamin Poirier To: netdev@vger.kernel.org Cc: Tariq Toukan , Yishai Hadas , linux-rdma@vger.kernel.org, Eric Dumazet Subject: [PATCH net] mlx4: Invoke softirqs after napi_reschedule Date: Mon, 6 Feb 2017 09:10:46 -0800 Message-Id: <20170206171046.3765-1-bpoirier@suse.com> X-Mailer: git-send-email 2.11.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org mlx4 may schedule napi from a workqueue. Afterwards, softirqs are not run in a deterministic time frame and the following message may be logged: NOHZ: local_softirq_pending 08 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 mlx4. Cc: Eric Dumazet Signed-off-by: Benjamin Poirier --- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index eac527e25ec9..14ce1549b638 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -513,10 +513,12 @@ void mlx4_en_recover_from_oom(struct mlx4_en_priv *priv) if (!priv->port_up) return; + local_bh_disable(); for (ring = 0; ring < priv->rx_ring_num; ring++) { if (mlx4_en_is_ring_empty(priv->rx_ring[ring])) napi_reschedule(&priv->rx_cq[ring]->napi); } + local_bh_enable(); } /* When the rx ring is running in page-per-packet mode, a released frame can go