Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nvmeof rdma qp shutdown #5

Closed
wants to merge 331 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
331 commits
Select commit Hold shift + click to select a range
6c4f29b
make: simplify rdma dependency linking
Seth5141 Sep 12, 2018
407915e
make: move FreeBSD linker change to SYS_LIBS
Seth5141 Sep 12, 2018
7e40850
test/iscsi: add fio and lvol test cases with raid bdev
ChenWang01 Aug 22, 2018
d288c41
env_dpdk: change behavior of spdk_mem_map_translate
Seth5141 Sep 6, 2018
1ee27f7
env: introduce a new mem_map_ops structure
Seth5141 Sep 11, 2018
92a5fb5
vm_setup: add sshfs
Seth5141 Sep 13, 2018
f8d0f6d
iscsi: Enforce to add/remove poll group on the core allocated to the …
Sep 6, 2018
183d81d
nvmf: Move target opts to transport opts (part 2)
jnrbarnard Aug 27, 2018
51606ed
bdev: Add crypto virtual bdev module
peluse Mar 7, 2018
9eae89f
app: initializing log after DPDK
Aug 28, 2018
33aa994
vhost: rpc: fix memory leak of spdk_rpc_get_vhost_controllers
Sep 12, 2018
5968bd6
doc: add rpc example to bdev doc for crypto
peluse Sep 17, 2018
efe4c27
nvmf/rdma: Add run-time check for SEND_WITH_INVALIDATE support
Sep 14, 2018
e798875
nvmf/rdma: Improve behavior when unable to send response capsule
Sep 14, 2018
4d5f288
nvmf/rdma: Fix double complete when RNIC goes offline
Sep 14, 2018
f6e0a17
nvme: fix FC-related comments in spdk_nvme_transport_id
jimharris Sep 14, 2018
ca12cb3
scripts: add config converter
pawelkax Jul 26, 2018
5238109
nvmf: Dump new-style configuration RPCs
Sep 10, 2018
4dc0ef6
scripts: fix executable attribute for includes
Sep 12, 2018
c34d149
blobfs: align rw buffer to lba of device underneath
tomzawadzki Sep 17, 2018
6751b44
blobcli: modify blobcli to use io unit size instead of page size
tomzawadzki Sep 17, 2018
b92d187
blobstore: Add tests for bdev_blob_queue_io in blobstore
Aug 29, 2018
bf14394
nvme: printf info after error
bistack Sep 11, 2018
87eacb6
ioat: change the return type of ioat_channel_destruct() to be void
ramirosen Sep 18, 2018
4a7240a
make: Fix test app Makefile dependencies
Sep 16, 2018
2484d0d
bdev/nvme: write TransportID to config file
jimharris Sep 18, 2018
18f80e3
env_dpdk: fix comment on bits covered by map_256tb
jimharris Sep 18, 2018
1d64773
raid: enable by default
jimharris Sep 18, 2018
c484028
iscsi: add iscsi prefix in every tracepoint name
liang2yan Sep 18, 2018
33ed49d
nvmf: Remove invalid asserts
Sep 19, 2018
2eacfd8
nvmf: Generate a reasonable default subsystem serial number
Sep 10, 2018
ec1f425
test: No longer use construct_nvmf_subsystem
Sep 10, 2018
9c8435b
env: Fix spdk_ring creation and access.
jnrbarnard Sep 19, 2018
85ba606
test/iscsi: disable running_config test
karlatec Sep 20, 2018
99850ca
vm_setup: add nvme-cli repo
Seth5141 Sep 14, 2018
4ada23d
vhost_blk: Add support for blk_request_queue_io in vhost_blk
nixun Sep 13, 2018
104f7d8
test/nvmf: add fio and lvol test cases with raid bdev
ChenWang01 Aug 16, 2018
e80b3d5
bdev: Fix spdk_bdev_part_io_type_supported()
whalbawi Sep 21, 2018
0ee7ebc
Vagrant: Supply pkg information to the guest.
Seth5141 Sep 22, 2018
74d4e7e
doc: Really minor updates to NVMe-oF programmers guide
Seth5141 Sep 21, 2018
0126d70
doc: update the NVMe-oF target user guide.
Seth5141 Sep 21, 2018
1bc3837
vbdev_passthru: add support for bdev_io_wait
nixun Sep 18, 2018
bc3dfe3
bdev: Fix the second parameter `success` of spdk_bdev_io_completion_cb
Sep 25, 2018
42db922
iscsi: update iscsi trace config
liang2yan Sep 6, 2018
6c275b7
doc/nvmf: add tracepoints user guide
Jun 22, 2018
8e54e10
test: Add check to bdevperf to fail if IO size is not a block multiple
peluse Sep 18, 2018
3736862
ut/bdev_raid: Fix the failure for single base bdev case
Sep 14, 2018
9d1b859
bdev/raid: Remove duplicated error check in construct RPC
Sep 13, 2018
ed6a63d
bdev/raid: Add JSON config dump
Sep 20, 2018
ef80470
bdev/raid: Add .INI config dump
Sep 21, 2018
3b9baaf
configure: don't generate config.h during configure
Sep 21, 2018
55bc3a7
Makefile: add ifdef guards to config.h
Sep 25, 2018
4e06bb5
env: pass an spdk_mem_map_ops structure to mem_map_alloc
Seth5141 Sep 11, 2018
5d57386
env_dpdk: spdk_mem_map_translate informs user of translation size.
Seth5141 Sep 11, 2018
6820641
nvme_rdma: add checks for translation size to request funcs
Seth5141 Sep 12, 2018
8f89a67
test/vhost: fix vhost live migration tc2 & tc3
nedved1 Sep 24, 2018
03f2a46
doc/vagrant.md: update vagrant docs
Sep 22, 2018
1e4f997
bdev: do not finish unitialized modules
darsto Aug 2, 2018
713b481
test/nvmf: add waitforblk calls to rpc tests.
Seth5141 Sep 25, 2018
9bb9752
ocssd: add chunk notification log struct
jakubradtke Sep 20, 2018
7a6c692
env_dpdk: always use legacy memory management
darsto Sep 26, 2018
cafd537
test: exercise crypto rpc calls
peluse Sep 17, 2018
0c04c72
vm_setup.sh: move all installations under a single command
Seth5141 Sep 26, 2018
5ae7353
test/common: remove directory switching from vm_setup.sh
Seth5141 Sep 26, 2018
a0a92be
test/common: parallelize vm_setup.sh
Seth5141 Sep 26, 2018
e42bb74
crypto: Misc cleanup from final review
peluse Sep 18, 2018
036d923
env/dpdk: do not clean up DPDK 18.05 shared files
darsto Sep 20, 2018
2e2aba3
conf: add an example of defining RAID bdev
Comphix Sep 26, 2018
61e741e
lib/nvme: add a check for valid namespace id
Comphix Sep 27, 2018
3bb7438
fio_plugin: add more information and fix a minor error for usage guide
Sep 27, 2018
4db5688
test/nvmf: No longer use construct_nvmf_subsystem method
ChenWang01 Sep 27, 2018
369719c
crypto: move PMD driver input validation to common function
peluse Sep 27, 2018
f2d9e51
scripts/vagrant: automate vhost test VM creation
karlatec Aug 21, 2018
2aaaff5
scripts/vagrant: allow adjustable nvme img size
karlatec Sep 19, 2018
0f25ee9
test/vhost: reduce size of created raw disk file
karlatec Sep 27, 2018
f08a6ee
vhost: don't lock global vhost mutex when waiting for device start/stop
darsto Sep 21, 2018
18aeb14
crypto: fix file permissions
peluse Sep 28, 2018
6de9698
crypto: gather loop condition variables into one spot in _crypto_oper…
peluse Sep 24, 2018
b5c5d14
crypto: add error handling to claim function
peluse Sep 27, 2018
ff85266
crypto: Build QAT module when crypto is enabled
peluse Sep 28, 2018
0df515a
bdev: Remove limitation of child iov size in bdev_io_split_with_paylo…
Sep 25, 2018
3c7894f
ut/bdev: Prepare test code for submitting batched split I/Os
Sep 14, 2018
9872b99
bdev: Avoid assert when read/write to bdev fails in _spdk_bdev_io_split
Sep 27, 2018
9d4708f
bdev: Factor out queueing IO operation in _spdk_bdev_io_split
Sep 27, 2018
6fa7e38
bdev: Avoid assert and factor out queue IO operation in _bdev_write_z…
Sep 28, 2018
99ca58e
NVMe: Add support for security send/receive command
jessehui Sep 25, 2018
ad06d03
scripts/spdkcli: override configshell init
karlatec Sep 19, 2018
7bcdc55
crypto: Use bulk API to return mbufs and crypto ops in poller
peluse Sep 27, 2018
f1b3df7
test/common: Configure repo locations inline in vm_setup
Seth5141 Sep 26, 2018
80bf04e
scripts/vagrant: Make rsyncing spdk directory optional
Seth5141 Sep 26, 2018
6695ac2
scripts/vagrant: Enable test machine deployment for fedora
Seth5141 Sep 26, 2018
b7ceb75
scripts/vagrant: Add fc28 image and update docs.
Seth5141 Sep 27, 2018
30974c7
test/common: change branch of nvme-cli
Seth5141 Sep 26, 2018
86bd269
doc/vagrant.md: fix inaccuracies
Sep 27, 2018
ae2b2f6
log: add a way to turn on and off stack unwinding in logs
Sep 10, 2018
7d030ef
QoS/Bdev: add the QoS related structure and enumeration
Comphix Sep 4, 2018
c7917f2
scripts/autotest: print short info for setup.sh cleanup and status
karlatec Sep 24, 2018
b6e130e
spdkcli: Add nvmf support
pawelkax Aug 25, 2018
9d0486a
test/spdkcli: Add nvmf tests
pawelkax Aug 28, 2018
cf5dffe
test/spdkcli: Add a match file and match comparison to nvmf test
nedved1 Sep 28, 2018
5efc71b
test/vhost: Fix VM timeouts during shutdown
nedved1 Oct 2, 2018
317b9a5
test/nvmf: watiforblk in shutdown test
Seth5141 Sep 27, 2018
e1e9b05
nbd: Fix scan build failure
Oct 1, 2018
bb75b28
nbd: Refactor the function in which the fix of scan build error is added
Oct 1, 2018
b9f6300
nbd: add support for io_wait implement in nbd
nixun Sep 14, 2018
c546755
mk: move config.h to include/spdk directory
Sep 28, 2018
c4fee1e
mk: don't use '-include spdk/config.h'
Sep 27, 2018
ff62841
test/nvmf: Correctly add listeners to subsystems in rpc test
Sep 11, 2018
6dbcb89
nvmf: Correctly enforce subsystem listener access control
Sep 7, 2018
de2cd83
test/vm_setup.sh: add missing assume yes option
karlatec Sep 19, 2018
97c45f5
vhost: embed destroy ctx into vhost dev struct
Sep 30, 2018
9938bfa
crypto: change name of the crypto io_device
peluse Oct 1, 2018
9a943bf
crypto: don't stop the examine process because of a claim error
peluse Oct 1, 2018
461cfce
CONFIG: add missing CONFIG_ options
Sep 26, 2018
577df16
configure: switch to arrays when generating CONFIG.local
Oct 3, 2018
14bbde7
configure: add message showing if something failed
Oct 3, 2018
6609b77
blobstore: allow I/O operations to use io unit size smaller than page…
Oct 1, 2018
b77ac82
test/vhost: allow vm_setup to boot vm from vhost controller
nedved1 Aug 9, 2018
d5132e8
bdev/raid: raid_bdev_add_base_devices: fix wrong param of spdk_strerror
Sep 30, 2018
b65b033
vhost_nvme: add support for bdev_io_wait implement
nixun Sep 18, 2018
79afa1c
test/nvmf: Expand shutdown test
Sep 18, 2018
aaa691b
nvmf/rdma: Delay disconnect processing until connect processing is done
Sep 18, 2018
48f70f4
configure: add concistency check of CONFIG file vs CONFIG[@] array
Oct 3, 2018
d705ab9
Check file permissions in the check_format script
Oct 1, 2018
360ccc4
bdev_split: add support for bdev_io_wait when no memory to submit
nixun Sep 25, 2018
9005128
test/vhost: test vm booting from vhost controller
nedved1 Aug 9, 2018
74a28c1
vhost: rpc: add an optional parameter -n/--name for get_vhost_control…
Sep 13, 2018
b3c3303
bit_array: clarify initial bit values for create()
jimharris Oct 4, 2018
c3d9530
spdk: fix check_format.sh
Oct 5, 2018
3d0488d
spdkcli: Add iscsi subsystem.
pawelkax Sep 5, 2018
7d79e5b
test/spdkcli: Add spdkcli tests for iscsi node
pawelkax Sep 11, 2018
598d3cf
test/spdkcli: Add a match test to iscsi spdkcli test
nedved1 Oct 1, 2018
803449c
env_dpdk/memory: handle spdk_mem_map_notify_walk() failures
darsto Oct 4, 2018
8a29512
bdev: Fix scan build error by checking the limit of parent iovec
Oct 4, 2018
8f33ef2
ut/bdev: Setup all expected values before starting tested split I/Os
Oct 4, 2018
fb0fe6b
ut/bdev: Fix scan build error for descriptor got by bdev_open
Oct 4, 2018
a878017
ut/bdev: Exercise the ENOMEM path in the IO splitting
Oct 4, 2018
b8c1262
test: fix the test error reported by the testpool
optimistyzy Oct 8, 2018
76c5ec4
test/spdkcli: Fix. Add shebang line
pawelkax Oct 6, 2018
7c56c39
bit_array: return UINT32_MAX if no cleared bits found
jimharris Oct 5, 2018
93ee8c7
scripts/check_format: fix an escaping issue.
dragonev Oct 8, 2018
5c9dccc
nvme: fix the parse of spdk_nvme_transport_id_parse
Oct 8, 2018
a077b47
ut/log: test print level set and get functions
maltmanSC Oct 9, 2018
5b0e370
nvme: broke up nvme_ns_construct() with IDENTIFY functions
Sep 13, 2018
d9ecb57
nvme: broke up NS construction with extra states
Sep 13, 2018
868c28c
QoS/Bdev: add the RPC support for the bandwidth rate limit
Comphix Jun 22, 2018
16f9d58
doc: small update to iscsi bdev readme
peluse Oct 8, 2018
935cdbe
lib/nvme: Enable multi SGE support in the NVMe-oF host.
Seth5141 Oct 1, 2018
460cf3e
test/unit: add nvme_rdma.c unittests
Seth5141 Oct 3, 2018
c779298
Make: Build shared libs while building static libs
Seth5141 Sep 19, 2018
89ef215
Make: Add deps for each shared obj individually
Seth5141 Sep 19, 2018
346fefc
shared_lib: add as_needed to the libspdk.so linker script
Seth5141 Oct 3, 2018
3785a4d
bdev/qos: fix a heap-use-after-free error
Oct 9, 2018
08ed55b
gpt: add support for bdev_io_wait when no memory
nixun Oct 8, 2018
5616c1e
bdev: Change split IOV submission from sequential to batch
Oct 4, 2018
5d5181d
nvme/rdma: fix a stack-buffer-overflow error
Oct 10, 2018
5c26304
sock: Update the spdk_sock_getaddr function.
optimistyzy Oct 8, 2018
2b6d9ce
configure: Move checks for nasm and ipsec
Seth5141 Oct 10, 2018
0d57730
memory: fix segfault when freeing mem map with no notify_cb
darsto Oct 10, 2018
cb9f0f3
memory: fix initial mem_map notifying at vaddr 0
darsto Oct 10, 2018
6c30e78
ut/memory: refactor mem_map_alloc() tests to CUnit tests
darsto Oct 10, 2018
6bcd929
memory: do not merge adjacent registrations
darsto Sep 12, 2018
a33e094
memory: forbid registering a memory region more than once
darsto Sep 19, 2018
0803955
memory: don't allow unregistering a part of the registered region
darsto Sep 13, 2018
3372a72
memory: allow unregistering multiple adjacent regions at once
darsto Oct 10, 2018
f4cb6c9
memory: register each hotplugged page separately
darsto Oct 10, 2018
8337cc2
env_dpdk: Eliminate unneeded start group ld opt
lhoswdev Oct 10, 2018
c10f8e1
jsonrpc-client: add new C client library
dong-liuliu Aug 30, 2018
b991360
nvme: Add clarifying comments when building RDMA SGLs
Oct 10, 2018
3fe0db6
nvme: Correctly set RDMA num_sge value for every command
Oct 10, 2018
6b2fb18
nvme: Make it clearer which RDMA sgl element is being filled out
Oct 10, 2018
e3cd058
nvme: Don't alias sgl1 when building request
Oct 10, 2018
5faf653
pkgdep.sh: Fix error handling for ipsec submodule
Seth5141 Oct 8, 2018
1250a41
scripts/perf: fix nvme perf scripts
karlatec Oct 5, 2018
ddb1721
nvmf: provide ctrlr to spdk_nvmf_ctrlr_identify_ns
Oct 11, 2018
5e2a99e
rte_vhost: include <asm/mman.h> for CentOS-6
Oct 11, 2018
3daa9e6
lib/event: update the check of poller returned status
Comphix Oct 10, 2018
438bae7
nvme: Enable RNR Retry in RDMA transport
Oct 10, 2018
a9e484a
memory: lock global mem_map only when necessary
darsto Oct 11, 2018
e6dac39
nvmf/rdma: rename SPDK_NVMF_RDMA_DEFAULT_IO_UNIT_SIZE
Seth5141 Oct 10, 2018
5fbbb6c
test/nvmf: Use create_transport instead of set_tgt_opts
Seth5141 Oct 11, 2018
b7201f8
lib/nvmf: fix a typo error
yidong0635 Oct 12, 2018
e6819a3
lib/nvmf_tgt:remove the g_active_poll_groups variable
Comphix Oct 12, 2018
d94846c
autotest: remove usages of deprecated --with-raid
darsto Oct 12, 2018
3e868ad
lib: reset globals to allow re-init
ShaharSalzman-K Sep 26, 2018
1ca4b47
lib/bdev: reset bdev internal properties
ShaharSalzman-K Sep 26, 2018
0c2a320
iscsi, rpc: free init options if decoding failed
Oct 12, 2018
7818939
util: make spdk_parse_ip_addr return -EINVAL instead -1
Oct 12, 2018
f0cb7b8
autorun: passthrough WITH_DPDK_DIR to autotest.sh
darsto Oct 12, 2018
2c5b956
mk: add spdk_lib_list_to_shared_libs
jimharris Oct 12, 2018
ddda03e
ctrlr_bdev: change spdk_nvmf_bdev_ctrlr_identify_ns to return void
Oct 15, 2018
acca82a
nvmf: set noiob no larger than mdts
Oct 11, 2018
36cc613
vbdev_lvol: set optimal_io_boundary to cluster size
Oct 4, 2018
09a9130
test/spdkcli: Add load and save config commands.
pawelkax Oct 9, 2018
ac5aa20
lib/copy: unregister copy engine on finish
ShaharSalzman-K Sep 26, 2018
1f6a786
iscsi: fix the iSCSI connection issue for lun hotplug
Oct 11, 2018
4730cd3
sock: set the fd with non_block flag.
Oct 10, 2018
92bf76c
nvme: make identify ns can be executed asynchronously
Sep 14, 2018
a2fdc4d
nvme: make identify NS id descriptors can be executed asynchronously
Oct 10, 2018
2c1aaa7
pkgdep: Don't built intel-ipsec-mb as root
Oct 12, 2018
5349f4b
bdev/raid: do not set configuring raid bdev to offline
Oct 8, 2018
e8b0ae0
bdev/raid: raid_bdev_remove_base_bdev: cleanup not registered raid bdev
Sep 30, 2018
d408036
test/iscsi: exclude *.o from ext4test.sh rsync
jimharris Oct 15, 2018
1c16c6c
test/vhost: Fix vhost live migration
nedved1 Oct 15, 2018
34387cc
mk: introduce ldflags print target
Oct 5, 2018
85bc2bb
configure: use mk/config.mk instead of CONFIG.local
Sep 21, 2018
98e119f
lib/nvmf: add the nvmf qpair to the available poll group
Comphix Aug 28, 2018
e66d090
dpdkbuild: add EXTRA_DPDK_CFLAGS
jimharris Oct 15, 2018
136160a
Doc/Bdev/QoS: add the user information for the QoS on bdev section
Comphix Oct 15, 2018
073f2dd
nvme: do not retry AER if ASYNC_LIMIT_EXCEEDED received
jimharris Oct 15, 2018
ba502c1
pkgdep: Prefer make -C to cd
Oct 15, 2018
d68ee5b
autotest/freebsd: fix contigmem.ko path when using external dpdk
darsto Oct 11, 2018
83b1102
env/pci: do the sleep-after-reset workaround only in primary process
darsto Oct 15, 2018
439641f
json: add utilities function enabling itaration over JSON object
Aug 29, 2018
8397285
jsonrpc_client: make ID and method optional when starting request
Oct 12, 2018
961a286
jsonrpc: simplify parsing client response
Oct 12, 2018
c9118ca
thread: add the missing newline character
liang2yan Oct 16, 2018
2975822
misc: Remove experimental comments regarding crypto
peluse Oct 15, 2018
c6eb4da
doc/bdev: document iSCSI bdev module
darsto Oct 18, 2018
d9208c8
doc/bdev: fix markdown formatting in GPT section
darsto Oct 18, 2018
f3096da
bdev/virtio: deprecate old bdev construct RPCs
darsto Oct 18, 2018
b237c1b
bdev/virtio: deprecate remove_virtio_scsi_bdev RPC
darsto Oct 18, 2018
840b922
genconfig.py: only use CONFIG.local
jimharris Oct 18, 2018
ddd38a5
configure: remove CONFIG.local symlink
Oct 8, 2018
f48708b
dpdk: update submodule commit
Seth5141 Oct 17, 2018
9abf7e8
make: build the igb_uio kernel module with crypto
Seth5141 Oct 10, 2018
7c28b8c
test/bdev: decrease malloc bdev size in bdev.conf.in
Seth5141 Oct 15, 2018
b391ead
doc: adjust CHANGELOG entry for iSCSI initiator
jimharris Oct 18, 2018
a084a90
Test/Bdev: change the program name properly
Comphix Oct 18, 2018
951bb3a
env/pci: move the vfio init delay to nvme/pci
darsto Oct 22, 2018
0258728
nvme/pci: increase the init delay to 2s
darsto Oct 15, 2018
4172100
ut/crypto: update mocked headers for dpdk 18.08
darsto Oct 18, 2018
1f07840
dpdkbuild: set CONFIG_RTE_LIBRTE_PMD_QAT_SYM if building crypto
darsto Oct 18, 2018
9e65587
dpdk: update the dpdk submodule to v18.08
darsto Oct 4, 2018
6bf5a8c
bdev_nvme: extract trid json dumping out
dong-liuliu Oct 22, 2018
e66ea62
scripts/rpc.py: add method "send_nvme_cmd"
dong-liuliu Jul 5, 2018
79e48eb
test/nvmf: Delete unneeded references to start_subsystem_init
Seth5141 Oct 18, 2018
d63d4d5
scripts: add a qat card setup script
Seth5141 Oct 9, 2018
549971c
test/bdev: remove memory restrictions from bdevio
Seth5141 Oct 19, 2018
2772d86
test: remove -g from discover_bdevs call.
Seth5141 Oct 22, 2018
a17d17d
setup.sh: cleanup bdevperf trace files
darsto Oct 22, 2018
decb595
nvmf/ctrlr: add debug log for volatile write cache
yidong0635 Oct 11, 2018
3f12b5f
vhost/blk: check against hotremoved bdev in GET_CONFIG handler
darsto Oct 16, 2018
c18562d
iscsi: Refactor spdk_iscsi_conn_destruct() as a preparation to fix th…
Oct 23, 2018
64a268e
iscsi: Fix double dequeue of the primary write task in error handling
Oct 23, 2018
4f11c59
doc/getting_started: update the nvme example path
ZVampirEM77 Oct 19, 2018
89f567a
Makefile: add ldflags target to PHONY
darsto Oct 22, 2018
23670d8
virtio: support dynamic memory registrations
darsto Aug 16, 2018
f26b1fc
hello_bdev: add spdk_bdev_queue_io_wait to hello_bdev example
Oct 16, 2018
b598f92
nvmf/rdma: QP shutdown procedure implementation
EugeneKochetov Oct 21, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,13 @@ tags
cscope.out
dpdk-*
CUnit-Memory-Dump.xml
config.h
include/spdk/config.h
CONFIG.local
*VC.db
.vscode
.project
.cproject
.settings
mk/cc.mk
mk/config.mk
PYTHON_COMMAND
81 changes: 80 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@

