Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp256799imu; Thu, 8 Nov 2018 01:07:33 -0800 (PST) X-Google-Smtp-Source: AJdET5dYPetgXsIqrEAo7g4uqtjmW3//wFYSYVWuA0lluXNIZLyggWVz3VE4jb3m0J7qpwdKXHfM X-Received: by 2002:a17:902:3064:: with SMTP id u91-v6mr3735221plb.164.1541668053355; Thu, 08 Nov 2018 01:07:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541668053; cv=none; d=google.com; s=arc-20160816; b=upk9l94aLG5/9RMrMbAyvw8/7EpYRvYj6HhkVPvDHXw7KMzniydwLCIw4Sj/b87i4L aDBVtmUoePJTGwqiZbnckCLqjBKzmn7+BWY0ZgKvAaKq+z6tGqpthKpI8YG/hp7I+Lvn gg5BrMXne1SxgGeP/0XpUcj8ch7ZfW3x0bt+uoLXEMZrlajgfSKuTlnMfnOpo0K0xh+o ITSARaRs3L/pq0//DuSQrV3ROduTEaGZda4begS5ULawMRaENLmNNQZ/NhgX8zie/thq t9DBq47eMDhnHNdq7kp8iJxUU/6jcz9UrUKcxaSaG8NRrusw2R3zF1TrDrILpRouwtqg M/ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:to:from:subject; bh=g2/wg6jHmH1VlgJ/Rxr5xI+KzTTDn8VK6sjjbqiwNjU=; b=fCxJu266W/2PVMCt9S92ZwLS9oBDWzk4ruFD6WqWOQ1isl9y+zknq8oXOb500ppG9d XrND+qjkLGVOO8ELtkQJ3ipnReAHnrBdsOuXJ1sCAGbzPZmptjRhBAgBe+C+i04r+Knq TwBt3w6nKQAM6LbNXIM9mbmyDRksK2xazqyuKDZQf/ocNOqGQKD3gBBDsIEsLq2GU1RQ qEBQgjEAsNs+l8E+ky/UgRbF5yXTYI2F4M41WUFlIx/u3hrQ0nPX4VTxPx3Aa7GpBA4J Yl2N5IL3uC80eQqXc6gc2kALog2cFAVIwLB/4ldrgzQgS5q2cj+VEizLyViRJlliAUQ3 Mu2w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a185si3158576pge.404.2018.11.08.01.07.18; Thu, 08 Nov 2018 01:07:33 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=virtuozzo.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727082AbeKHSkE (ORCPT + 99 others); Thu, 8 Nov 2018 13:40:04 -0500 Received: from relay.sw.ru ([185.231.240.75]:36782 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726642AbeKHSkD (ORCPT ); Thu, 8 Nov 2018 13:40:03 -0500 Received: from [172.16.25.169] (helo=localhost.localdomain) by relay.sw.ru with esmtp (Exim 4.90_1) (envelope-from ) id 1gKgFn-00062a-Ht; Thu, 08 Nov 2018 12:05:31 +0300 Subject: [PATCH v2 3/5] fuse: Wake up req->waitq of only not background requests in request_end() From: Kirill Tkhai To: miklos@szeredi.hu, ktkhai@virtuozzo.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Thu, 08 Nov 2018 12:05:31 +0300 Message-ID: <154166793129.10655.10914379833120458156.stgit@localhost.localdomain> In-Reply-To: <154166765576.10655.15178401490817622677.stgit@localhost.localdomain> References: <154166765576.10655.15178401490817622677.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Currently, we wait on req->waitq in request_wait_answer() function only, and it's never used for background requests. Since wake_up() is not a light-weight macros, instead of this, it unfolds in really called function, which makes locking operations taking some cpu cycles, let's avoid its call for the case we definitely know it's completely useless. Signed-off-by: Kirill Tkhai --- fs/fuse/dev.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c index 7374a23b1bc8..cc9e5a9bb147 100644 --- a/fs/fuse/dev.c +++ b/fs/fuse/dev.c @@ -464,8 +464,11 @@ static void request_end(struct fuse_conn *fc, struct fuse_req *req) fc->active_background--; flush_bg_queue(fc); spin_unlock(&fc->bg_lock); + } else { + /* Wake up waiter sleeping in request_wait_answer() */ + wake_up(&req->waitq); } - wake_up(&req->waitq); + if (req->end) req->end(fc, req); put_request: