Skip to content

Sync with master #3

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

Open
wants to merge 704 commits into
base: rfc-vfio-over-socket
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
704 commits
Select commit Hold shift + click to select a range
815949e
test/nvmf: Unify the ports in common file.
yidong0635 Aug 13, 2020
ada6c84
test/fuzz: remove AERs from example JSON.
Seth5141 Aug 11, 2020
7fade02
test/check_so_deps: remove old suppressions.
Seth5141 Aug 10, 2020
7a660b3
doc: bdev module path and external bdev info update
mkenguva Jul 21, 2020
7a71ae5
doc: Moved RAID section in alphabetical order
mkenguva Aug 6, 2020
8cf5581
lib/iscsi: Remove async logout request from iscsi_target_node_redirect()
Aug 14, 2020
e97fd6c
lib/iscsi: Add iscsi_target_node_request_logout RPC
Aug 14, 2020
5a92ce5
doc/iscsi: Fix description about iSCSI login redirection
Aug 14, 2020
0162da7
lib/nvmf: add an in_destruct flag to the ctrlr struct
Seth5141 Aug 7, 2020
ba3c468
test/cuse: do not disable exit on error
tomzawadzki Jun 18, 2020
52aaee4
changelog: update titles of releases
tomzawadzki Aug 12, 2020
49473bd
test/common: consolidate test params for running with external DPDK
darsto Feb 12, 2020
6733330
test/common: nullglob the tmp storage path pattern
Jul 10, 2020
5b2c76f
lib/iscsi: Make the max number of read subtasks for large read I/O co…
Aug 11, 2020
bc814aa
doc/jsonrpc: Increase column width of parameter table for iscsi_set_o…
Aug 13, 2020
5aaf754
lib/iscsi: Add MaxLargeDataInPerConnection to iSCSI options
Aug 13, 2020
07f2d83
lib/iscsi: Change the type of pending_r2t from int to uint32_t
Aug 13, 2020
fb229e1
lib/iscsi: Count R2T and Data Out PDUs into PDU pool size
Aug 13, 2020
5af4200
lib/iscsi: Make max outstanding R2Ts per connection configurable
Aug 14, 2020
05cd697
lib/iscsi: Add MaxR2TPerConnection to iSCSI options
Aug 14, 2020
ea80818
test/bdevperf: fix an int types for offset which can result in core d…
wanghailiangx Aug 17, 2020
85ff3fc
rdma: Do not use the poller to handle the qpair exiting.
Aug 4, 2020
b3bb3a1
lib/nvme: change timeout in wait_for_completions to usec
Seth5141 Aug 14, 2020
518a1e0
lib/nvme: make fabrics connect timeout configurable.
Seth5141 Aug 14, 2020
2031f8f
nvme: set the error code if we cannot send keep alive command.
Aug 13, 2020
c67fb06
nvme/perf: Fix the hang issue of nvme perf.
Aug 13, 2020
c4e1d35
test/opal: fix a typo for P4510 devices ID
wanghailiangx Aug 18, 2020
f672731
test/opal: add a trap for opal_revert_and_init()
wanghailiangx Aug 18, 2020
2d30df9
bdev: add bdev_examine_bdev API
yupeng0921 Jul 6, 2020
0d3cc15
nvme/tcp: Correct the incapsule data usage
Aug 19, 2020
db3d120
lib/blob: fix a data corruption bug
Jul 13, 2020
a52c6b1
test/dd: Remove plain_copy test
Aug 19, 2020
4eed3b0
test/dd: Make the AIO file smaller
Aug 19, 2020
59c1e16
test/dd: Lower the number of block size tests
Aug 19, 2020
43ad7fe
lib/nvmf: Fixes stuck subsystem RPC
Aug 19, 2020
98678ab
vm_setup: Add some missing dependencies
Jun 17, 2020
fa729fd
configure: add a tips for installing libubsan
wanghailiangx Aug 18, 2020
6127b1a
test/common: use sudo to remove old temp files
Aug 17, 2020
09d6e90
nvme_perf: Add warmup
AlekseyMarchuk Aug 14, 2020
78ba12e
module/blobfs: fix segmentation fault when fuse mount fail
wangshilong Aug 20, 2020
4cc04a1
lib/nvmf: Add nvmf_subsystem_get_controllers RPC
Aug 19, 2020
6f22657
lib/nvmf: Optionalize ANA reporting feature
Aug 19, 2020
1da94ed
rpc/nvmf: Add ana_reporting parameter to nvmf_create_subsystem RPC
Aug 19, 2020
5d5a907
nvme: don't assert on custom transport
Aug 20, 2020
01b6bd8
nvmf: fix the associate timeout value
Aug 20, 2020
361cddf
nvme/nvme_pcie: Remove unused codes.
yidong0635 Aug 20, 2020
ed7848f
blob: handle overlapping open case
jimharris Aug 19, 2020
ce83fc2
lib/nvme: remove qpair from ctrl list in connect fail path
Seth5141 Aug 18, 2020
0b4d8bf
test/nvmf: Always remove lingering soft rxe devices
Aug 17, 2020
8e43a26
rxe_cfg_small: Remove unused function
Aug 17, 2020
58f43df
nvmf/rdma: Handle several ibv events in a row
AlekseyMarchuk Aug 17, 2020
8bec9fe
nvme/rdma: Remove unused spdk_nvme_send_wr_list
AlekseyMarchuk Aug 17, 2020
c3fd3e9
lib/accel: change task alloc from global mempool->per chan list
peluse Aug 11, 2020
24b6d3c
test/nvmf: add a test for attaching to controllers.
Seth5141 Jul 31, 2020
d1fc288
scripts/nvmf: add dpdk memory measurements
Jul 28, 2020
23040b8
test/common: Log all system uevents during autotest
Aug 3, 2020
fdf2490
nvmf/rdma: Don't destroy qpair if rdma_accept fails
AlekseyMarchuk Jul 27, 2020
5adf099
nvme: don't send Identify NS ID Descriptor List to inactive NS
Aug 20, 2020
c7f8e73
scripts/nvmf_perf: fix syntax error
Aug 21, 2020
d4d2e31
nvme/tcp: Make the return value consistent.
Aug 17, 2020
34cbbf3
scripts/pkgdep: Add bash-completion for SPDK apps and tools
Jul 25, 2020
8bb7511
examples/nvme: don't print CUSTOM transport as unknow trtype
Aug 21, 2020
bb0f64d
Vagrant: update the used Bdev
Comphix Aug 18, 2020
0e91da2
Script: update the JSON content generation
Comphix Aug 20, 2020
846ca67
lib/blob: remove requirement for md_page alignment
tomzawadzki Aug 19, 2020
d84ae74
lib/event: fix a wrong deletion
dong-liuliu Aug 21, 2020
79f508b
iscsi: set last_nopin when connection is established
jimharris Aug 21, 2020
178291a
nvme: read all uevents
jimharris Aug 20, 2020
af4fa14
module/bdev_raid: remove an ERROR log which occurs every times
wanghailiangx Aug 21, 2020
2b16cff
bdev: free g_bdev_examine_allowlist before the app exit
yupeng0921 Aug 21, 2020
8fdd4d7
doc/spdk_top: add spdk_top documentation
Jun 23, 2016
3797a38
test/nvmf: [multicontroller] Don't wait indefinitely for the controllers
Aug 24, 2020
f574014
test/common: Add small function for printing and purging files
Aug 24, 2020
e1dc45b
test/bdevperf: Keep bdevperf output around
Aug 24, 2020
e7a0a45
bdev/rbd: put back io_channel in create_cb
dong-liuliu Aug 19, 2020
316f92d
lib/nvme: pass up fabric connect rc to app.
Seth5141 Aug 18, 2020
3092006
lib/nvme: pass up rc from failed connect in reset.
Seth5141 Aug 21, 2020
b5fd1f8
scripts/pkgdep: Fix mkdir liburing in clearlinux
Aug 21, 2020
61a12db
doc: add SPDK Vhost 20.07 performance report entry
Aug 24, 2020
d1b0a44
doc: add SPDK NVMe-oF RDMA 20.07 performance report entry
Aug 25, 2020
e25747e
doc: split bdev userguide update
mkenguva Aug 6, 2020
150339c
cpuset: fix parse_mask
jimharris Aug 25, 2020
6874067
test/blobfs: Allocate enough memory for db_bench tests
Aug 26, 2020
dd8cbf8
test/common: Fix matching on core dump's name
Aug 26, 2020
9620760
script/vagrant: vagrant file - checkboxtype refactoring
xjjx Jul 22, 2020
0b46c77
script/vagrant: avoid unnecessary strings interpolation
xjjx Aug 10, 2020
e08eae2
script/vagrant: split into functions - setup proxy
xjjx Aug 10, 2020
b5fea13
script/vagrant: split into functions - copy functions
xjjx Aug 10, 2020
d0426c8
script/vagrant: split into functions - spdk local copy of nfs
xjjx Aug 10, 2020
dc7f320
script/vagrant: split into functions - clear cflags
xjjx Aug 10, 2020
221c5b5
script/vagrant: split into functions - setup disks functions
xjjx Aug 10, 2020
211be73
script/vagrant: split into functions - setup ssh and vagrant-cachier
xjjx Aug 10, 2020
b9e3b91
script/vagrant: split into functions - deploy test vm
xjjx Aug 10, 2020
2e61773
script/vagrant: split into functions - setup virtualbox
xjjx Aug 10, 2020
282b194
script/vagrant: split into functions - setup libvirt
xjjx Aug 10, 2020
dca3fdc
script/vagrant: vagrantfile refactoring
xjjx Aug 10, 2020
3f190fe
nvmf/subsystem: find intermediate state in helper function.
Seth5141 Jul 17, 2020
60f3b6b
rxe_cfg_small: Align the way how devices are added|removed
Aug 17, 2020
23dbe85
test/common: Make sure autotest clears rxe devices upon exit
Aug 19, 2020
0ed8536
isa-l: update submodule to v2.29.0
tomzawadzki Aug 20, 2020
b3e230a
ocf: update submodule to v20.03.1
tomzawadzki Aug 21, 2020
477d950
env: fix pci driver registration
jkalwas Aug 22, 2020
9c08d43
nvme_spec: Update for asymmetric namespace access change notices
Aug 23, 2020
6206e46
lib/nvme: Set ANA transition time value
Aug 24, 2020
59ad0a0
examples/nvme_identify: Print ANA config in Identify Control Data Str…
Aug 24, 2020
438fa38
lib/iscsi: Check if data comes really after processing logout request
Aug 25, 2020
767df12
lib/iscsi: Increment StatSN when sending asynchronous logout request
Aug 26, 2020
ea2000c
event: disable cpumask check
Aug 22, 2020
83d830e
test/blobfs: Call process_core() from rocksdb.sh test
Aug 26, 2020
b2c86b3
vhost/vhost_scsi: Fix coredump issue for non-scsi device.
yidong0635 Aug 27, 2020
cb6151c
lib/log: fully remove log backtrace prints
tomzawadzki Aug 27, 2020
7049fe9
perf/nvmf: Allow using multiple nullblock devices
Aug 21, 2020
66f42f3
perf/nvmf: set protection information on null bdevs
Aug 24, 2020
f252ff1
perf/nvmf: add option for TCP dif_insert_or_strip
Aug 24, 2020
a8e5914
perf/nvmf: remove pylin no-member error
Aug 24, 2020
a79e33e
test/nvmf: [multicontroller] Run bdevperf tests without data verifica…
Aug 27, 2020
cf99beb
sock/posix: Fix the overflow issue of sendmsg_index
Aug 27, 2020
d267d0e
lib/log: add RPC to toggle timestamps
Aug 26, 2020
63ebdf5
test/nvmf: Use NOT() for the negative multicontroller test
Aug 25, 2020
7932bcd
test/common: Fix typo in process_core()
Aug 28, 2020
7ff4e2a
bdev/null: make md_size inclusive for dif_type
Aug 27, 2020
25359fb
test/iscsi_tgt: Virtual network made of three interfaces using veth a…
Aug 21, 2020
a6b43f8
test/iscsi_tgt: Test login redirection
Aug 17, 2020
70a2063
lib/iscsi: Remove a DEBUG_LOG which shows error when target is not found
Aug 26, 2020
b7d508f
blob: use spdk_bit_array_load/store_mask functions
jimharris Aug 27, 2020
2d87587
blob: claim clusters inline during initialization
jimharris Aug 27, 2020
f5b949d
blob: simplify free cluster counting in inflate path
jimharris Aug 27, 2020
8ba7450
blob: simplify check for available cluster count
jimharris Aug 27, 2020
3fe748f
blob: move bs_release_cluster
jimharris Aug 27, 2020
d70ecbe
scripts/pkgdep: [rhel] Don't use hard link for a python binary
Aug 20, 2020
f724f6b
scripts/pgkdep: [rhel] Use python36
Aug 20, 2020
1338e69
scripts/pkgdep: [rhel] Configure EPEL repo prior installing any packages
Aug 20, 2020
e989faa
scripts/pkgdep: [rhel] Add warning about working under RHEL system
Aug 20, 2020
49601c0
test/check_so_dep: skip rdma dependency if not configured with RDMA
tomzawadzki Aug 28, 2020
03aa899
lib/sock: Fix the coredump issue in sock_map_realese
Aug 31, 2020
dd3d580
script/rpc: fix bdev_set_qos_limit's usage error
JimboLuCN Aug 31, 2020
3aaf8e0
nvmf: Stop pg poller when all qpairs are destroyed
AlekseyMarchuk Aug 28, 2020
4803dc3
Blobfs: add an assert for the memory allocation
Comphix Sep 1, 2020
58216dd
lib/nvme: fix mem leak in req submit.
Seth5141 Aug 24, 2020
51b5fa8
scripts/setup: Group all devices into respective arrays
Aug 21, 2020
69ae10f
scripts/setup: Unify block name lookup
Aug 21, 2020
8550161
scripts/setup: Use modalias to verify the bdf's driver
Aug 21, 2020
5ea5494
scripts/setup: Commonize the driver binding and BDF verification|status
Aug 21, 2020
904ac49
scripts/setup: Configure binding of the controllers in parallel
Aug 21, 2020
d2cbb15
scripts/common: Don't cache pci vendor,device ids separately
Aug 27, 2020
2dcb056
pkgdep/git: [QAT] Replace linux/cryptohash.h with crypto/sha.h
Sep 2, 2020
1031472
test/nvme_perf: add p90 latency to gathered metrics
Sep 1, 2020
fe87dca
mk: Remove the content of build/lib in "clean" target
AlekseyMarchuk Aug 31, 2020
7b16ba2
virtio: use correct number of entries field
Sep 1, 2020
d653a65
vhost: restart session after KICK socket message
Sep 2, 2020
cff7c8f
test/vhost: workaround issue #1583 by specifying --vq-count
tomzawadzki Sep 1, 2020
3a8c976
dpdk: update submodule to DPDK 20.08
tomzawadzki Aug 20, 2020
ef3f0d9
nvme/cuse: refactor read/write to pass cuse_device and block_size
tomzawadzki Sep 2, 2020
ccdbd2e
nvme/cuse: fix nblocks and block_size in rw path
tomzawadzki Sep 2, 2020
58da622
lib/nvmf: Add nvmf_ctrlr_async_event_ana_change_notice() to notice AN…
Sep 1, 2020
e21de9a
lib/nvmf: Add trid to struct spdk_nvmf_qpair
Sep 1, 2020
7bcff37
lib/nvmf: Add subsystem_listener to struct spdk_nvmf_ctrlr
Sep 1, 2020
5b27db6
lib/nvmf: Check if I/O qpair is on the same listener as admin qpair
Sep 1, 2020
4688f08
lib/nvmf: Add ANA state to struct spdk_nvmf_subsystem_listener
Sep 1, 2020
68f1681
lib/nvmf: Control I/O and some admin commands according to ANA state
Sep 2, 2020
4aa0bb6
nvme/pci: Check for command completions after deleting submission queue
Aug 20, 2020
102ab66
doc/nvmf: Fix the section "Using RPCs" not to use deprecated --max-qp…
Sep 4, 2020
aeb693c
bdev/gpt: Change ERRLOG to DEBUGLOG to show interleaved metadata is n…
Sep 4, 2020
1c8a890
scripts/setup: Reorder the status's header
Sep 2, 2020
4f1701f
scripts: Add tool for keeping uevents in sync
Aug 3, 2020
0897e4d
scripts/setup: Keep track of the driver given device is bound to
Sep 2, 2020
44775a8
scripts/setup: Add env switch for block dev sync
Sep 2, 2020
d6c499f
scripts/setup: Fix check for mounted devices
Sep 3, 2020
342c08d
scripts/setup: Define fallback driver for each device type
Sep 3, 2020
f7b4dd3
pkgdep: Add a workaround for Centos7.x aarch64
AlekseyMarchuk Aug 31, 2020
f1896c3
pkgdep/yum: Add missing call to sudo
Sep 1, 2020
8a0d613
pkgdep/dnf: Refresh repo on Centos8
Sep 1, 2020
f2d9589
pkgdep/yum: Attempt to install wget prior installing nbd rpm
Sep 1, 2020
3fdfea7
config/pkgdep: Allow for sourcing OS-based routines
Sep 1, 2020
494dc66
mk: don't link env if not needed
darsto Jul 16, 2020
d8190d0
lib/env_dpdk: replace printf() and fprintf(stderr,) usage
Apr 20, 2020
1e337a1
nvmf/subsystem: New path when we fail to change the subsystem state.
Seth5141 Jul 17, 2020
1b249c3
lib/nvmf: modify add_ns rpc to roll back changes in failure.
Seth5141 Jul 17, 2020
98145aa
lib/nvmf: Replace raw number 0xffffffff by SPDK_NVME_GLOBAL_NS_TAG
Sep 4, 2020
f1c4238
lib/nvmf: Factor out internal of rpc_nvmf_subsystem_get_controllers()…
Sep 2, 2020
7444482
test/nvmf: Remove duplicated code target second port.
yidong0635 Sep 4, 2020
ba773a5
nvme: fix keep alive issues in host side
glodfish-zg Sep 7, 2020
2431578
nvme: increase size of uevent buffer to 1MB
jimharris Sep 4, 2020
8ef9f7b
pkgdep/rhel: Add ELRepo, Ceph repos for Centos, RHEL
Sep 1, 2020
97ab091
pgkdep/rhel: Disable liburing on Centos7|RHEL7
Sep 1, 2020
6182bff
pkgdep/common: Fix liburing's .so lookup
Sep 1, 2020
b806675
scripts/setup remove flakiness from tests
Sep 2, 2020
903fdb7
nvmf/transport: Use mempool_get_bulk to feel pg cache
AlekseyMarchuk Aug 21, 2020
e9b9510
nvmf/rdma/tcp: Use spdk_env_get_core_count to estimate cache size
AlekseyMarchuk Aug 21, 2020
c8c73af
lib/blob: add clearing extents to persist path
tomzawadzki Sep 3, 2020
3c31f6d
blob_ut: add create_loop
jimharris Sep 2, 2020
bc03942
lib/blob: explicitly pass ctx where possible
tomzawadzki Sep 4, 2020
a9c0fdd
bdev/rbd: Use the non-timer poller.
Sep 7, 2020
83eb352
lib/nvmf: Add nvmf_subsystem_get_qpairs RPC
Sep 3, 2020
151eff4
lib/nvmf: Remove unused structures and macro constants in nvmf_rpc.c
Sep 4, 2020
a60865b
doc/jsonrpc: Add missing content for the existing nvmf_subsystem_remo…
Sep 5, 2020
9c1d648
lib/nvmf: Add nvmf_subsystem_get_listeners RPC
Sep 3, 2020
bd8afe1
examples/ioat: add an assertion for the memory allocation
Comphix Sep 9, 2020
ba3dcb6
doc: add SPDK NVMe-oF TCP 20.07 performance report entry
Sep 10, 2020
69d5d77
test/vm_setup: various improvements
xjjx Jul 27, 2020
2188940
test/vm_setup: add vagrant-install option
xjjx Jul 29, 2020
8ea52a4
test/vm_setup: install vagrant dependencies
xjjx Jul 29, 2020
90477ac
test/pkgdep: move ibverbs-utils and rdmacm-utils to package list
Sep 8, 2020
e699355
bdev/rbd: Still use rbd_aio_read/write if iovcnt=1
Sep 9, 2020
5c86129
nvme: warn if found UUID descriptor length is incorrect
Sep 9, 2020
174a5fe
nvme: add initial namespace types support
Sep 7, 2020
2c80fce
sock/uring: enable "enable_recv_pipe" in uring sock
Sep 10, 2020
ebb903d
sock/uring: Add the support for enable_quickack
Sep 10, 2020
a6db2f3
sock: enable placement_id configuration in sock layer
Sep 10, 2020
6c6efee
lib/nvme: Set Add ANA log page to be supported by controller
Sep 10, 2020
ce7eee9
lib/nvme: Enable Async ANA Change Notice if supported
Sep 10, 2020
ae20721
nvmf: remove request exec backdoor
jkalwas Sep 12, 2020
8387e97
nvmf: simplify listen_associate interface
jkalwas Sep 13, 2020
fd5e781
nvme: don't loop MMIO reads if the controller is already in failed state
Sep 10, 2020
2b29a2b
bdev/compress: rename RPC to match standard naming
peluse Sep 9, 2020
7ad510b
doc: add jsonrpc docs for compress bdev RPCs
peluse Sep 10, 2020
ded02d0
blob: batch used_cluster_mutex operations
jimharris Sep 2, 2020
835fbef
blob: simplify bs_allocate_cluster
jimharris Aug 27, 2020
0a19f43
blob: move spdk_bs_load_ctx earlier in the file
jimharris Aug 28, 2020
39caf84
blob: consolidate init, load and dump ctx objects
jimharris Aug 28, 2020
04eb8e0
blob: allocate ctx in bs_alloc
jimharris Aug 28, 2020
0d2a5bb
util: add spdk_bit_pool
jimharris Aug 25, 2020
bd16f57
blob: switch to bit_pool for tracking used_clusters
jimharris Aug 28, 2020
8ff8bf0
lib/nvmf: add synchronization to subsystem state change.
Seth5141 Aug 13, 2020
848e9e2
lib/nvmf: modify subsystem_state_change.
Seth5141 Aug 13, 2020
4e06de6
nvme: expose functions to manage queue identifiers
jkalwas Aug 22, 2020
195fb4e
bdev/aio: assign new io-ctx to each io-ch
dong-liuliu Aug 15, 2020
20df041
test/nvme_perf: use float arithmetics
Sep 1, 2020
c2f804d
test/nvme_perf: fix kernel fio results maths
Sep 8, 2020
67d4ef8
test/nvme_perf: remove "case" blocks from results parsing
Sep 8, 2020
e4ff3a5
test/nvme_perf: add iodepth_batch options for fio tests
Sep 8, 2020
c66275c
lib/sock: do not fail spdk_sock_flush() on ENOBUFS
gila Sep 9, 2020
523f2a8
lib/nvmf: Set up ANA Change Notice
Sep 7, 2020
071d80f
lib/nvmf: Add an internal API nvmf_subsystem_set_ana_state()
Sep 13, 2020
c8cb51d
lib/nvmf: Add nvmf_subsystem_listener_set_ana_state RPC
Sep 5, 2020
5cf0c37
lib/nvmf: Use macro constant for ANA descriptor to avoid variable len…
Sep 7, 2020
0ecb36c
test/nvmf: Use $USER instead of logname to follow other cases
Sep 7, 2020
8701f63
test/nvmf_example: Not echo but substitute directly to NVMF_EXAMPLE v…
Sep 7, 2020
5363eb3
lib/blob: fix an uint32_t overflow in blobstore init
Sep 6, 2020
0b510f0
scripts/vagrant: Add network interface for openstack tests
Sep 9, 2020
eb78b90
nvme/rdma: Check that SGL descriptors fit into ICD
AlekseyMarchuk Sep 9, 2020
2e2a0b9
scripts/vagrant: Change host ip in local.conf
Sep 9, 2020
8db652e
mk: Build crypto/qat when --with-reduce is specified
AlekseyMarchuk Sep 11, 2020
dc88d13
nvme/tcp: Move tcp_req ordering bits to union
AlekseyMarchuk Sep 1, 2020
e7c92b2
nvme/tcp: Rename r2t_recv, set this flag when send_ack is 0
AlekseyMarchuk Sep 1, 2020
a066281
blobfs/fuse: add 'event' as dependency for blobfs_bdev
tomzawadzki Aug 28, 2020
b70fcb4
Merge branch 'master' into rfc-vfio-over-socket
Sep 16, 2020
88201a3
nvmf/muser: The listen_associate callback was made synchronous
Sep 16, 2020
74c3449
nvmf/muser: Immediately unlink domain socket after opening
Sep 16, 2020
6c9ce74
nvmf/muser: Delay admin CONNECT until first register write
Sep 16, 2020
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
  •  
  •  
  •  
157 changes: 130 additions & 27 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,40 @@
# Changelog

## v20.07: (Upcoming Release)
## v20.10: (Upcoming Release)

### nvmf
### bdev

The NVMe-oF target no longer supports connecting scheduling configuration and instead
always uses what was previously called "transport" scheduling.
A new API was added `bdev_examine_bdev` that allows users to examine a
bdev explicitly. It can be used only if auto_examine is disabled.

`spdk_nvmf_tgt_accept` no longer exists. The accept process now occurs automatically after
the creation of an nvmf target and queue pairs are assigned to poll groups by the underlying
transport. Further, `spdk_nvmf_transport_ops` has changed such that the accept function
pointer no longer takes a function pointer as an argument. Instead, transports should call
`spdk_nvmf_tgt_new_qpair` whenever they previously would have called that callback.

### nvme
Updated DPDK submodule to DPDK 20.08.

Add `opts_size` in `spdk_nvme_ctrlr_opts` structure in order to solve the compatiblity issue
for different ABI version.
### isa-l

### RPC
Updated ISA-L submodule to v2.29.0.

Command line parameters `-r` and `--rpc-socket` will longer accept TCP ports. RPC server
must now be started on a Unix domain socket. Exposing RPC on the network, as well as providing
proper authentication (if needed) is now a responsibility of the user.
### ocf

### build
Updated OCF submodule to v20.03.1

The fio plugins now compile to `build/fio` and are named `spdk_bdev` and `spdk_nvme`.
Existing fio configuration files will need to be updated.
### sock

The `enable_placement_id` field was added in the struct spdk_sock_impl_opts to
make the placement_id feature configurable by users. The default setting is
not enabled.

### rpc

A new optional parameter `enable_placement_id` was added to the `sock_impl_set_options`
RPC.

## v20.07: SPDK CSI driver, new accel_fw commands, I/O abort support

### accel

Expand All @@ -42,15 +49,87 @@ A new capability, compare, was added via `spdk_accel_submit_compare`.

The software accel engine implemenation has added support for compare.

Several APIs were added to `accel_engine.h` to support batched submission
of operations.

Several APIs were added to `accel_engine.h` to support dualcast operations.

### accel_fw

The accel_fw was updated to no longer require the app to allocate an
accel_task on its behalf. All public APIs now take a callback arg as
the parameter that used to be the accel_task.

The accel_fw API `spdk_accel_task_size` was removed as it is no longer
required.

The accel_fw was updated to support compare, dualcast, crc32c.

The accel_fw introduced batching support for all commands in all plug-ins.
See docs for detailed information.

### bdev

A new API `spdk_bdev_abort` has been added to submit abort requests to abort all I/Os
whose callback context match to the bdev on the given channel.

### build

The fio plugins now compile to `build/fio` and are named `spdk_bdev` and `spdk_nvme`.
Existing fio configuration files will need to be updated.

### dpdk

Updated DPDK submodule to DPDK 19.11.2, which includes fixes for DPDK vulnerabilities:
CVE-2020-10722, CVE-2020-10723, CVE-2020-10724, CVE-2020-10725, CVE-2020-10724.
Updated DPDK submodule to DPDK 20.05.

### env

Several new APIs have been added to provide greater flexibility in registering and
accessing polled mode PCI drivers. See `env.h` for more details.

### idxd

The idxd library and plug-in module for the accel_fw were updated to support
all accel_fw commands as well as batching. Batching is supported both
through the library and the plug-in module.

IDXD engine support for CRC-32C has been added.

### ioat

A new API `spdk_ioat_get_max_descriptors` was added.

### nvme

An `opts_size`element was added in the `spdk_nvme_ctrlr_opts` structure
to solve the ABI compatiblity issue between different SPDK version.

A new API `spdk_nvme_ctrlr_cmd_abort_ext` has been added to abort previously submitted
commands whose callback argument match.

Convenience functions, `spdk_nvme_print_command` and `spdk_nvme-print_completion` were added
to the public API.

A new function, `spdk_nvmf_cuse_update_namespaces`, updates the cuse representation of an NVMe
controller.

A new function `qpair_iterate_requests` has been added to the nvme transport interface. ALl
implementations of the transport interface will have to implement that function.

### nvmf

The NVMe-oF target no longer supports connecting scheduling configuration and instead
always uses what was previously called "transport" scheduling.

`spdk_nvmf_tgt_accept` no longer takes a function pointer as an argument. New connections
are automatically assigned to poll groups by the underlying transport. Further,
`spdk_nvmf_transport_ops` has changed such that the accept function pointer no longer
takes a function pointer as an argument. Instead, transports should call
`spdk_nvmf_tgt_new_qpair` whenever they previously would have called that callback.

The NVMe-oF target now supports aborting any submitted NVM or Admin command. Previously,
the NVMe-oF target could abort only Asynchronous Event Request commands.

### rdma

A new `rdma` library has been added. It is an abstraction layer over different RDMA providers.
Expand All @@ -61,10 +140,19 @@ Using mlx5_dv requires libmlx5 installed on the system.
### rpc

Parameter `-p` or `--max-qpairs-per-ctrlr` of `nvmf_create_transport` RPC command accepted by the
rpc.py script is deprecated, new parameter `-m` or `--max-io-qpairs-per-ctrlr` is added.
rpc.py script is deprecated, new parameter `-m` or `--max-io-qpairs-per-ctrlr` was added.

Parameter `max_qpairs_per_ctrlr` of `nvmf_create_transport` RPC command accepted by the NVMF target
is deprecated, new parameter `max_io_qpairs_per_ctrlr` is added.
Added `sock_impl_get_options` and `sock_impl_set_options` RPC methods.

Command line parameters `-r` and `--rpc-socket` will longer accept TCP ports. RPC server
must now be started on a Unix domain socket. Exposing RPC on the network, as well as providing
proper authentication (if needed) is now a responsibility of the user.

The `bdev_set_options` RPC has a new option, `bdev_auto_examine` to control the auto examine function
of bdev modules.

New RPCs `sock_impl_get_options` and `sock_impl_set_options` been added to expose new socket features.
See `sock` section for more details.

### sock

Expand All @@ -73,11 +161,26 @@ options. Options can be set independently for each implementation.

Added `recv_buf_size` and 'send_buf_size' socket layer options. They are used only in posix implementation.

Added `uring` based socket implementation, the code is located in module/sock/uring. This feature is only
available in Linux which requires kernel version is greater than 5.4.3. Currently, our CI pool added the uring
based socket tests for iSCSI target and also the tests for SPDK NVMe-oF tcp transport.

Added `enable_recv_pipe` socket layer option to allow disabling of double buffering on receive.
New option is used only in posix implementation.

