From patchwork Sat Feb 18 02:46:09 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Eric Dumazet X-Patchwork-Id: 729413 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 3vQDn92vMkz9s8W for ; Sat, 18 Feb 2017 13:46:52 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="qkdH+frg"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752780AbdBRCqo (ORCPT ); Fri, 17 Feb 2017 21:46:44 -0500 Received: from mail-pg0-f66.google.com ([74.125.83.66]:36316 "EHLO mail-pg0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752446AbdBRCqm (ORCPT ); Fri, 17 Feb 2017 21:46:42 -0500 Received: by mail-pg0-f66.google.com with SMTP id a123so3530149pgc.3 for ; Fri, 17 Feb 2017 18:46:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=message-id:subject:from:to:cc:date:in-reply-to:references :mime-version:content-transfer-encoding; bh=lYGa1X84hUAMyYDzOvuPUynkKyXqqf07v9MRO7v2niA=; b=qkdH+frgdgaibdG1dur2Kk5zoI6nMqx2uDfwMbS3vC9Na4V7G3S05R5WYC5P981pWj DD9gnVPtIn6TPPBCsklB83yHKOZdGYzCQNolE6oty5k64fmaR/1zUdoRgkkRaHA55Vy3 vjas9grYS0RxcBrTuUre+eOJp/kUpZsCMSOyKaQJUlSwoTVwwwWdtTBF4LEtl8TB0jmi ohGhsksXtBcyqKeFzp8mWeJB7WDvODB81etu1uVApNl9KDX9qdz/yNegkKVuM3Di25xc H80XfJ6gdf1OtS0H8PqcYDu8kX6mbZ2WfpzAX2fVnfblBXuBSKbmVit1f5uFpsidGQIE 4jng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:mime-version:content-transfer-encoding; bh=lYGa1X84hUAMyYDzOvuPUynkKyXqqf07v9MRO7v2niA=; b=deJRhLuykDrAWpA1+K2mdFlpvGtUIbKCTzPm58MOcWlIfsJmWx+MwLA74M9uCyyb5r h85LZqHk2Uarisp+CleQIkcwpLW5qIEyIto+g4Wj6ZJRnQSgnkLH5sasB72Ex/fE4JBw W3NAO3CHlca7UzKkusiUBbc6o4S6r0iWy48CPIneC0NBha0LhN7TndWHteClojs1LvNf GemQ63g6QTqdt0K1OS6bal2/3DXxZ07VO9kPuPDTpAgbV/SfNeFXGiXGqDcL5dLHGXCE OR4HmD0LsqcuaBq8u8mzGcivuI+jVwIigOxoj1EkxzWOXBHvqLbfI7ifpxvJuIKhxLx/ b9ug== X-Gm-Message-State: AMke39lQPgYXx5PH4trUWCHeMSAsE+Qc8yFTJHU6gxEHGx4Es/DQ6F5MI0P+Np4VNKombQ== X-Received: by 10.84.238.139 with SMTP id v11mr15522279plk.143.1487385970618; Fri, 17 Feb 2017 18:46:10 -0800 (PST) Received: from [172.19.240.206] ([172.19.240.206]) by smtp.googlemail.com with ESMTPSA id s3sm21957332pgn.55.2017.02.17.18.46.09 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 17 Feb 2017 18:46:10 -0800 (PST) Message-ID: <1487385969.1311.91.camel@edumazet-glaptop3.roam.corp.google.com> Subject: Re: [PATCH net-next] mlx4: do not fire tasklet unless necessary From: Eric Dumazet To: Saeed Mahameed Cc: David Miller , netdev , Tariq Toukan , Saeed Mahameed Date: Fri, 17 Feb 2017 18:46:09 -0800 In-Reply-To: <1487259028.1311.40.camel@edumazet-glaptop3.roam.corp.google.com> References: <1486729678.7793.139.camel@edumazet-glaptop3.roam.corp.google.com> <1487259028.1311.40.camel@edumazet-glaptop3.roam.corp.google.com> X-Mailer: Evolution 3.10.4-0ubuntu2 Mime-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On Thu, 2017-02-16 at 07:30 -0800, Eric Dumazet wrote: > On Thu, 2017-02-16 at 14:38 +0200, Saeed Mahameed wrote: > > > Acked-by: Saeed Mahameed > > Thanks for reviewing this Saeed ! Note that mlx4_add_cq_to_tasklet() is called from hard irq context, so we could replace the spin_lock_irqsave() by spin_lock() Not that I care, but you might be interested ;) Thanks. diff --git a/drivers/net/ethernet/mellanox/mlx4/cq.c b/drivers/net/ethernet/mellanox/mlx4/cq.c index fa6d2354a0e910ee160863e3cbe21a512d77bf03..9dcac3a367425f2804e933842698c66685baf626 100644 --- a/drivers/net/ethernet/mellanox/mlx4/cq.c +++ b/drivers/net/ethernet/mellanox/mlx4/cq.c @@ -79,13 +79,13 @@ void mlx4_cq_tasklet_cb(unsigned long data) tasklet_schedule(&ctx->task); } +/* Called from hard irq handler */ static void mlx4_add_cq_to_tasklet(struct mlx4_cq *cq) { struct mlx4_eq_tasklet *tasklet_ctx = cq->tasklet_ctx.priv; - unsigned long flags; bool kick; - spin_lock_irqsave(&tasklet_ctx->lock, flags); + spin_lock(&tasklet_ctx->lock); /* When migrating CQs between EQs will be implemented, please note * that you need to sync this point. It is possible that * while migrating a CQ, completions on the old EQs could @@ -98,7 +98,7 @@ static void mlx4_add_cq_to_tasklet(struct mlx4_cq *cq) if (kick) tasklet_schedule(&tasklet_ctx->task); } - spin_unlock_irqrestore(&tasklet_ctx->lock, flags); + spin_unlock(&tasklet_ctx->lock); } void mlx4_cq_completion(struct mlx4_dev *dev, u32 cqn)