linux/drivers/nvme/host
Simon A. F. Lund 40267efddc lightnvm: expose device geometry through sysfs
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
   ├── 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
   ├── max_phys_secs: 64
   └── version: 1

Signed-off-by: Simon A. F. Lund <slund@cnexlabs.com>
Signed-off-by: Matias Bjørling <m@bjorling.me>
Signed-off-by: Jens Axboe <axboe@fb.com>
2016-09-21 07:57:31 -06:00
..
core.c lightnvm: expose device geometry through sysfs 2016-09-21 07:57:31 -06:00
fabrics.c nvme-fabrics: add-remove ctrl repeat fix 2016-07-12 08:32:19 -07:00
fabrics.h nvme-fabrics: Remove tl_retry_count 2016-07-12 08:31:11 -07:00
Kconfig nvme-rdma: add a NVMe over Fabrics RDMA host driver 2016-07-08 08:38:49 -06:00
lightnvm.c lightnvm: expose device geometry through sysfs 2016-09-21 07:57:31 -06:00
Makefile nvme-rdma: add a NVMe over Fabrics RDMA host driver 2016-07-08 08:38:49 -06:00
nvme.h lightnvm: expose device geometry through sysfs 2016-09-21 07:57:31 -06:00
pci.c nvme: Suspend all queues before deletion 2016-08-11 09:35:57 -06:00
rdma.c nvme-rdma: Remove unused includes 2016-08-04 17:47:54 +03:00
scsi.c nvme: move chardev and sysfs interface to common code 2015-12-01 10:59:40 -07:00