Added `enable_zerocopy_send` socket layer option to allow disabling of zero copy flow on send.
New option is used only in posix implementation.

### util

Some previously exposed CRC32 functions have been removed from the public API -
`spdk_crc32_update`, `spdk_crc32_table_init`, and the `spdk_crc32_table` struct.

### vhost

The function `spdk_vhost_blk_get_dev` has been removed.

## v20.04:
## v20.04: SPDK Top, IDXD, NVMe qpair groups

IDXD engine support for compare has been added.

Expand Down Expand Up @@ -280,7 +383,7 @@ Poll groups per session have been replaced by SPDK threads per vhost controller.
A new function, `spdk_vmd_fini`, has been added. It releases all resources acquired by the VMD
library through the `spdk_vmd_init` call.

## v20.01
## v20.01: Optimized thin provisioning, FTL bdev, VMD hot plug, FUSED support

### bdev

Expand Down Expand Up @@ -470,7 +573,7 @@ code for fused compare-and-write operation.

Added spdk_bdev_get_acwu function for getting block device atomic compare and write unit size.

## v19.10
## v19.10: Zoned bdev API, Opal bdev, NVMe character devices

### rpc

Expand Down Expand Up @@ -700,7 +803,7 @@ New cache modes added to use via RPC, wi - write invalidate and wa - write aroun

New version of OCF provides fully asynchronous management API.

## v19.07
## v19.07: NVMe-oF FC Transport, VMD, NVMe-oF Persistent reservations, Bdev I/O with separate metadata

### ftl

Expand Down Expand Up @@ -976,7 +1079,7 @@ with SPDK thread when necessary.
Added spdk_thread_destroy() to allow framework polling the thread to
release resources associated with that thread.

## v19.04
## v19.04: Compression bdev, Notification library, NVMe Opal support

### nvme

