On Wed, 2016-06-29 at 16:51 +0200, Matias BjÃrling wrote:
From: "Simon A. F. Lund" <slund@xxxxxxxxxxxx>
For a host to access an Open-Channel SSD, it has to know its
geometry,
so that it writes and reads at the appropriate device bounds.
Currently, the geometry information is kept within the kernel, and
not
exported to user-space for consumption. This patch exposes the
configuration through sysfs and enables user-space libraries, such as
liblightnvm, to use the sysfs implementation to get the geometry of
an
Open-Channel SSD.
The sysfs entries are stored within the device hierarchy, and can be
found using the "lightnvm" device type.
An example configuration looks like this:
/sys/class/nvme/
âââ nvme0n1
âââ capabilities: 3
âââ device_mode: 1
âââ channel_parallelism: 0
âââ erase_max: 1000000
âââ erase_typ: 1000000
âââ flash_media_type: 0
âââ media_capabilities: 0x00000001
âââ media_type: 0
âââ multiplane: 0x00010101
âââ num_blocks: 1022
âââ num_channels: 1
âââ num_luns: 4
âââ num_pages: 64
âââ num_planes: 1
âââ page_size: 4096
âââ prog_max: 100000
âââ prog_typ: 100000
âââ read_max: 10000
âââ read_typ: 10000
âââ sector_oob_size: 0
âââ sector_size: 4096
âââ media_manager: gennvm
âââ ppa_format: 0x380830082808001010102008
âââ vendor_opcode: 0
âââ version: 1
That is an awful lot of new things to add under nvme0n1-type sysfs
entries when there is already a decent amount of stuff under it.
Any chance these new things could be stuck under a separate sysfs
directory under each nvmeXnY device? If these things are mainly
beneficial to LightNVM, it will be easier for a LightNVM newbie to
find, recognize, and consider all the important things in an Open
Channel SSD solution if it's under a separate directory. And for
current SSD solutions that don't seem to need these things exposed in
sysfs for operation, it will make what is directly under nvmeXnY
directories less cluttered.
Thanks,
Jay