From: Alexey Dobriyan <adobriyan@gmail.com>
To: Damien Le Moal <Damien.LeMoal@wdc.com>
Cc: "axboe@kernel.dk" <axboe@kernel.dk>,
"fio@vger.kernel.org" <fio@vger.kernel.org>,
Keith Busch <Keith.Busch@wdc.com>
Subject: Re: [PATCH] fio: add NVMe engine
Date: Fri, 27 Mar 2020 09:14:39 +0300 [thread overview]
Message-ID: <20200327061439.GA2745@avx2> (raw)
In-Reply-To: <CO2PR04MB2343805A950787DBA0BA18E9E7CC0@CO2PR04MB2343.namprd04.prod.outlook.com>
On Fri, Mar 27, 2020 at 12:56:00AM +0000, Damien Le Moal wrote:
> Alexey,
>
> Adding Keith to this thread.
>
> 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.
>
> libnvme will have this support too. But you will also need the ioengine to be
> able to plug into the zonemode=zbd to avoid a lot of nightmares on how to avoid
> unailigned write errors with various workloads.
I'm not sure what do you mean.
IO generation is already aware about zonemode=zbd, so it is a matter of
making DDIR_APPEND first class citizen and making sure all engines which
support it fixup ->offset after completion so that verification knows
where did the data go.
> I have a series almost ready to
> go out (in testing right now) to do just that for a new libzbc IO engine. This
> IO engine is for passthrough to SMR drives, for the exact same use case, namely,
> testing drives on kernels that do not have zoned block device support (e.g. a
> lot of customers in the field use old-ish enterprise distros with 3.x kernels
> where zoned block devices are not supported).
> > Currently Linux doesn't recognize NVMe ZNS devices as zoned block
> > devices so zone ioctls (BLKRESETZONE et al) can't be used.
>
> Patches for that are ready to go out as soon as the ZNS TP is approved :)
OK. I stumbled across this mess in blktrace while researching Append :^)
BLK_TC_END = 1 << 15, /* only 16-bits, reminder */
> > Passthrough ioctls should allow Zone Append and whatever commands
> > new specs bring.
>
> Yes, but we will need a new rw= control for that one though as implementing
> verify for it will not be trivial (data location on the device and write issuing
> offset relation is lost with zone append).
>
> >
> > Support read, write, fsync, fdatasync.
> > Don't support sync_file_range obviously.
> > Don't support trim for now, until I figure all qemu options and
> > the story behind broken qemu trim support.
>
> Using Keith's libnvme can probably simplify support for all of this.
next prev parent reply other threads:[~2020-03-27 6:14 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 [this message]
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
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=20200327061439.GA2745@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 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.