Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1802659imm; Tue, 22 May 2018 09:32:27 -0700 (PDT) X-Google-Smtp-Source: AB8JxZpv1y/+IJq7uLYEkp0hWinxhqb/1FeV/TC3uVj7rdsCy5N0JGWVxGdxXzhagWwmJU8SFhWO X-Received: by 2002:a65:5884:: with SMTP id d4-v6mr439688pgu.292.1527006747914; Tue, 22 May 2018 09:32:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527006747; cv=none; d=google.com; s=arc-20160816; b=U3F3sz1uz1rkMO7e/ecSE7PVxjKwuBTA4xWJ9aMGoDnMW4rWZnuF0M/7etOquToGMk +ZrGBBA0Sm5xUSuHQ8IsiV9hq9wOwFpvefEPMRRU8oAVDPvYCghZV/zOq5jNXTXYXEcw L7W1oYny401FzYl300eNWZJS58wEAFYuQgG1uC0w8CUP8tuiD9HFnFqAwBr65lf2+CM/ /jXR6G/ljh/Q5b4Qf90Pc+662lAMpXdDuByHOArqNoL0hG+NgQ8RpuT5sU9FiTJdykaz 2POR1gun0XRcHUnDfjwoDeIJEd4rfFidbV1b/rKfdqDNpi+2zP1tF+8Or8BCAThLJ3UB Mh7w== 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 :content-language:in-reply-to:mime-version:user-agent:date :message-id:organization:from:references:cc:to:subject :arc-authentication-results; bh=sqFSIOIZApQ03Uc5o50ZyvC7TBGtZGWgaDzWDftymF0=; b=V3moJ157VGIi25v7eyRSlmlfn7BKTKaw5rPjYfILzTBAEzLN47GdlkEtzKYUeJDfED iJo5NtC+T3z5eFWRYy8A9m9dcRRD2meUxATt0QV5ZFUxmIzUOz+ICeLIgXHN4gvK+fas LfTCtH7mYe9jfrBvHkdQritYvcmyhv6k+CZnKynxxOXapm5YJfW5ivg8uEp4SkO6oMHH g6DXW7XtNJIhiYiOxzN88UXhrASaUkGiwfWKwte+mfthsuMlFFdqyCFzsRZs2e5Y8MlZ I4SMQKfMhnLHPsMTuLfwd6Vs9vTH5JORsFmNPPZHpD6/F5UZ7r13bSagMMayoxbsPlLZ 4RGw== 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 Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id d6-v6si16766897pfk.166.2018.05.22.09.32.12; Tue, 22 May 2018 09:32:27 -0700 (PDT) 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 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752278AbeEVQbk (ORCPT + 99 others); Tue, 22 May 2018 12:31:40 -0400 Received: from mail02.iobjects.de ([188.40.134.68]:37954 "EHLO mail02.iobjects.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751268AbeEVQbf (ORCPT ); Tue, 22 May 2018 12:31:35 -0400 X-Greylist: delayed 830 seconds by postgrey-1.27 at vger.kernel.org; Tue, 22 May 2018 12:31:35 EDT Received: from tux.wizards.de (pD9EBFED6.dip0.t-ipconnect.de [217.235.254.214]) by mail02.iobjects.de (Postfix) with ESMTPSA id AD281416035F; Tue, 22 May 2018 18:17:44 +0200 (CEST) Received: from [192.168.100.223] (ragnarok.applied-asynchrony.com [192.168.100.223]) by tux.wizards.de (Postfix) with ESMTP id 62EF8F015CE; Tue, 22 May 2018 18:17:44 +0200 (CEST) Subject: Re: [PATCH] block: kyber: make kyber more friendly with merging To: Jianchao Wang , axboe@kernel.dk Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org References: <1527000509-2619-1-git-send-email-jianchao.w.wang@oracle.com> From: =?UTF-8?Q?Holger_Hoffst=c3=a4tte?= Organization: Applied Asynchrony, Inc. Message-ID: <163c5760-cf0e-faea-ee4e-ac5d688310fe@applied-asynchrony.com> Date: Tue, 22 May 2018 18:17:44 +0200 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.7.0 MIME-Version: 1.0 In-Reply-To: <1527000509-2619-1-git-send-email-jianchao.w.wang@oracle.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 05/22/18 16:48, Jianchao Wang wrote: > Currently, kyber is very unfriendly with merging. kyber depends > on ctx rq_list to do merging, however, most of time, it will not > leave any requests in ctx rq_list. This is because even if tokens > of one domain is used up, kyber will try to dispatch requests > from other domain and flush the rq_list there. > > To improve this, we setup kyber_ctx_queue (kcq) which is similar > with ctx, but it has rq_lists for different domain and build same > mapping between kcq and khd as the ctx & hctx. Then we could merge, > insert and dispatch for different domains separately. If one domain > token is used up, the requests could be left in the rq_list of > that domain and maybe merged with following io. > > Following is my test result on machine with 8 cores and NVMe card > INTEL SSDPEKKR128G7 > > fio size=256m ioengine=libaio iodepth=64 direct=1 numjobs=8 > seq/random > +------+---------------------------------------------------------------+ > |patch?| bw(MB/s) | iops | slat(usec) | clat(usec) | merge | > +----------------------------------------------------------------------+ > | w/o | 606/612 | 151k/153k | 6.89/7.03 | 3349.21/3305.40 | 0/0 | > +----------------------------------------------------------------------+ > | w/ | 1083/616 | 277k/154k | 4.93/6.95 | 1830.62/3279.95 | 223k/3k | > +----------------------------------------------------------------------+ > When set numjobs to 16, the bw and iops could reach 1662MB/s and 425k > on my platform. > > Signed-off-by: Jianchao Wang This looks great but prevents kyber from being built as module, which is AFAIK supposed to work (and works now): .. CC [M] block/kyber-iosched.o Building modules, stage 2. MODPOST 313 modules ERROR: "bio_attempt_back_merge" [block/kyber-iosched.ko] undefined! ERROR: "bio_attempt_front_merge" [block/kyber-iosched.ko] undefined! ERROR: "bio_attempt_discard_merge" [block/kyber-iosched.ko] undefined! ERROR: "blk_try_merge" [block/kyber-iosched.ko] undefined! ERROR: "blk_rq_merge_ok" [block/kyber-iosched.ko] undefined! .. It does build fine when compiled in, obviously. :) cheers, Holger