cd9e9808d1
Open-channel SSDs are devices that share responsibilities with the host in order to implement and maintain features that typical SSDs keep strictly in firmware. These include (i) the Flash Translation Layer (FTL), (ii) bad block management, and (iii) hardware units such as the flash controller, the interface controller, and large amounts of flash chips. In this way, Open-channels SSDs exposes direct access to their physical flash storage, while keeping a subset of the internal features of SSDs. LightNVM is a specification that gives support to Open-channel SSDs LightNVM allows the host to manage data placement, garbage collection, and parallelism. Device specific responsibilities such as bad block management, FTL extensions to support atomic IOs, or metadata persistence are still handled by the device. The implementation of LightNVM consists of two parts: core and (multiple) targets. The core implements functionality shared across targets. This is initialization, teardown and statistics. The targets implement the interface that exposes physical flash to user-space applications. Examples of such targets include key-value store, object-store, as well as traditional block devices, which can be application-specific. Contributions in this patch from: Javier Gonzalez <jg@lightnvm.io> Dongsheng Yang <yangds.fnst@cn.fujitsu.com> Jesper Madsen <jmad@itu.dk> Signed-off-by: Matias Bjørling <m@bjorling.me> Signed-off-by: Jens Axboe <axboe@fb.com>
28 lines
690 B
Text
28 lines
690 B
Text
#
|
|
# Open-Channel SSD NVM configuration
|
|
#
|
|
|
|
menuconfig NVM
|
|
bool "Open-Channel SSD target support"
|
|
depends on BLOCK
|
|
help
|
|
Say Y here to get to enable Open-channel SSDs.
|
|
|
|
Open-Channel SSDs implement a set of extension to SSDs, that
|
|
exposes direct access to the underlying non-volatile memory.
|
|
|
|
If you say N, all options in this submenu will be skipped and disabled
|
|
only do this if you know what you are doing.
|
|
|
|
if NVM
|
|
|
|
config NVM_DEBUG
|
|
bool "Open-Channel SSD debugging support"
|
|
---help---
|
|
Exposes a debug management interface to create/remove targets at:
|
|
|
|
/sys/module/lnvm/parameters/configure_debug
|
|
|
|
It is required to create/remove targets without IOCTLs.
|
|
|
|
endif # NVM
|