Skip to content

Commit

Permalink
nvmet: add a generic NVMe target
Browse files Browse the repository at this point in the history
This patch introduces a implementation of NVMe subsystems,
controllers and discovery service which allows to export
NVMe namespaces across fabrics such as Ethernet, FC etc.

The implementation conforms to the NVMe 1.2.1 specification
and interoperates with NVMe over fabrics host implementations.

Configuration works using configfs, and is best performed using
the nvmetcli tool from http://git.infradead.org/users/hch/nvmetcli.git,
which also has a detailed explanation of the required steps in the
README file.

Signed-off-by: Armen Baloyan <armenx.baloyan@intel.com>
Signed-off-by: Anthony Knapp <anthony.j.knapp@intel.com>
Signed-off-by: Jay Freyensee <james.p.freyensee@intel.com>
Signed-off-by: Ming Lin <ming.l@ssi.samsung.com>
Signed-off-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
  • Loading branch information
Christoph Hellwig authored and Jens Axboe committed Jul 5, 2016
1 parent 9645c1a commit a07b497
Show file tree
Hide file tree
Showing 12 changed files with 3,383 additions and 0 deletions.
7 changes: 7 additions & 0 deletions MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -8153,6 +8153,13 @@ S: Supported
F: drivers/nvme/host/
F: include/linux/nvme.h

NVM EXPRESS TARGET DRIVER
M: Christoph Hellwig <hch@lst.de>
M: Sagi Grimberg <sagi@grimberg.me>
L: linux-nvme@lists.infradead.org
S: Supported
F: drivers/nvme/target/

NVMEM FRAMEWORK
M: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
M: Maxime Ripard <maxime.ripard@free-electrons.com>
Expand Down
1 change: 1 addition & 0 deletions drivers/nvme/Kconfig
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
source "drivers/nvme/host/Kconfig"
source "drivers/nvme/target/Kconfig"
1 change: 1 addition & 0 deletions drivers/nvme/Makefile
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@

obj-y += host/
obj-y += target/
16 changes: 16 additions & 0 deletions drivers/nvme/target/Kconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@

config NVME_TARGET
tristate "NVMe Target support"
depends on BLOCK
depends on CONFIGFS_FS
help
This enabled target side support for the NVMe protocol, that is
it allows the Linux kernel to implement NVMe subsystems and
controllers and export Linux block devices as NVMe namespaces.
You need to select at least one of the transports below to make this
functionality useful.

To configure the NVMe target you probably want to use the nvmetcli
tool from http://git.infradead.org/users/hch/nvmetcli.git.

If unsure, say N.
5 changes: 5 additions & 0 deletions drivers/nvme/target/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@

obj-$(CONFIG_NVME_TARGET) += nvmet.o

nvmet-y += core.o configfs.o admin-cmd.o io-cmd.o fabrics-cmd.o \
discovery.o
Loading

0 comments on commit a07b497

Please sign in to comment.