Received: by 2002:a05:6a10:f347:0:0:0:0 with SMTP id d7csp3845124pxu; Mon, 30 Nov 2020 11:26:14 -0800 (PST) X-Google-Smtp-Source: ABdhPJx/CuknuKGd7n2VXp8+FLBjnkseaZohAAgIOJq/ApM0yhTR47+jZNpJ8e5s//ZgI9UUDz5Q X-Received: by 2002:a17:906:fa8b:: with SMTP id lt11mr17664614ejb.94.1606764373822; Mon, 30 Nov 2020 11:26:13 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1606764373; cv=none; d=google.com; s=arc-20160816; b=MR9rKXpQphGbR9sKJNYE62VPnVmebcD7bR/GTHAa4yhShqNEDMI2elEbKaTx2vUoVv FHRCsEUoqUD+CSdQwYeCBTpLPMs2k8VjNCBHui7JYYOLgewAys4+Z1JtBqXkg16tLRgm hI3SGK/oXo4ISg2cRJL+wNEbm6aeptEuP73W3iBykcDuE4D3D9r5vEee2bnxJgL2LGNb sTu4cr8Kko0U4Ssbz/2abZtAVjakeBEOQwjcdKgwH4kdMOJPMaMy+c81fUJZ4UuDuvee Y3bUK8uyQrowt8LKCLQVv/+NobOHNYXhGrmGsvudg4UskFVESdNyuD3ai5/6LAqEqFGi l1Ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:content-language :in-reply-to:mime-version:user-agent:date:message-id:from:references :cc:to:subject; bh=mukpp6Mq76LOTsdZgqPYBiMElAO+nckYaXg+oNK1qDc=; b=ZXywAMUEflO0DQrmWJqtyVs4YW6Z7lPMpuhwGVOApTDBY9Apmcn8cMpw+LziBqMHcf C55DMuZfQnparPvZYtzrkSZ3Z11yCH1ycNsSJneUWl5PgTUuIu4db9VulNPf+R22zz8O WlVJZFL+caCgIAqlUAYgDz6q1DIR3bSAjTbEHGizSyjHtKDw1j0A9q/LTPkOf81UHS6R wrdTpccplEpbnPH3qVRBNAwcumFgV/cCKPQpjMCqVzWyCiGjJrpw3cCjmfuShHeujKOj ZMt/t4767OupF2+Z5xEnvguMcLNCxd9reloGywzYhYJiePIXlfiScwDxu4qj4VKlV/G7 tAFg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id z9si1707475edi.465.2020.11.30.11.25.50; Mon, 30 Nov 2020 11:26:13 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729936AbgK3TVY (ORCPT + 99 others); Mon, 30 Nov 2020 14:21:24 -0500 Received: from mail-wm1-f51.google.com ([209.85.128.51]:55524 "EHLO mail-wm1-f51.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729921AbgK3TVR (ORCPT ); Mon, 30 Nov 2020 14:21:17 -0500 Received: by mail-wm1-f51.google.com with SMTP id x22so434902wmc.5; Mon, 30 Nov 2020 11:21:01 -0800 (PST) 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=mukpp6Mq76LOTsdZgqPYBiMElAO+nckYaXg+oNK1qDc=; b=mhMMgZncKEvQlAFlJ1hVgwAXyI157SP7wpO3qat/UzJFhwjJGkpoVii/I6Z6bgTFaa qJs+wA7l3G2bcfHmTINDdXcVhVRFRermnyjuFsHm7VX5FfH4GPQjEK4idNhMTo8E0F6r mWHxs1A/QWywMNpZ+nbQCkrpwb9fHOlYaVO5doT2h9nHfJ6NOV//A8z1ZbpslUergcXq XHqjNMYHc+vOB0eJWN14FDfsqLTM6jfCaNmLrbDVeUiC5UGdwnxuR/JbrtCD7eXQQjfc TfYiw3x4wZthUVuPhjjwnTBr8cfutyfItsS899G8/sn5rny9uFK+bVUovNq68cFAdHXV ED1w== X-Gm-Message-State: AOAM531o9lnasmOpcEAzzfENOzqLK45SxrbSQ0XrJ9tYR40sGlDMneQ7 cxzZr9UMgSX5CDWrYwXH96E= X-Received: by 2002:a1c:208f:: with SMTP id g137mr330289wmg.67.1606764035732; Mon, 30 Nov 2020 11:20:35 -0800 (PST) Received: from ?IPv6:2601:647:4802:9070:9a41:a6e2:c4ef:e7b8? ([2601:647:4802:9070:9a41:a6e2:c4ef:e7b8]) by smtp.gmail.com with ESMTPSA id z11sm346453wmc.39.2020.11.30.11.20.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 30 Nov 2020 11:20:35 -0800 (PST) Subject: Re: [PATCH] iosched: Add i10 I/O Scheduler To: Rachit Agarwal Cc: Jens Axboe , Christoph Hellwig , linux-block@vger.kernel.org, linux-nvme@lists.infradead.org, linux-kernel@vger.kernel.org, Keith Busch , Ming Lei , Jaehyun Hwang , Qizhe Cai , Midhul Vuppalapati , Sagi Grimberg , Rachit Agarwal References: <20201112140752.1554-1-rach4x0r@gmail.com> <5a954c4e-aa84-834d-7d04-0ce3545d45c9@kernel.dk> <10993ce4-7048-a369-ea44-adf445acfca7@grimberg.me> <26a1cd20-6b25-eaa6-7ab6-ba7f5afaf6dd@kernel.dk> <81cdcb58-9a23-8192-6213-7f2408a3b8ee@grimberg.me> From: Sagi Grimberg Message-ID: <0cce60db-5a41-2e1b-ba5d-7905966bec25@grimberg.me> Date: Mon, 30 Nov 2020 11:20:30 -0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.10.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > Dear all: > > Thanks, again, for the very constructive decisions. > > I am writing back with quite a few updates: > > 1. We have now included a detailed comparison of i10 scheduler with > Kyber with NVMe-over-TCP > (https://github.com/i10-kernel/upstream-linux/blob/master/i10-evaluation.pdf). > In a nutshell, when operating with NVMe-over-TCP, i10 demonstrates the > core tradeoff: higher latency, but also higher throughput. This seems to > be the core tradeoff exposed by i10. > > 2. We have now implemented an adaptive version of i10 I/O scheduler, > that uses the number of outstanding requests at the time of batch > dispatch (and whether the dispatch was triggered by timeout or not) to > adaptively set the batching size. The new results > (https://github.com/i10-kernel/upstream-linux/blob/master/i10-evaluation.pdf) > show that i10-adaptive further improves performance for low loads, while > keeping the performance for high loads. IMO, there is much to do on > designing improved adaptation algorithms. > > 3. We have now updated the i10-evaluation document to include results > for local storage access. The core take-away here is that i10-adaptive > can achieve similar throughput and latency at low loads and at high > loads when compared to noop, but still requires more work for lower > loads. However, given that the tradeoff exposed by i10 scheduler is > particularly useful for remote storage devices (and as Jens suggested, > perhaps for virtualized local storage access), I do agree with Sagi -- I > think we should consider including it in the core, since this may be > useful for a broad range of new use cases. > > We have also created a second version of the patch that includes these > updates: > https://github.com/i10-kernel/upstream-linux/blob/master/0002-iosched-Add-i10-I-O-Scheduler.patch > > As always, thank you for the constructive discussion and I look forward > to working with you on this. Thanks Rachit, Would be good if you can send a formal patch for the adaptive queuing so people can have a look. One thing that was left on the table is weather this should be a full blown scheduler or a core block infrastructure that would either be set on-demand or by default. I think that Jens and Ming expressed that this should be something that we should place this in the block core, but I'd like to hear maybe Ming can elaborate on his ideas how to do this.