On 3/27/20 1:01 PM, Alexey Dobriyan wrote: > 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. Sure, just like any other sync engine can also be somewhat parallel if you just run multiple threads/processes on it. I just don't want people to get the idea that it's something that's useful for benchmarking. And if it isn't, then what is the point? As I said, I'm not vehemently opposed to the idea of adding the engine, because it is just a simple wrapper around the submit ioctl. But it'd be nice to have some clear purpose behind it, justifying the inclusion. -- Jens Axboe