Re: linux-next: build failure after merge of the block tree

From: Matias BjÃrling
Date: Fri Dec 04 2015 - 07:16:29 EST




On 12/03/2015 05:42 PM, Christoph Hellwig wrote:
On Thu, Dec 03, 2015 at 12:07:23PM +0100, Matias Bjørling wrote:
What is the reason to keep the nvme_ns internally to the nvme core?

We can definitely move ->nsid and the lba_shift into nvm_dev. Only thing I
have is that it moves a small part of nvme logic into the lightnvm core.

It's a structure specific to the NVM command set, and the block device
use to implement it in Linux. Similar to how you wouldn't use the SCSI
disk driver data structures to implement the tape driver for example.


Granted. Taking a step back and see how it would look in the specification. For that case, the identify geometry should properly replace the identify namespace command and extend the controller identify with a method to expose identify geometry structures. It falls back to that we don't have the appropriate bits in the specification (as there isn't a vendor specific command set (CSS) place at the moment). I'll rather not (and patches properly won't be accepted) push specific meanings to reserved bits in the standard, which then is overruled by vendor specific pci id's.

The NVMe and LightNVM still shares some common ground as I/O submission/completion still follows normal I/O submissions. The Submission/Completion sizes (SQES/CQES), ONCS bits, number of namespaces could properly be either abstracted or duplicated in vendor specific bits.

I'll work on getting ->nsid, and lba_shift abstracted away. However, the best solution will be to get some bits in the spec and implement it appropriately.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/