> On 8 Jan 2018, at 12.54, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote: > > On Fri, Jan 05, 2018 at 07:33:36PM +0100, Matias Bjørling wrote: >> On 01/05/2018 04:42 PM, Jens Axboe wrote: >>> On Fri, Jan 05 2018, Matias Bjørling wrote: >>>> From: Javier González <javier@xxxxxxxxxxxx> >>>> >>>> Since pblk registers its own block device, the iostat accounting is >>>> not automatically done for us. Therefore, add the necessary >>>> accounting logic to satisfy the iostat interface. >>> >>> Ignorant question - why is it a raw block device, not using blk-mq? >> >> The current flow is using the raw block device, together with the blk-mq >> nvme device driver. A bio is sent down to the nvme_nvm_submit_io() path in >> the /drivers/nvme/host/lightnvm.c file. From there it attaches the to NVMe >> blk-mq implementation. >> >> Is there a better way to do it? > > I suspect the right way to do things is to split NVMe for different > I/O command sets, and make this an I/O command set. This makes sense. This was actually how I implemented it to start with, but I changed it to be less intrusive on the nvme path. Let's revert the patch and we can add it back when we push the 2.0 patches. > But before touching much of NVMe, I'd really, really like to see an > actual spec first. The 2.0 spec. is open and is available here [1]. I thought you had looked into it already... Anyway, feedback is more than welcome. [1] https://docs.google.com/document/d/1kedBY_1-hfkAlqT4EdwY6gz-6UOZbn7kIjWpmBLPNj0 Javier