Expand Down Expand Up @@ -1197,7 +1300,7 @@ Added "reduce" block compression scheme based on using SSDs for storing
compressed blocks of storage and presistent memory for metadata. Please see
[compression](https://spdk.io/doc/bdev.html) for more details.

## v19.01
## v19.01: NVMe-oF TCP/IP Transport, Open Channel SSD Flash Translation Layer, Caching bdev based on OCF, ISA-L Support, DIF/DIX library

### ocf bdev

Expand Down Expand Up @@ -1452,7 +1555,7 @@ JSON RPC client is now running in non-blocking mode. Requests are sent and recei
JSON RPC server can now recieve a callback on connection termination or server shutdown using `spdk_jsonrpc_conn_add_close_cb`
and `spdk_jsonrpc_conn_del_close_cb`.

## v18.10
## v18.10: Dynamic memory allocation, Crypto Virtual Bdev, jsonrpc-client, SPDKCLI iSCSI and NVMe-oF support

### nvme

Expand Down Expand Up @@ -1649,7 +1752,7 @@ in QEMU.
The SPDKCLI interactive command tool for managing SPDK is no longer considered experimental.
Support for the iSCSI and NVMe-oF targets has been added.

## v18.07
## v18.07: Raid, Infrastructure Improvements, Bug Fixes

### bdev

Expand Down
4 changes: 0 additions & 4 deletions CONFIG
Original file line number Diff line number Diff line change
Expand Up @@ -125,10 +125,6 @@ CONFIG_PMDK_DIR=
# Enable the dependencies for building the compress vbdev
CONFIG_REDUCE=n

# Build with VPP
CONFIG_VPP=n
CONFIG_VPP_DIR=

# Requires libiscsi development libraries.
CONFIG_ISCSI_INITIATOR=n

Expand Down
5 changes: 5 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
# BSD LICENSE
#
# Copyright (c) Intel Corporation.
# Copyright (c) 2020, Mellanox Corporation.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
Expand Down Expand Up @@ -49,6 +50,9 @@ DIRS-$(CONFIG_ISAL) += isalbuild
cc_version cxx_version .libs_only_other .ldflags ldflags install \
uninstall

# Workaround for ninja. See dpdkbuild/Makefile
export MAKE_PID := $(shell echo $$PPID)

ifeq ($(SPDK_ROOT_DIR)/lib/env_dpdk,$(CONFIG_ENV))
ifeq ($(CURDIR)/dpdk/build,$(CONFIG_DPDK_DIR))
ifneq ($(SKIP_DPDK_BUILD),1)
Expand Down Expand Up @@ -81,6 +85,7 @@ clean: $(DIRS-y)
$(Q)rm -rf build/fio
$(Q)rm -rf build/examples
$(Q)rm -rf build/include
$(Q)find build/lib ! -name .gitignore -type f -delete

install: all
$(Q)echo "Installed to $(DESTDIR)$(CONFIG_PREFIX)"
Expand Down
1 change: 1 addition & 0 deletions app/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ DIRS-y += spdk_lspci
DIRS-y += spdk_top
ifeq ($(OS),Linux)
DIRS-$(CONFIG_VHOST) += vhost
DIRS-y += spdk_dd
endif

.PHONY: all clean $(DIRS-y)
Expand Down
2 changes: 1 addition & 1 deletion app/iscsi_tgt/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ CFLAGS += -I$(SPDK_ROOT_DIR)/lib
C_SRCS := iscsi_tgt.c

SPDK_LIB_LIST = $(ALL_MODULES_LIST)
SPDK_LIB_LIST += event_bdev event_accel event_iscsi event_net event_scsi event_vmd event
SPDK_LIB_LIST += $(EVENT_BDEV_SUBSYSTEM) event_iscsi event_net event_scsi event
SPDK_LIB_LIST += jsonrpc json rpc bdev_rpc bdev iscsi scsi accel trace conf
SPDK_LIB_LIST += thread util log log_rpc app_rpc net sock notify

Expand Down
2 changes: 1 addition & 1 deletion app/iscsi_top/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@ include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk

APP = iscsi_top
SPDK_NO_LINK_ENV = 1

CXXFLAGS += $(ENV_CXXFLAGS)
CXXFLAGS += -I$(SPDK_ROOT_DIR)/lib

CXX_SRCS := iscsi_top.cpp
Expand Down
2 changes: 1 addition & 1 deletion app/nvmf_tgt/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ APP = nvmf_tgt
C_SRCS := nvmf_main.c

SPDK_LIB_LIST = $(ALL_MODULES_LIST)
SPDK_LIB_LIST += event_bdev event_accel event_nvmf event_net event_vmd
SPDK_LIB_LIST += $(EVENT_BDEV_SUBSYSTEM) event_nvmf event_net
SPDK_LIB_LIST += nvmf event log trace conf thread util bdev accel rpc jsonrpc json net sock
SPDK_LIB_LIST += app_rpc log_rpc bdev_rpc notify

Expand Down
1 change: 1 addition & 0 deletions app/spdk_dd/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
spdk_dd
47 changes: 47 additions & 0 deletions app/spdk_dd/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#
# BSD LICENSE
#
# Copyright (c) Intel Corporation.
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# * Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
# * Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in
# the documentation and/or other materials provided with the
# distribution.
# * Neither the name of Intel Corporation nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#

SPDK_ROOT_DIR := $(abspath $(CURDIR)/../..)
include $(SPDK_ROOT_DIR)/mk/spdk.common.mk
include $(SPDK_ROOT_DIR)/mk/spdk.modules.mk

APP = spdk_dd

C_SRCS := spdk_dd.c

SPDK_LIB_LIST = $(ALL_MODULES_LIST)
SPDK_LIB_LIST += event_sock event_bdev event_accel event_vmd
SPDK_LIB_LIST += bdev accel event thread util conf trace \
log jsonrpc json rpc sock notify

include $(SPDK_ROOT_DIR)/mk/spdk.app.mk
Loading