From patchwork Mon Feb 6 18:14:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benjamin Poirier X-Patchwork-Id: 724636 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 3vHFxY2ZVcz9ryb for ; Tue, 7 Feb 2017 05:14:57 +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="ddwddh8D"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751492AbdBFSOt (ORCPT ); Mon, 6 Feb 2017 13:14:49 -0500 Received: from mail-pg0-f68.google.com ([74.125.83.68]:34460 "EHLO mail-pg0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751001AbdBFSOr (ORCPT ); Mon, 6 Feb 2017 13:14:47 -0500 Received: by mail-pg0-f68.google.com with SMTP id v184so9699846pgv.1; Mon, 06 Feb 2017 10:14:47 -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:in-reply-to:references; bh=cMS89eCLWTofmMXfSxER//+Xcp9myygIA0ZMMeG1q9o=; b=ddwddh8DRS4oMt06gPExYkBG11Kfe+Qs0QlFRCTd2jTupaWFzgxREjGD7eGtcqc9Rw EHt66U0npZhfWEjXkZDkAvcTl5Jpui8fcNpIfPXym/jrxi0RmCOGgny0sabrP6LQ2EqO Dbp6Y0ZooRaRpJXjlmvvItNF++CnaWASqx0REBSFZgERyC8K9jO0g7zoFMDTUfk6V9ad SBq/g5wR7ei9ewmwncbQsUxjkV9mMKdfFFtBprpkfFVd2RCkV73JiTJwT00AASHjgWal JvjlvxrXxjoyaXLMRkkMWbM6x0tGcx5QjToNE67A5PiXXPqSppitcqTBA+KjlBLIUG7K gd+Q== 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 :in-reply-to:references; bh=cMS89eCLWTofmMXfSxER//+Xcp9myygIA0ZMMeG1q9o=; b=GQsFZaVJOvAOGCZanDoL6qk9X8fxXFR261Yvsvgx1YSgJegUyuhQkez4OSkcxa0dBB Erenc6n+IdMlFMByBO9uPG60pEvp0Dh+6VKSTPwjY7w6S/Rg76Ie/2eOyF5BNcN5B97F NS4qMeE07kyYN51WCTPz9IhZdGaFIyJozHf7ZMxWjAjlSPbkayc4eIqbSkRgfUPHTx8f kLms8aa3Fxc261Uw1Am8eD+gxAmtjh4Agrvm33UxvjsY1tDCmlIbplWVCLa2cYmdYIuY OSpwf7YjN0990vCjTCxEMZve7oCTFMzQ4KRmRjO0g6Fm3VZ/qWUR2FUYCaRBNT0AfjjA XzYg== X-Gm-Message-State: AIkVDXJceFEzsosFhSeS3yRZIiAa7SOGTpRAr1BpaAfh1JpFaokY+UfKPonJ2ZoaMbT4IA== X-Received: by 10.99.138.201 with SMTP id y192mr14687397pgd.146.1486404887036; Mon, 06 Feb 2017 10:14:47 -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 75sm4316110pfp.80.2017.02.06.10.14.46 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 06 Feb 2017 10:14:46 -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 v2] mlx4: Invoke softirqs after napi_reschedule Date: Mon, 6 Feb 2017 10:14:31 -0800 Message-Id: <20170206181431.9664-1-bpoirier@suse.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <1486403641.7793.43.camel@edumazet-glaptop3.roam.corp.google.com> References: <1486403641.7793.43.camel@edumazet-glaptop3.roam.corp.google.com> 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. Fixes: 07841f9d94c1 ("net/mlx4_en: Schedule napi when RX buffers allocation fails") Cc: Eric Dumazet Signed-off-by: Benjamin Poirier Acked-by: Eric Dumazet Reviewed-by: Tariq Toukan --- drivers/net/ethernet/mellanox/mlx4/en_rx.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/net/ethernet/mellanox/mlx4/en_rx.c b/drivers/net/ethernet/mellanox/mlx4/en_rx.c index eac527e25ec9..cc003fdf0ed9 100644 --- a/drivers/net/ethernet/mellanox/mlx4/en_rx.c +++ b/drivers/net/ethernet/mellanox/mlx4/en_rx.c @@ -514,8 +514,11 @@ void mlx4_en_recover_from_oom(struct mlx4_en_priv *priv) return; for (ring = 0; ring < priv->rx_ring_num; ring++) { - if (mlx4_en_is_ring_empty(priv->rx_ring[ring])) + if (mlx4_en_is_ring_empty(priv->rx_ring[ring])) { + local_bh_disable(); napi_reschedule(&priv->rx_cq[ring]->napi); + local_bh_enable(); + } } }