Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp258057imu; Thu, 8 Nov 2018 01:09:03 -0800 (PST) X-Google-Smtp-Source: AJdET5dNnkSsGYCGorK698IoO99CaDZrryRVS14duMFN8fboh8uIMFyUdKAqomDUFeK0F6FQ9VvM X-Received: by 2002:a62:3687:: with SMTP id d129-v6mr3816209pfa.56.1541668143398; Thu, 08 Nov 2018 01:09:03 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1541668143; cv=none; d=google.com; s=arc-20160816; b=ZkYhj+smzeguPMZ5B17FiTClEWDofoMWkVDuCGWClrjCa/x0eZUALX44SMkA8UrAar wQD5a3s41/Sg01w5ZwrXdLOWBnI+dDDf4A/tyFliHcIOKENKjS69iC8CDJumiZsglfGp 3KN2Iq3IyBWPMk9Mipr0h3Adt3hLDYwwLfZwhXiBPUqEvRG3pla8lQtrxAdJceLSVfL1 eORpSZrz7wrCRdSuH+SLle/+RzBfJ4ud8elFRj/Z6fR4L14AD/2dypxx98+gdffTiSjr LfDVwW+AMpDe/nyBH4+QHQYHwf2W9Fw9N3vmuirR4ev7nguZ80YHRcLqzbnn+8YNkGpR GmQg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:message-id:date :to:from:subject:content-transfer-encoding; bh=e0RdcMDYq+/0oEeNM4c23gSRO8JOS3qJbj3M09A9c4E=; b=XwnRQKZmYfVxS/Ar9Bm2U9KU03xMhUETjKpBjbeOx5tqq5Q5FhLss7aJlHEzFU8ilM y5SMwHcu1AKayNB7txrqQQ3BknNMmVlv6kbqtF0JWWqUcXv0Ett2yPPS3jjHl+H0Dfqt C6voDRmE7lLNSewAPaxQG5H7qTcWKZa80nwEZ+aATaDuQ7SOtq6WUIX2UW31+uMhDoYY fDik/dGqbUV8tAiNytpAyd3fFANjgtAS5dPZL810baPYI3+vpFqMnp2jPk7R8qMoMI++ YDNyCIOKsVRwmYOukUt3JyM9FDXUzZd0m4JrE7LaaLJV4AHCq0bh/auvX3QZCn5p8OUj Kycw== 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 q71-v6si3986909pfq.166.2018.11.08.01.08.46; Thu, 08 Nov 2018 01:09:03 -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 S1726756AbeKHSju (ORCPT + 99 others); Thu, 8 Nov 2018 13:39:50 -0500 Received: from relay.sw.ru ([185.231.240.75]:36762 "EHLO relay.sw.ru" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726630AbeKHSjs (ORCPT ); Thu, 8 Nov 2018 13:39:48 -0500 Received: from [172.16.25.169] (helo=localhost.localdomain) by relay.sw.ru with esmtp (Exim 4.90_1) (envelope-from ) id 1gKgFW-00062G-UO; Thu, 08 Nov 2018 12:05:15 +0300 Content-Transfer-Encoding: 7bit Subject: [PATCH v2 0/5] fuse: Interrupt-related optimizations and improvements 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:14 +0300 Message-ID: <154166765576.10655.15178401490817622677.stgit@localhost.localdomain> User-Agent: StGit/0.18 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org v2: Changes in [1-2,5] patches. The biggest change is in [5], where repeater FR_INTERRUPTED assignment is removed. This patchset consists of several parts. Patches [1-2] optimize likely case of request_end(), and make this function to take fiq->waitq.lock only, when it is really needed. This improves performance of this function completes. Patch 3 makes request_end() to call wake_up() only for not background requests (background requests never wait answer), and this optimizes this function a bit more Patches [4-5] makes code to check userspace requests correct interrupt id to requeue (whether we've sent this interrupt). --- Kirill Tkhai (5): fuse: Kill fasync only if interrupt is queued in queue_interrupt() fuse: Optimize request_end() by not taking fiq->waitq.lock fuse: Wake up req->waitq of only not background requests in request_end() fuse: Do some refactoring in fuse_dev_do_write() fuse: Verify userspace asks to requeue interrupt that we really sent fs/fuse/dev.c | 57 ++++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 38 insertions(+), 19 deletions(-) -- Signed-off-by: Kirill Tkhai