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-block" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html