From: Alexey Dobriyan <adobriyan@gmail.com>
To: Jens Axboe <axboe@kernel.dk>
Cc: Keith Busch <Keith.Busch@wdc.com>,
Damien Le Moal <Damien.LeMoal@wdc.com>,
"fio@vger.kernel.org" <fio@vger.kernel.org>
Subject: Re: [PATCH] fio: add NVMe engine
Date: Fri, 27 Mar 2020 22:01:32 +0300 [thread overview]
Message-ID: <20200327190132.GA6316@avx2> (raw)
In-Reply-To: <51339d62-debc-5024-11fd-773574f3be6c@kernel.dk>
On Fri, Mar 27, 2020 at 08:47:08AM -0600, Jens Axboe wrote:
> On 3/27/20 8:25 AM, Keith Busch wrote:
> > On 3/27/20 12:14 AM, Alexey Dobriyan wrote:
> >> On Fri, Mar 27, 2020 at 12:56:00AM +0000, Damien Le Moal wrote:
> >>>
> >>> On 2020/03/27 5:44, Alexey Dobriyan wrote:
> >>>> Add simple iodepth=1 NVMe engine:
> >>>>
> >>>> ioengine=nvme
> >>>>
> >>>> It works via standard Linux NVMe ioctls.
> >>> Keith is working on splitting up nvmecli into the cli part and libnvme which
> >>> uses the kernel ioctl iinterface for NVMe command passthrough. So I think it may
> >>> be better to implement ioengine=libnvme using Keith libnvme library. That will
> >>> remove the need to define all the NVMe command stuff here.
> >> Sure. It is just standalone file you can send to colleagues and forget.
> >> Similar to how header-only C++ libraries work.
> >>
> >>>> It will be used for testing upcoming ZNS stuff.
> >
> >
> >
> > I'm not completely against fio providing an nvme ioengine, and libnvme
> > could easily fit in, but I don't think that faithfully represents how
> > these devices are actually used. The passthrough interface is not really
> > our fast path, and being a synchronous interface is a bit limiting in
> > testing device capabilities.
>
> I guess my main question is what purpose it fills. Since it's not
> a performant interface, it's not a benchmarking thing.
> Hence it's for testing the feature? If so, would it be better to have in
> nvme-cli or a standalone tool?
This engine can easily create QD=NR_CPUS, it is not much but it is something.
Another thing, I've wasted a week (and counting!) struggling with userspace
nvme drivers, they are such a pain. Anything from broken hardware,
to code like this:
spin_lock() // sic, before copy_from_user
copy_from_user(...) // sic, no checking
It is much easier to implement new commands via passthrough ioctls and
have load/stress testing generator.
next prev parent reply other threads:[~2020-03-27 19:01 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-03-26 20:44 [PATCH] fio: add NVMe engine Alexey Dobriyan
2020-03-26 22:05 ` Jens Axboe
2020-03-27 6:19 ` Alexey Dobriyan
2020-03-27 14:45 ` Jens Axboe
2020-03-27 0:56 ` Damien Le Moal
2020-03-27 6:14 ` Alexey Dobriyan
2020-03-27 14:25 ` Keith Busch
2020-03-27 14:26 ` Keith Busch
2020-03-27 19:06 ` Alexey Dobriyan
2020-03-27 21:05 ` Keith Busch
2020-03-27 14:47 ` Jens Axboe
2020-03-27 19:01 ` Alexey Dobriyan [this message]
2020-03-27 21:25 ` Jens Axboe
2020-03-27 21:58 ` Keith Busch
2020-03-28 13:41 ` Jens Axboe
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=20200327190132.GA6316@avx2 \
--to=adobriyan@gmail.com \
--cc=Damien.LeMoal@wdc.com \
--cc=Keith.Busch@wdc.com \
--cc=axboe@kernel.dk \
--cc=fio@vger.kernel.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox