Commit Graph

600 Commits

Author SHA1 Message Date
Changpeng Liu
8be572ef20 nvmf: process the submission error code for NVMe I/O commands
Change-Id: I4e91ebea1b96f09bafa1fb23f2d9c5d9f79125af
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
2016-06-20 09:13:17 -07:00
Changpeng Liu
e42e4e8056 nvmf: print the error log information when error happens
Change-Id: I12f089a0cb4b93997499a917884c94bd238a47d6
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
2016-06-20 09:12:20 -07:00
Ben Walker
dc6a0a2bd2 nvmf: Rename init_grp.h/c to host.h/c
Match the names in the specification.

Change-Id: Ic3f95220efea4dfbdf209af43db20da26ae232b6
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-17 13:31:05 -07:00
Ben Walker
422b147499 nvmf: Standardize names in init_grp.h
Prefix with spdk_nvmf_host.

Change-Id: I053030febf5b7157cc2c7075ac6170bc59ce0ced
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-17 13:31:05 -07:00
Ben Walker
6eb1bee64b nvmf: Rename spdk_nvmf_init_grp to spdk_nvmf_host
Host is the term used in the specification.

Change-Id: Ie9a06e3ff176e00e2fdcdc5bede701fe768d4b35
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-17 13:31:05 -07:00
Ben Walker
e1d1040703 nvmf: Improve script that detects RDMA NICs
Work around an issue with the mlx4 driver.
Make discovery of NICs more generic.

Change-Id: I9701d8d7937faa299d12d7ca4bfe1c923983c263
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-17 13:23:17 -07:00
Jim Harris
213e7a640d examples: add hello_world example for NVMe
This is a very basic example app that shows how to
use the SPDK NVMe driver API for basic enumeration and
I/O operations.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I411f6f90781832f00d98b3d6782a9c2ca6591ce3
2016-06-17 12:05:39 -07:00
Ziye Yang
e87e3df674 event: fix null pointer issue in spdk_subsystem_fini
The variable cur could be null, so if we use do while
will cause a segment fault

Change-Id: I19ec26e88948a0c3fd957e03e717b68750f40c62
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2016-06-15 16:33:55 -07:00
Ben Walker
5603ff07b9 build: Add config.h to .gitignore
This file is automatically generated.

