From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Subject: Re: [PATCH 0/3] fuse: Solve request_find() bottleneck To: miklos@szeredi.hu, kuznet@virtuozzo.com, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org References: <153666041612.19117.14667042009014596105.stgit@localhost.localdomain> From: Kirill Tkhai Message-ID: <8222c235-ff07-b16b-3389-0b9780145abd@virtuozzo.com> Date: Mon, 24 Sep 2018 15:08:16 +0300 MIME-Version: 1.0 In-Reply-To: <153666041612.19117.14667042009014596105.stgit@localhost.localdomain> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org List-ID: 2 weeks passed, so ping. Miklos, any reaction on this? Thanks, Kirill On 11.09.2018 13:11, Kirill Tkhai wrote: > Hi, > > We noticed the performance bottle neck in FUSE running our > Virtuozzo storage over rdma. On some types of workload > we observe 20% of time spent in request_find() in profiler. > This function is iterating over long list of requests, and it > scales bad. > > The patch introduces hash table to reduce the number > of iterations, we do in this function. Also, algorithm > of generating IDs for interrupt requests is changed, > simplified request_find() function and killed > fuse_req::intr_unique field. > > Kirill > --- > > Kirill Tkhai (3): > fuse: Change interrupt requests allocation algorhythm > fuse: Kill fuse_req::intr_unique > fuse: Use hash table to link processing request > > > fs/fuse/dev.c | 47 +++++++++++++++++++++++++++++++++++++---------- > fs/fuse/fuse_i.h | 11 +++++------ > fs/fuse/inode.c | 5 ++++- > 3 files changed, 46 insertions(+), 17 deletions(-) > > -- > Signed-off-by: Kirill Tkhai >