All of lore.kernel.org
 help / color / mirror / Atom feed
From: Rachit Agarwal <rach4x0r@gmail.com>
To: Sagi Grimberg <sagi@grimberg.me>
Cc: Jens Axboe <axboe@kernel.dk>, Qizhe Cai <qc228@cornell.edu>,
	Rachit Agarwal <ragarwal@cornell.edu>,
	linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org,
	Ming Lei <ming.lei@redhat.com>,
	linux-block@vger.kernel.org,
	Midhul Vuppalapati <mvv25@cornell.edu>,
	Jaehyun Hwang <jaehyun.hwang@cornell.edu>,
	Keith Busch <kbusch@kernel.org>,
	Sagi Grimberg <sagi@lightbitslabs.com>,
	Christoph Hellwig <hch@lst.de>
Subject: Re: [PATCH] iosched: Add i10 I/O Scheduler
Date: Mon, 28 Dec 2020 09:28:06 -0500	[thread overview]
Message-ID: <CAKeUqKK3yykq8LNv1CCHZTHSz1=bzBaCwVQmi6bhpbYzqVJsqQ@mail.gmail.com> (raw)
In-Reply-To: <CAKeUqKKHg1wD19pnwJEd8whubnuGVic_ZhDjebaq3kKmY9TtsQ@mail.gmail.com>

Dear all:

Hope you are all well.

Sagi and I were wondering if you have any additional feedback on the
updated patch? (@Ming?) We have been receiving a lot of
interest/questions from industry on incorporation of i10 in the
kernel. If people do not have additional feedback, it would be nice to
move this forward.

Looking forward to hearing from you!
~Rachit

On Sat, Nov 28, 2020 at 12:49 AM Rachit Agarwal <rach4x0r@gmail.com> wrote:
>
>
>
> On Fri, Nov 13, 2020 at 4:56 PM Sagi Grimberg <sagi@grimberg.me> wrote:
>>
>>
>> >>>> But if you think this has a better home, I'm assuming that the guys
>> >>>> will be open to that.
>> >>>
>> >>> Also see the reply from Ming. It's a balancing act - don't want to add
>> >>> extra overhead to the core, but also don't want to carry an extra
>> >>> scheduler if the main change is really just variable dispatch batching.
>> >>> And since we already have a notion of that, seems worthwhile to explore
>> >>> that venue.
>> >>
>> >> I agree,
>> >>
>> >> The main difference is that this balancing is not driven from device
>> >> resource pressure, but rather from an assumption of device specific
>> >> optimization (and also with a specific optimization target), hence a
>> >> scheduler a user would need to opt-in seemed like a good compromise.
>> >>
>> >> But maybe Ming has some good ideas on a different way to add it..
>> >
>> > So here's another case - virtualized nvme. The commit overhead is
>> > suitably large there that performance suffers quite a bit, similarly to
>> > your remote storage case. If we had suitable logic in the core, then we
>> > could easily propagate this knowledge when setting up the queue. Then it
>> > could happen automatically, without needing a configuration to switch to
>> > a specific scheduler.
>>
>> Yes, these use-cases share characteristics. I'm not at all opposed to
>> placing this in the core. I do think that in order to put something like
>> this in the core, the bar needs to be higher such that an optimization
>> target cannot be biased towards a workload (i.e. needs to be adaptive).
>>
>> I'm still not sure how we would build this on top of what we already
>> have as it is really centered around device being busy (which is not
>> the case for nvme), but I didn't put enough thought into it yet.
>>
>
> 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.
>
> Best,
> ~Rachit
>

_______________________________________________
Linux-nvme mailing list
Linux-nvme@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

  parent reply	other threads:[~2020-12-28 14:28 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-12 14:07 [PATCH] iosched: Add i10 I/O Scheduler Rachit Agarwal
2020-11-12 14:07 ` Rachit Agarwal
2020-11-12 18:02 ` Jens Axboe
2020-11-12 18:02   ` Jens Axboe
2020-11-13 20:34   ` Sagi Grimberg
2020-11-13 20:34     ` Sagi Grimberg
2020-11-13 21:03     ` Jens Axboe
2020-11-13 21:03       ` Jens Axboe
2020-11-13 21:23       ` Sagi Grimberg
2020-11-13 21:23         ` Sagi Grimberg
2020-11-13 21:26         ` Jens Axboe
2020-11-13 21:26           ` Jens Axboe
2020-11-13 21:36           ` Sagi Grimberg
2020-11-13 21:36             ` Sagi Grimberg
2020-11-13 21:44             ` Jens Axboe
2020-11-13 21:44               ` Jens Axboe
2020-11-13 21:56               ` Sagi Grimberg
2020-11-13 21:56                 ` Sagi Grimberg
     [not found]                 ` <CAKeUqKKHg1wD19pnwJEd8whubnuGVic_ZhDjebaq3kKmY9TtsQ@mail.gmail.com>
2020-11-30 19:20                   ` Sagi Grimberg
2020-11-30 19:20                     ` Sagi Grimberg
2020-12-28 14:28                   ` Rachit Agarwal [this message]
2021-01-11 18:15                     ` Rachit Agarwal
2021-01-11 18:15                       ` Rachit Agarwal
2020-11-16  8:41             ` Ming Lei
2020-11-16  8:41               ` Ming Lei
2020-11-13 14:59 ` Ming Lei
2020-11-13 14:59   ` Ming Lei
2020-11-13 20:58   ` Sagi Grimberg
2020-11-13 20:58     ` Sagi Grimberg

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAKeUqKK3yykq8LNv1CCHZTHSz1=bzBaCwVQmi6bhpbYzqVJsqQ@mail.gmail.com' \
    --to=rach4x0r@gmail.com \
    --cc=axboe@kernel.dk \
    --cc=hch@lst.de \
    --cc=jaehyun.hwang@cornell.edu \
    --cc=kbusch@kernel.org \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-nvme@lists.infradead.org \
    --cc=ming.lei@redhat.com \
    --cc=mvv25@cornell.edu \
    --cc=qc228@cornell.edu \
    --cc=ragarwal@cornell.edu \
    --cc=sagi@grimberg.me \
    --cc=sagi@lightbitslabs.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.