Change-Id: I216052ecfd79573398e5fa2337efc7ff829f00fd
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-15 15:44:35 -07:00
Minfei Huang
f0b20026d7 nvme: Return negative errno for failure (#24)
The conventional rule for returning errno is negative, hence there is no
need to modify caller's code to adjust this NVMe library.

Signed-off-by: Minfei Huang <mnghuan@gmail.com>
Signed-off-by: Minfei Huang <minfei.hmf@alibaba-inc.com>
2016-06-14 15:19:10 -07:00
Ben Walker
ba37804100 nvmf: Don't allocate our own RDMA protection domain
If we just pass NULL to rdma_create_qp, it will do
the right thing.

Change-Id: I9621a5110ace6237a1e47c6e5defb4cac3afc4ae
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-10 11:19:33 -07:00
Ben Walker
309a97f782 nvmf: Use RDMA CM wrappers for registering memory
The wrappers are much simpler to use than the low
level ib verbs calls.

Change-Id: I4b09a96a60020bc27df9396d40d955733f618837
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-10 11:19:33 -07:00
Ben Walker
1b17e4ee35 nvmf: Combine nvmf_rdma_conn_init and nvmf_rdma_qp_init
They are only ever called in sequence and do related
operations.

Change-Id: I825abe08deba1dafb405757bb4f2d52062a801ca
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-10 11:19:33 -07:00
Daniel Verkamp
90b6ad1f36 nvmf: move internal APIs out of nvmf.h
Change-Id: I94425fc4e394bb5033237ddc9002cd464c3f621f
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-09 14:25:26 -07:00
Daniel Verkamp
1bb4fac463 nvmf: remove unimplemented AuthFile config
This enables SPDK_NVMF_BUILD_ETC to be moved out of the library as well,
since only authfile was using it before

Change-Id: I10d1145881f9a0358d7effe2d2d9851899413e1b
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-09 14:25:26 -07:00
Daniel Verkamp
d3bbbfeea2 nvmf: move private #defines to nvmf_internal.h
SPDK_NVMF_BUILD_ETC will be cleaned up in another commit; it is
currently used both in the lib and in nvmf_tgt.

Change-Id: Ibc5f15cc4341f9d52b29c84defcd332bec4a4d09
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-09 14:25:26 -07:00
Daniel Verkamp
c78d4d0b6c nvmf: move includes from nvmf.h where they're used
Most of the #include statements in nvmf.h aren't part of the public API.

Change-Id: I0d43dd542a28744a91a4fd0c4c806a991d1e194e
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-09 14:25:26 -07:00
Daniel Verkamp
db6d1079fd nvmf: move g_nvmf_tgt to nvmf_internal.h
It is not part of the NVMf library's public API.

Change-Id: I665d5713343c9185cbdadaef4fedfdc83b8232d6
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-09 14:25:26 -07:00
Daniel Verkamp
9b00a03a24 nvmf: drop spdk_nvmf_check_pools() parameter
There is only a single global g_nvmf_tgt that can be passed to this
function, so remove the parameter and use the global directly.

Change-Id: Ia1a2a1e6cd3801101ddeb4de5526dd115fa7ef8f
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-09 14:25:26 -07:00
Ben Walker
58f9dcd220 nvmf: Rename SubsystemGroup to Susbystem in conf file
The section is really defining a subsystem as defined
by the NVMf specification. There does not appear to be
any need for a group of subsystems.

This change only updates the configuration file. It does
not remove all references to a subsystem group from
the code.

Change-Id: I38e62735a5ac924dcafacb3c9a332a103d751d4a
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-09 14:24:57 -07:00
Daniel Verkamp
53b31afe7c doc/nvmf: add description of how to enable NVMf
Change-Id: I4270a8fb8da847ee62b107f7cb2c0fdea1450fa6
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 16:39:39 -07:00
Ben Walker
a4b857213b nvmf: Rename InitiatorGroup config section to Host
The specification refers to this concept as a Host,
so use that term. This only changes the configuration
file usage. Initiator groups are still referenced in
the code and will be removed later.

Change-Id: I897f4dbdfb65d94da1e5a77434fc07a2c18bcdc2
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-08 16:37:32 -07:00
Ben Walker
988e88c82a docs: Update README.md to reflect NVMf target
Change-Id: Iadf635cb018baa1cfbd56fc11714a662aa8c9c3c
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
2016-06-08 16:18:56 -07:00
Daniel Verkamp
5a84b8e6ee unittest.sh: generate config.h
Change-Id: I65b4f6503a6edc22a960304b994f0b5f20326385
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 16:06:08 -07:00
Daniel Verkamp
6a0e161871 nvmf: remove unused request_mempool declarations
Change-Id: I0dc01e4af20fa2750aef1fe05944e33a5ce4db1c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 14:06:30 -07:00
Daniel Verkamp
1c089ae19c nvmf: rename framework.c to nvmf.c
Change-Id: Ia9b4bf4738ad9e1ae158f3a610da8f0ab87e0215
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 13:15:26 -07:00
Ziye Yang
68ea447278 nvmf: Update free_conn in conn.c
Move two statements in free_conn

Change-Id: I27f403f4d4b50be8befb75b1109cb9be9ff1a3d8
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2016-06-08 13:10:13 -07:00
GangCao
88726edf83 nvmf: correct the function input parameter name
Change-Id: Ie4d5f2ba141aac9bdfe3c83290de1ab88c24a908
Signed-off-by: GangCao <gang.cao@intel.com>
2016-06-08 12:55:14 -07:00
Daniel Verkamp
92a02f580c build: generate config.h and implicitly include it
All source files will now depend on config.h, which is generated based
on the defaults in CONFIG and the command line arguments passed to make.

This ensures that any configuration changes, including on the command
line, cause a full rebuild.

Change-Id: I6b6fa3290941200dbcf32297c66df8dc5ee18e94
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 10:26:50 -07:00
Ziye Yang
34731b0b17 nvmf: create a common script file for nvmf automation test
Put the common funcs in test/nvmf/common.sh to
reduce duplicated code

Change-Id: I1c72f6fb22d092dafb7fb134b8bb3780b5525e48
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Signed-off-by: Gang Cao <gang.cao@intel.com>
2016-06-08 09:28:57 -07:00
Cunyin Chang
f7ccfc6160 nvmf: Remove unused start_fn in spdk_app_opts.
Change-Id: I8f54612305af419ccc19356c09fe5053d52cd59e
Signed-off-by: Cunyin Chang <cunyin.chang@intel.com>
2016-06-08 09:13:14 -07:00
Cunyin Chang
f0d2e5508c event: Remove the concept of subsystem from the reactor.
Eliminate the misconception of reactor, it actually not a subsystem.

Change-Id: I63ea46f0dfa34661f16526a71c47e8fba9813474
Signed-off-by: Cunyin Chang <cunyin.chang@intel.com>
2016-06-08 09:13:02 -07:00
GangCao
b1b7bebdc7 nvmf: double tx_desc_pool count with doubled cq_depth per connection
Change-Id: I7139ddfacedc1ee7f324a1577730b08260035b83
Signed-off-by: GangCao <gang.cao@intel.com>
2016-06-08 09:12:17 -07:00
Ziye Yang
2c43473adc nvmf: fix fabricintf parsing in spdk_nvmf_parse_port function
The index should be 0 for fabricintf.
Moreover, when there is no fabricintf found, error should
be returned

Change-Id: I3aa04566a5a318b8c921dd37c8573ed075254266
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2016-06-08 09:11:35 -07:00
Daniel Verkamp
d237632434 nvmf: add unit tests
Change-Id: I22c57c3989f4b69cb35ef4e17507864d0f07f084
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 08:49:38 -07:00
Daniel Verkamp
d67021b0e4 nvmf: merge nvmf.c and framework.c
There is no logical split between nvmf.c and framework.c, so combine
them and drop nvmf.c.

Change-Id: I91230c01ed7f171bfed04456b0bfcf0e7ddbc263
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 08:49:29 -07:00
Daniel Verkamp
ca4932f995 nvmf: remove unused g_nvmf_driver
The mutex is initialized, but otherwise is unused.

Change-Id: Ia68adbd430fad391cc465c07dd6e937e90dd2c5c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-08 08:49:12 -07:00
Ziye Yang
f634c1245a nvmf: Support UnbindFromKernel option for NVMe identification
Change-Id: I8174ca97ef406622cf9dfc81330e64cc9b1fda9b
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
2016-06-08 10:26:37 +08:00
Daniel Verkamp
4de0491a1b readme: add NVMf dependencies
Change-Id: I013a466089b48459f3bff3b9fc1b7e966efa6f3c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-07 10:16:08 -07:00
Daniel Verkamp
39f552fc2d changelog: update to 16.06 and add NVMf
Change-Id: Iebc8bba692530977d837fb6f3781fdb52a7e1945
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-07 10:16:08 -07:00
Daniel Verkamp
ec89af7e2c nvmf: add some basic user docs
Change-Id: I543ddcdf1e761739e51322d155471a62acc6433c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-07 10:16:08 -07:00
Daniel Verkamp
3c4cb4ea53 nvmf: fix up scan-build workaround
The code that actually removed items from the list was removed in
addition to the free() call, which caused a hang on shutdown.

Change-Id: If0e843d0d0ebfa28638b12104da880e70b3e548a
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-07 10:16:01 -07:00
Daniel Verkamp
91330eb5c8 nvmf: add automated fio and mkfs tests
Change-Id: I499ae29155b8f053babf18750cecb5c8d210d59c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-07 10:16:01 -07:00
Daniel Verkamp
0f912a0eaf nvmf: add NVMe over Fabrics userspace target
Change-Id: I739916824d033bd1a8f8b7f5def09e58f23d13cb
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-06 15:21:25 -07:00
Daniel Verkamp
22f741d539 trace: update shm name to match event lib
Add the '/' prefix to the trace shm name.

Change-Id: I4cf1011b639f299314ea379ba3fb626f5c2c787a
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-01 10:14:46 -07:00
Daniel Verkamp
c711736d6f test/log: fix typo
Change-Id: Iff84a6e17a2e6bf5848fee33d5bf5ed289058c7c
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-06-01 09:48:39 -07:00
Daniel Verkamp
eeeac6676d Add event-driven application framework
Change-Id: Iba90db6d8853dde972b4eec2c35eb44eeddae780
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-31 09:58:05 -07:00
Daniel Verkamp
ab1f6bdc54 nvme: add enum for opcode data direction
NVMe opcodes contain a two-bit field that encodes the expected data
direction for each command.  Add an enum and a function to extract these
bits.

Change-Id: Ie214319f121cf0899c6aa5663866f2988b128dd2
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-27 08:59:14 -07:00
Daniel Verkamp
b7095d7b00 setup.sh: get hugepages in 64 MB chunks on FreeBSD
This increases the largest contiguous region available for any single
object (e.g. DPDK mempools) from 32 MB to 64 MB.

Change-Id: I46633b246bcf7843053ab9d0d92993a784287a57
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-26 09:27:16 -07:00
Tsuyoshi Uchida
3fc793591d nvme/perf: Improve aio code
Use O_WRONLY flag for write IO
Cleanup io_context_t and io_event when perf exits

Change-Id: Iefa1d8be5e017a1ca5719489c1ec4b868df94722
Signed-off-by: Daniel Verkamp <daniel.verkamp@intel.com>
2016-05-25 15:50:14 -07:00