Received: by 2002:ac0:a594:0:0:0:0:0 with SMTP id m20-v6csp1791338imm; Tue, 22 May 2018 09:21:28 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqhvTFTePMj7bMz/fTS4lA7C5fn2UUKs+IFdsA0+aYgj1FUEIhzuhxARk1WOW0HNQdsp0/x X-Received: by 2002:a17:902:24c7:: with SMTP id l7-v6mr25807650plg.327.1527006087945; Tue, 22 May 2018 09:21:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527006087; cv=none; d=google.com; s=arc-20160816; b=iI1ZZLj/ce5/MxVGZXykdyY98rmlKU+QNYcmw+sk6P+TJa7+pmaCN4X1YRJhz5J1bd vPF3SxWPwDMyyutZ29deV/TmgmTRCNmTv50EAzis+vst+t3gYK5j7rchaOots37zGD1e aRuD7AAxJhepA0gjqV64AoU5qB/QscdzVaEiEZWI3jXK/wzuKgaroZahy7LTUNJzTZp4 8DvHfYkJh6Mny9l2ZrD485UB1u8zVsZ/ysy6+mCv8V6YToXhyvjLHEju2Kc79YeXjULG HQbChW+3FLAo/98Ovz4A0nxXoPNKi7N3jOmlRccU45laJzcWuaz3FNOjGPxpaf/aro0f wuZA== 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:from:references:cc:to:subject:dkim-signature :arc-authentication-results; bh=9HdDsLLtgqyYPOATqRI1yRdtI/X7ggU7Mh4oMYI5PLE=; b=ZvM+dFlOiE6rXRDqONioz3NtdK2kmUiZJJdtTzESJc/krpUTnq4nn1OhEx1NJ/lB8X V4VHl0JvitgelrQmJ3ik4oy2MzpU3vuk4s5+zo4bIInJkoImyu9C6Ey15kO0t+bM8h/D OBte5Hzgl+Jsx/aL8UMB9KTjCs1sYWSYmOw8B7gilFaxpKy6R5G4KlbJOPEIfJbhfT+k PzXbE6wpEBvlFI+UffEsZNWJvGUNzuXy34rsKho1aX0TmC0f8h8hT7tpVcduUO1kGDJw elxte/t+lkGgU+AMa+YJvGbYtFqKz4i74OwDc6lWJXk9kprniCECNUyJU72WSDyPQrBq HwLw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=sqSnfoGC; 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 n8-v6si6398089plk.221.2018.05.22.09.21.11; Tue, 22 May 2018 09:21: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; dkim=pass header.i=@kernel-dk.20150623.gappssmtp.com header.s=20150623 header.b=sqSnfoGC; 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 S1751557AbeEVQUk (ORCPT + 99 others); Tue, 22 May 2018 12:20:40 -0400 Received: from mail-io0-f195.google.com ([209.85.223.195]:38243 "EHLO mail-io0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751020AbeEVQUi (ORCPT ); Tue, 22 May 2018 12:20:38 -0400 Received: by mail-io0-f195.google.com with SMTP id z4-v6so19181154iof.5 for ; Tue, 22 May 2018 09:20:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kernel-dk.20150623.gappssmtp.com; s=20150623; h=subject:to:cc:references:from:message-id:date:user-agent :mime-version:in-reply-to:content-language:content-transfer-encoding; bh=9HdDsLLtgqyYPOATqRI1yRdtI/X7ggU7Mh4oMYI5PLE=; b=sqSnfoGCV9D+4h7wauC5nMwNZo0iXOKqqneZMPbBJAW0Im5Q8ukywPnBIY60ss6fXc G0iZEF73xCbj3quSrv62pVnbFBqoYy/ZSeANLGLAC8cCUgkp/mTbWCvVVHz9PmTeqRv9 /WHLPqaaHoXVJYjPC/PoSyGWtYg+CZR1upvfeDz3MyQAozTfeOcDxB6Gg6AudfjpchME /Dyh2dXnPsQRSSaVq+sGHeFsuFCrGsOAyXQ5nbuNAi6L+qUo8KAQgajdC/MBFAH0AtEQ vBqxf9R3OZmSfB8SjbIAxvVkTzu43Rk8xhV+X+1gL9P24TFV8XEWzI2lBz4UAXWWTd7b OCig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=9HdDsLLtgqyYPOATqRI1yRdtI/X7ggU7Mh4oMYI5PLE=; b=h6ry4IudC2TU7a65lDCOrpBhZdtTm9fqIsR014ANzU2dfGiVCUMDRj1Y6car+/eWex cAliPE8zRkh4LrOhaiVlG0/egJHVC7FOAiUSvfTva8KAuIH8Iuck72aX0fMPdDvGWB5P mjavbQxpVOmpiX5aQzWg9SOJVOqJh/cWg40DxTAv05jwIW0cRVfCcgktZ8PNhVEAq29o Gi71NcNR0IWajsQo9gc+1HH4f81lkhp+FqAv3xwMjT5uTIKTizSevLKNYlpS9E3GTKs0 IMdF0gy82LimPS/ALoKJbG6jHcym+QEFtWdv/uocNSNXvAd1k5h2zpjeA6eIL/3yvPA4 qmhA== X-Gm-Message-State: ALKqPwenXfEUL2Tj8ProOleq/vJdjzjcGsNMPAjaNZMsw7fwoxVOqhdj kyrs9FfUcAJ+ceD/zrdJfWKv/7xFBHg= X-Received: by 2002:a6b:39d4:: with SMTP id g203-v6mr28163790ioa.165.1527006036620; Tue, 22 May 2018 09:20:36 -0700 (PDT) Received: from [192.168.1.167] ([216.160.245.98]) by smtp.gmail.com with ESMTPSA id d143-v6sm134673itd.35.2018.05.22.09.20.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 22 May 2018 09:20:35 -0700 (PDT) Subject: Re: [PATCH] block: kyber: make kyber more friendly with merging To: =?UTF-8?Q?Holger_Hoffst=c3=a4tte?= , Jianchao Wang Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org References: <1527000509-2619-1-git-send-email-jianchao.w.wang@oracle.com> <163c5760-cf0e-faea-ee4e-ac5d688310fe@applied-asynchrony.com> From: Jens Axboe Message-ID: <00e5dfd4-d3a2-b008-3d8b-390a788f61c9@kernel.dk> Date: Tue, 22 May 2018 10:20:34 -0600 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.0 MIME-Version: 1.0 In-Reply-To: <163c5760-cf0e-faea-ee4e-ac5d688310fe@applied-asynchrony.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 5/22/18 10:17 AM, Holger Hoffstätte wrote: > 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. :) It's basically duplicating the contents of blk_attempt_plug_merge(). I would suggest abstracting out the list loop and merge check into a helper, that could then both be called from kyber and the plug merge function. -- Jens Axboe