### nvme

spdk_nvme_ctrlr_cmd_security_send() and spdk_nvme_ctrlr_cmd_security_receive()
were added to support sending or receiving security protocol data to or from
nvme controller.

spdk_nvme_ns_get_extended_sector_size() was added. This function includes
the metadata size per sector (if any). spdk_nvme_ns_get_sector_size() still
returns only the data size per sector, not including metadata.
Expand All @@ -22,7 +26,32 @@ does not at this time confer any SPDK ABI compatibility claims.

spdk_bdev_alias_del_all() was added to delete all alias from block device.

### iscsi
A new virtual bdev module has been added to perform at rest data encryption using the DPDK CryptoDev
Framework. The module initially uses a software AESNI CBC cipher with experimental support for the
Intel QAT hardware accelerator also currently implemented with support for CBC cipher. Future work
may include additional ciphers as well as consideration for authentication. NOTE: this module is
currently marked as experimental. Do not use in production.

The RAID virtual bdev module is now always enabled by default. The configure --with-raid and
--without-raid options are now ignored and deprecated and will be removed in the next release.

Enforcement of bandwidth limits for quality of service (QoS) has been added to the bdev layer.
See the new [set_bdev_qos_limit](http://www.spdk.io/doc/jsonrpc.html#rpc_set_bdev_qos_limit)
documentation for more details. The previous set_bdev_qos_limit_iops RPC method introduced at
18.04 release has been deprecated. The new set_bdev_qos_limit RPC method can support both
bandwidth and IOPS limits.

### Environment Abstraction Layer and Event Framework

The size parameter of spdk_mem_map_translate is now a pointer. This allows the
function to report back the actual size of the translation relative to the original
request made by the user.

A new structure spdk_mem_map_ops has been introduced to hold memory map related
callbacks. This structure is now passed as the second argument of spdk_mem_map_alloc
in lieu of the notify callback.

### iscsi target

Parameter names of `set_iscsi_options` and `get_iscsi_global_params` RPC
method for CHAP authentication in discovery sessions have been changed to
Expand All @@ -40,6 +69,12 @@ specified. This default has been removed. Users must now explicitly specify
the location of this file to load CHAP shared secrets from a file, or use
the related iSCSI RPC methods to add them at runtime.

### iscsi initiator

The SPDK iSCSI initiator is no longer considered experimental and becomes
a first-class citizen among bdev modules. The basic usage has been briefly
described in the bdev user guide: [iSCSI bdev](https://spdk.io/doc/bdev.html#bdev_config_iscsi)

### Miscellaneous

The ReactorMask config file parameter has been deprecated. Users should
Expand All @@ -50,6 +85,50 @@ Default config file pathnames have been removed from iscsi_tgt, nvmf_tgt
and vhost. Config file pathnames may now only be specified using the
-c command line option.

Users may no longer set DPDK_DIR in their environment to specify the
location of the DPDK installation used to build SPDK. Using DPDK_DIR
has not been the documented nor recommended way to specify the DPDK
location for several releases, but removing it ensures no unexpected
surprises for users who may have DPDK_DIR defined for other reasons.
Users should just use the "configure" script to specify the DPDK
location before building SPDK.

Although we know that many developers still use Python 2 we are officially
switching to Python3 with requirement that all new code must be valid also
for Python 2 up to the EOL which is year 2020.

Invoking interpreter explicitly is forbidden for executable scripts. There
is no need to use syntax like "python ./scripts/rpc.py". All executable
scripts must contain proper shebang pointing to the right interpreter.
Scripts without shebang musn't be executable.

A Python script has been added to enable conversion of old INI config file
to new JSON-RPC config file format. This script can be found at
scripts/config_converter.py. Example how this script can be used:
~~~{.sh}
cat old_format.ini | scripts/config_converter.py > new_json_format.json
~~~

### Sock

Two additional parameters were added to spdk_sock_get_addr() for the server
port and client port. These parameters are named "sport" and "cport"
respectively.

### Virtio

The following RPC commands have been deprecated:
- construct_virtio_user_scsi_bdev
- construct_virtio_pci_scsi_bdev
- construct_virtio_user_blk_bdev
- construct_virtio_pci_blk_bdev
- remove_virtio_scsi_bdev

The `construct_virtio_*` ones were replaced with a single `construct_virtio_dev`
command that can create any type of Virtio bdev(s). `remove_virtio_scsi_bdev`
was replaced with `remove_virtio_bdev` that can delete both Virtio Block and SCSI
devices.

## v18.07:

### bdev
Expand Down
67 changes: 36 additions & 31 deletions CONFIG
Original file line number Diff line number Diff line change
Expand Up @@ -32,81 +32,86 @@
#

# Installation prefix
CONFIG_PREFIX?=/usr/local
CONFIG_PREFIX="/usr/local"

# Build with debug logging. Turn off for performance testing and normal usage
CONFIG_DEBUG?=n
CONFIG_DEBUG=n

# Show backtrace when logging message at level <= lvl (ERROR, WARN, NOTICE, DEBUG)
#CONFIG_LOG_BACKTRACE?=lvl
# Build with support of backtrace printing in log messages. Requires libunwind.
CONFIG_LOG_BACKTRACE=n

# Treat warnings as errors (fail the build on any warning).
CONFIG_WERROR?=n
CONFIG_WERROR=n

# Build with link-time optimization.
CONFIG_LTO?=n
CONFIG_LTO=n

# Build with code coverage instrumentation.
CONFIG_COVERAGE?=n
CONFIG_COVERAGE=n

# Build with Address Sanitizer enabled
CONFIG_ASAN?=n
CONFIG_ASAN=n

# Build with Undefined Behavior Sanitizer enabled
CONFIG_UBSAN?=n
CONFIG_UBSAN=n

# Build with Thread Sanitizer enabled
CONFIG_TSAN?=n
CONFIG_TSAN=n

# Build tests
CONFIG_TESTS?=y
CONFIG_TESTS=y

# Directory that contains the desired SPDK environment library.
# By default, this is implemented using DPDK.
CONFIG_ENV?=$(SPDK_ROOT_DIR)/lib/env_dpdk
CONFIG_ENV=

# This directory should contain 'include' and 'lib' directories for your DPDK
# installation. Alternatively you can specify this on the command line
# with 'make DPDK_DIR=/path/to/dpdk'. This is only a valid entry
# when using the default SPDK environment library.
CONFIG_DPDK_DIR?=$(SPDK_ROOT_DIR)/dpdk/build
# installation.
CONFIG_DPDK_DIR=

# Build SPDK FIO plugin. Requires FIO_SOURCE_DIR set to a valid
# Build SPDK FIO plugin. Requires CONFIG_FIO_SOURCE_DIR set to a valid
# fio source code directory.
CONFIG_FIO_PLUGIN?=n
CONFIG_FIO_PLUGIN=n

# This directory should contain the source code directory for fio
# which is required for building the SPDK FIO plugin.
FIO_SOURCE_DIR?=/usr/src/fio
CONFIG_FIO_SOURCE_DIR=/usr/src/fio

# Enable RDMA support for the NVMf target.
# Requires ibverbs development libraries.
CONFIG_RDMA?=n
CONFIG_RDMA=n
CONFIG_RDMA_SEND_WITH_INVAL=n

# Build Ceph RBD support in bdev modules
# Requires librbd development libraries
CONFIG_RBD?=n
CONFIG_RBD=n

# Build vhost library.
CONFIG_VHOST?=y
CONFIG_VHOST=y

# Build vhost initiator (Virtio) driver.
CONFIG_VIRTIO?=y
CONFIG_VIRTIO=y

# Build with PMDK backends
CONFIG_PMDK?=n
CONFIG_PMDK=n
CONFIG_PMDK_DIR=

# Build with VPP
CONFIG_VPP?=n
CONFIG_VPP=n
CONFIG_VPP_DIR=

# Requires libiscsi development libraries.
CONFIG_ISCSI_INITIATOR?=n

# Build with raid
CONFIG_RAID?=n
CONFIG_ISCSI_INITIATOR=n

# Enable the dependencies for building the crypto vbdev
CONFIG_CRYPTO?=n
CONFIG_CRYPTO=n

# Build spdk shared libraries in addition to the static ones.
CONFIG_SHARED?=n
CONFIG_SHARED=n

# Build with VTune suport.
CONFIG_VTUNE=n
CONFIG_VTUNE_DIR=

# Build the dpdk igb_uio driver
CONFIG_IGB_UIO_DRIVER=n
38 changes: 30 additions & 8 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ DIRS-$(CONFIG_SHARED) += shared_lib
DIRS-y += examples app include
DIRS-$(CONFIG_TESTS) += test

.PHONY: all clean $(DIRS-y) config.h CONFIG.local mk/cc.mk cc_version cxx_version
.PHONY: all clean $(DIRS-y) include/spdk/config.h mk/config.mk mk/cc.mk \
cc_version cxx_version .libs_only_other .ldflags ldflags

ifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV))
ifeq ($(CURDIR)/dpdk/build,$(CONFIG_DPDK_DIR))
Expand All @@ -52,33 +53,42 @@ endif
endif
endif

ifeq ($(CONFIG_SHARED),y)
LIB = shared_lib
else
LIB = lib
endif

all: $(DIRS-y)
clean: $(DIRS-y)
$(Q)rm -f mk/cc.mk
$(Q)rm -f config.h
$(Q)rm -f include/spdk/config.h

install: all
$(Q)echo "Installed to $(DESTDIR)$(CONFIG_PREFIX)"

shared_lib: lib
lib: $(DPDKBUILD)
app: lib
test: lib
examples: lib
app: $(LIB)
test: $(LIB)
examples: $(LIB)
pkgdep:
sh ./scripts/pkgdep.sh

$(DIRS-y): mk/cc.mk config.h
$(DIRS-y): mk/cc.mk include/spdk/config.h

mk/cc.mk:
$(Q)scripts/detect_cc.sh --cc=$(CC) --cxx=$(CXX) --lto=$(CONFIG_LTO) > $@.tmp; \
cmp -s $@.tmp $@ || mv $@.tmp $@ ; \
rm -f $@.tmp

config.h: CONFIG CONFIG.local scripts/genconfig.py
include/spdk/config.h: mk/config.mk scripts/genconfig.py
$(Q)PYCMD=$$(cat PYTHON_COMMAND 2>/dev/null) ; \
test -z "$$PYCMD" && PYCMD=python ; \
$$PYCMD scripts/genconfig.py $(MAKEFLAGS) > $@.tmp; \
echo "#ifndef SPDK_CONFIG_H" > $@.tmp; \
echo "#define SPDK_CONFIG_H" >> $@.tmp; \
$$PYCMD scripts/genconfig.py $(MAKEFLAGS) >> $@.tmp; \
echo "#endif /* SPDK_CONFIG_H */" >> $@.tmp; \
cmp -s $@.tmp $@ || mv $@.tmp $@ ; \
rm -f $@.tmp

Expand All @@ -88,4 +98,16 @@ cc_version: mk/cc.mk
cxx_version: mk/cc.mk
$(Q)echo "SPDK using CXX=$(CXX)"; $(CXX) -v

.libs_only_other:
$(Q)echo -n '$(SYS_LIBS) '
$(Q)if [ "$(CONFIG_SHARED)" = "y" ]; then \
echo -n '-lspdk '; \
fi

.ldflags:
$(Q)echo -n '$(LDFLAGS) '

ldflags: .ldflags .libs_only_other
$(Q)echo ''

include $(SPDK_ROOT_DIR)/mk/spdk.subdirs.mk
27 changes: 14 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -103,20 +103,20 @@ Details on the Vagrant setup can be found in the
## Advanced Build Options

Optional components and other build-time configuration are controlled by
settings in two Makefile fragments in the root of the repository. `CONFIG`
contains the base settings. Running the `configure` script generates a new
file, `CONFIG.local`, that contains overrides to the base `CONFIG` file. For
advanced configuration, there are a number of additional options to `configure`
that may be used, or `CONFIG.local` can simply be created and edited by hand. A
description of all possible options is located in `CONFIG`.
settings in the Makefile configuration file in the root of the repository. `CONFIG`
contains the base settings for the `configure` script. This script generates a new
file, `mk/config.mk`, that contains final build settings. For advanced configuration,
there are a number of additional options to `configure` that may be used, or
`mk/config.mk` can simply be created and edited by hand. A description of all
possible options is located in `CONFIG`.

Boolean (on/off) options are configured with a 'y' (yes) or 'n' (no). For
example, this line of `CONFIG` controls whether the optional RDMA (libibverbs)
support is enabled:

CONFIG_RDMA?=n

To enable RDMA, this line may be added to `CONFIG.local` with a 'y' instead of
To enable RDMA, this line may be added to `mk/config.mk` with a 'y' instead of
'n'. For the majority of options this can be done using the `configure` script.
For example:

Expand All @@ -132,8 +132,10 @@ make CONFIG_RDMA=y
~~~

Users may wish to use a version of DPDK different from the submodule included
in the SPDK repository. To specify an alternate DPDK installation, run
configure with the --with-dpdk option. For example:
in the SPDK repository. Note, this includes the ability to build not only
from DPDK sources, but also just with the includes and libraries
installed via the dpdk and dpdk-devel packages. To specify an alternate DPDK
installation, run configure with the --with-dpdk option. For example:

Linux:

Expand All @@ -150,10 +152,9 @@ gmake
~~~

The options specified on the `make` command line take precedence over the
default values in `CONFIG` and `CONFIG.local`. This can be useful if you, for
example, generate a `CONFIG.local` using the `configure` script and then have
one or two options (i.e. debug builds) that you wish to turn on and off
frequently.
values in `mk/config.mk`. This can be useful if you, for example, generate
a `mk/config.mk` using the `configure` script and then have one or two
options (i.e. debug builds) that you wish to turn on and off frequently.

<a id="huge"></a>
## Hugepages and Device Binding
Expand Down
1 change: 1 addition & 0 deletions app/spdk_tgt/spdk_tgt.c
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

#include "spdk/stdinc.h"

#include "spdk/config.h"
#include "spdk/env.h"
#include "spdk/event.h"
#include "spdk/vhost.h"
Expand Down
Loading