364 Commits

Author SHA1 Message Date
Konrad Sztyber
933bf632d6 event/vmd: write_config_json support
This patch adds support for saving VMD subsystem's configuration to a
JSON formatted file.  It allows saving and then loading configuration
with VMD enabled without having to send the `enable_vmd` RPC.

Change-Id: I59b380ec1e1f25f60f45d2363724ed7ac78c365c
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473405
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2019-11-07 23:05:38 +00:00
Yao Liu
6f3ca0804e bdev/uring: try without O_DIRECT flag if non-disk file first open fails
Signed-off-by: Yao Liu <yotta.liu@ucloud.cn>
Change-Id: I74b5b146c23e5395d26f80ca4f950631bd4721cb
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473373
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-11-07 23:05:06 +00:00
Yao Liu
adf19fe6a3 bdev/uring: open bdev file with O_RDWR flag
Without this flag, write requests will lead to I/O errors.

Signed-off-by: Yao Liu <yotta.liu@ucloud.cn>
Change-Id: I39a453683f7b2cbcd49fb8e0b532bf09f9180a8c
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473372
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-11-07 23:05:06 +00:00
Xiaodong Liu
138e6daec3 rpc/blobfs: add cache size setting rpc
This RPC method can be used to set cache size of
blobfs, in case a smaller or larger memory scale
is requred by cache pool.

Change-Id: I8046c7caeaa15c67825f86d14ae0b79395d51daf
Signed-off-by: Xiaodong Liu <xiaodong.liu@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471870
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-07 00:33:25 +00:00
Artur Paszkiewicz
0ae5a89dc4 module/raid: unify submit_request function signatures
Pass raid_bdev_io instead of spdk_bdev_io.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I8ecc39abafe54a7bc5034caa126f961c444230a2
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471084
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-06 14:57:25 +00:00
Artur Paszkiewicz
77b8618ecc module/raid: remove redundant functions
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I8d872e4cf8911f20e9d2758ec9c6a5e397d231c4
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471083
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-06 14:57:25 +00:00
Artur Paszkiewicz
485c79126c module/raid: put raid_io initialization in one place
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ie2b647031d00624e3faff57830c6e7e0e645a394
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471082
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2019-11-06 14:57:25 +00:00
Artur Paszkiewicz
152cce0d53 module/raid: replace ch with raid_ch in struct raid_bdev_io
The original io channel is not used directly, only its context (struct
raid_bdev_io_channel) which contains member bdevs' io channels. Store it
directly in raid_bdev_io to eliminate conversions.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ibff64f75ceff9bf1d431cc3071dfc99f374107ea
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471081
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-11-06 14:57:25 +00:00
Artur Paszkiewicz
706029d5be module/raid: register RAID modules
Add the ability to register RAID modules. Supported RAID levels are
determined based on the list of registered modules.

The module descriptor structure will hold the function pointers for
RAID-level specific operations.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I7a579ac381f1764b427a48d1dc31260725217c4e
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471080
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-06 14:57:25 +00:00
paul luse
7c77c29268 module/compress: handle enqueue errors
A recent change to the compression API means that we can no longer
assume that rejection from the API means that it was busy. We need
to only queue operations that were from the busy condition and
fail others.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I7fa5d27559eacdf1bdf6982bdc142939333076ae
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472465
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-11-06 14:49:37 +00:00
paul luse
fede944d8c module/compress: small code cleanup in poller
Previously used while loop with a break to pull one entry off of
the queued list. Clarrify comment and get rid of while/break.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: Ifdedf988072a4d79b4d84ed6fef2279d4883ee54
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472456
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-06 14:49:37 +00:00
Konrad Sztyber
af4e2a3277 lib/vmd: hotplug / hotremove support
This patch adds support for hotplug / hotremove detection for devices
behind the VMD.  The detection acts similarly to the one implemented for
regular PCIe devices, that is user has to periodically call probe
function.  Additionally, for applications not using SPDK's event
framework, spdk_vmd_hotplug_monitor has to be called periodically as
well.

Change-Id: I9f6839560efcf16c839b01976639d835f119cb47
Signed-off-by: orden smith <orden.e.smith@intel.com>
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472741
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-11-06 14:47:39 +00:00
Konrad Sztyber
2e2f383c3a event/vmd: single module initialization function
Use one function for VMD module initialization, regardless of whether
the initialization is performed via config or RPC.  It'll allow the
module to perform additional steps during its startup that can be shared
between the config / RPC paths.

Change-Id: I1062545a9ea109bd69e01f759e701ca279d0d8de
Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/473271
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-11-06 14:47:39 +00:00
Chunyang Hui
6ed832db34 bdev/nvme: Check error when init Opal
Change-Id: I53034e591a2c549cbc7591bf61ba90be22ddeba5
Signed-off-by: Chunyang Hui <chunyang.hui@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472893
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-11-01 20:11:53 +00:00
Ben Walker
81a47d9820 sock/posix: Move repeated socket allocation code to a function
Change-Id: I71726be5dbe2bb112b7569869dd456ef38f84d9d
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472649
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-01 17:56:16 +00:00
Maciej Szwed
9c64110700 bdev/nvme: Change NVMe controller unregister flow
This patch moves around code related to unregister
flow. This is a preparation for upcoming changes.
It also changes IO device for NVMe bdev to
nvme_bdev_ctrlr to make code clearer.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: Ic97a5b1973923a0cf44ed6c2d51b707dd7628d2c
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468980
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
2019-11-01 14:37:54 +00:00
Maciej Szwed
63c2e95c42 bdev/nvme: NVMe probe ctx free change for async bdevs creation
If specific NVMe mode requires asynchronous bdevs
creation we cannot free probe ctx until all bdevs
are created.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: Ie758f2fa8068c4090b7ce76c73967483441166cd
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468453
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-01 14:37:54 +00:00
Maciej Szwed
81d6bcd02c bdev/nvme: Make bdev_nvm_create_bdevs asynchronous like
With this change the new callback create_bdevs_cb
is introduced. This callback may be used by future
NVMe controllers which require asynchronous creation
of bdevs. This will make future implementation easier
because we will only have to call callback function.

Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: Ib46a38cf71bc783db58be9021efd06fcd547c4d9
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469699
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-01 14:37:54 +00:00
Artur Paszkiewicz
445e667f41 module/raid: make raid_level an enum instead of plain integer
Also add functions to convert it to/from string.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I6f7964d832c308b815150fff39eb3dc5c5ae5853
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471079
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
2019-11-01 14:34:32 +00:00
Artur Paszkiewicz
fc9ca1d0d6 module/raid: move raid0 functions to separate file
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Icf74bda40303b3c38a7c58a5331589f3ec229634
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471078
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
2019-11-01 14:34:32 +00:00
Artur Paszkiewicz
6e6d04b683 module/raid: move duplicated error handling code
Both callers of raid0_submit_rw_request() perform the same error
handling. Put it inside the function and change its return value to
void. After that, raid0_get_curr_base_bdev_index() becomes unused, so
remove it.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ifbe88700e413c3af9bb513538b3026c19e857d74
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471077
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-01 14:34:32 +00:00
Artur Paszkiewicz
1d246e97ab module/raid: remove a redundant function
The raid_bdev_io_submit_fail_process() and
raid_bdev_base_io_submit_fail_process() functions both do essentially
the same thing, so remove the former and replace its usages and rename
the other.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I8eda933e23d4bc840a6740e21a48d9c411998f6d
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471076
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-01 14:34:32 +00:00
Artur Paszkiewicz
ef775d6453 module/raid: remove struct raid_fn_table
Something similar will be re-introduced in the upcoming patches, but
remove this for now to simplify refactoring.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I6b520a63ecfe9a1ae0c855507601c8aeeca03e8a
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471075
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-11-01 14:34:32 +00:00
paul luse
f614a7014c module/crypto: reduce session mempool size
The initial implemenation of the module used a unique crypto
session per operation.  Later an optimization was made to use shared
session, 1 for encrypt and 1 for decrypt. The size of the session pool
and assocaited cache were not adjusted at the time.  This patch reduces
the session pool size to just 2 and uses 0 for session pool cache size.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: Ief3e867ec6bf4ff9c90d8ea60427ed8b85345275
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471692
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2019-11-01 14:33:45 +00:00
paul luse
88e48baaaf module/crypto: fix some typos & clean up comments
Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I21b6992d2a3a914e44c61d489633b5c3741e70cb
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471690
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2019-11-01 14:33:45 +00:00
Ben Walker
11739f3cb1 nvme/cuse: Poll the io_msg queue when the admin queue is polled
Users already have to poll the admin queue, so embed the io_msg
queue polling there to simplify the API.

Change-Id: I4d4d3be100be0798bee4096e0bbda96e20d2405e
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472833
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-31 14:05:23 +00:00
Tomasz Kulasek
74906b01b6 lib/nvme: add RPC for interacting with CUSE devices
Added RPC commands to register/unregister CUSE devices
to NVMe controllers:

 - bdev_nvme_cuse_register
 - bdev_nvme_cuse_unregister

Additionally two RPC now return CUSE device names:

 - bdev_get_bdevs for namespaces
 - bdev_nvme_get_controllers for controllers


Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Change-Id: I69c4bf41ec8f78a7522894268a67dd733881712f
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472211
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-24 23:43:59 +00:00
Maciej Szwed
5027dc7184 bdev/nvme: integrate NVMe character device with NVMe bdev
Added spdk_nvme_io_msg_process() in bdev_nvme_poll_adminq()
to process io messages that were passed from non-polled mode
threads to the controller.

This is used as part of nvme cuse support for surfacing
/dev nodes that can be used by standard Linux management
applications like nvme-cli.


Change-Id: If9e2e0b472c332aee54e3c6674bdd5fe616ab07c
Signed-off-by: Tomasz Kulasek <tomaszx.kulasek@intel.com>
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Signed-off-by: Maciej Szwed <maciej.szwed@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469692
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-24 23:43:59 +00:00
Chunyang Hui
71a1bbdd54 bdev/opal: Add check for strdup
Change-Id: Ic3005bc0b854ed9e5ff4a2288c3715d1e79b1fb4
Signed-off-by: Chunyang Hui <chunyang.hui@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/472113
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-24 23:02:54 +00:00
Michael Haeuptle
53b92a6c18 nvme: allow setting of completion queue CDW0
This change allows setting of the NVMe completion queue
CDW0 in spdk_bdev_io_complete_nvme_status.

Before that change, handling of vendor specific NVMe IO
commands was limited since there wasn't a way to return
command specific info back to the initiator.

Change-Id: I250d5df3bd1e62ddb89a011503d42bd4c8390f9b
Signed-off-by: Michael Haeuptle <michael.haeuptle@hpe.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470678
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-24 18:02:38 +00:00
John Kariuki
c8b6a884fd bdev/uring: add rpc calls
added rpc calls for configuring uring bdevs

Signed-off-by: John Kariuki <John.K.Kariuki@intel.com>
Change-Id: I6c8273fd6e869402fcc244c9a08226d0c2db025c
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471323
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-24 17:31:06 +00:00
Chunyang Hui
bc40f5f661 bdev/opal: Add rpc commands for multiuser
Add rpc commands bdev_opal_lock_unlock, bdev_opal_new_user.
Admin can add new user for opal bdev created and the user can
lock/unlock the bdev by himself.

Change-Id: I9a1e360399617b5a039dc5353097ab525c7eb964
Signed-off-by: Chunyang Hui <chunyang.hui@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471475
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-24 17:09:57 +00:00
Chunyang Hui
36c9ac2dde bdev/opal: Add rpc for init, revert and get info
Add bdev_nvme_opal_init, bdev_nvme_opal_revert,
bdev_opal_get_info rpc commands.

Change-Id: Ib53492c02a1c18603834640d23f9fb2e7eb08657
Signed-off-by: Chunyang Hui <chunyang.hui@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468917
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-10-24 17:09:57 +00:00
Chunyang Hui
0a18f228c3 opal: Add rpc for create and delete opal bdev
Change-Id: Ic2cbe079aa16d839b92fc4d0b3ee64c061fa2d3e
Signed-off-by: Chunyang Hui <chunyang.hui@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468191
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: yidong0635 <dongx.yi@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-10-24 17:09:57 +00:00
Chunyang Hui
8466e2c610 bdev/opal: Add Opal vbdev
Init commit for opal vbdev. Opal vbdev is built based on
bdev part module. We split nvme namespace to spdk_bdev_part
with user specified offset and length. And then use this
configuration also to set up locking range for Opal.

Use linked list g_opal_vbdev to track all configuration for
each vbdev. And use g_opal_base to track the part_base for
all vbdevs.

This patch only shows the process for creating/deleting a vbdev
for an opal-enabled nvme ctrlr.

change-Id: I6073637d7360ebdd6b53fb7b6a01ad73f1daa98e
Signed-off-by: Chunyang Hui <chunyang.hui@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468190
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-10-24 17:09:57 +00:00
Anil Veerabhadrappa
a6f667af1d nvmf/fc: initialize 'adrfam' and 'trsvcid' in fc transport id
Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Change-Id: I28476ec019f8e9ae98b9925e030f3c09ccfd726c
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471950
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-22 17:23:23 +00:00
Marcin Dziegielewski
c4b94d878b lib/bdev/ocf: remove unused code related to polling utils
After switch all management operations to asynhronus way, utlis connected
with polling are no longer needed, this patch removes that code.

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Change-Id: Ia30e733c51089b1659f79c99d8cd711945a98fa0
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470353
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
2019-10-22 17:22:41 +00:00
Marcin Dziegielewski
c74b4b32ba lib/bdev/ocf: use asynhronous management API from OCF instead of polling
New version of OCF library provided full asynhronus management API,
therefore this patch changes all uses of polling in management
operations in vbdev to asynhronous way.

Change-Id: I7bf76fa2919fac4a068ef5c39f5b667b2be68ff7
Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470352
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-22 17:22:41 +00:00
Marcin Dziegielewski
59a296465d lib/bdev/ocf: error handling in register path
This patch introduces error handling in register path, in case of
error in the middle of chain we will call vbdev_ocf_mngt_stop with
appropriate rollback path.

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Change-Id: I78e5796b7eda2fe0848d5533cdea283b17397b61
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468472
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2019-10-22 17:22:41 +00:00
Marcin Dziegielewski
790669cc46 lib/bdev/ocf: increase capabilites of vbdev_ocf_mngt_stop function
In current code there is no possibility to clean up vbdev in case
of error during management path. This patch introduces new version of
vbdev_ocf_mngt_stop function, now developer can pass handle to
path with rollback functions and therefore clean up not full initialised
vbdev instance. Changes in this path also allows to pass status explicitly
to vbdev_ocf_mngt_stop function.

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Change-Id: Ie9684981e48d24b3e55e4b1ab828dc8c01baa838
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468471
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2019-10-22 17:22:41 +00:00
Marcin Dziegielewski
20894340f2 lib/bdev/ocf: update of ocf library to version 19.06
This path updates ocf library to version 19.06 and also introduces
all necessary changes required to integrate ocf bdev adapter with
new version of ocf.

Summary of changes introduces with new OCF in ocf bdev:
- ocf_env.h increased limit for memory operations, changed behaviour
of strncpy to less restrictive, both changes are required to run new OCF
- ctx.c changed functions to new from new OCF
- added new cache mode "write only"
- added missed cache modes wa and wi to RPC scripts
- rewritten spdk_rpc_bdev_ocf_get_stats function to use asynhronus
ocf_mngt_cache_read_lock
- used new asynhronus ocf_mngt_cache_flush instead of waiting for request
- removed no longer valid filed - cfg->device.min_free_ram
- changed expected result in metadata_probe_cb

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Change-Id: I83e4335e16600e4d22e6bb517931102de42d39e9
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468132
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-22 17:22:41 +00:00
Marcin Dziegielewski
1b6d1c80f9 lib/bdev/ocf: fix potential issue around base->management_channel
This patch improves management of base->management_channel in code and
fixes potential issue described below. In situation when we want to create
configuration like this:

$rpc_py bdev_ocf_create C1 wt Malloc NonExisting
$rpc_py bdev_ocf_create C2 wt Malloc Core

In current code on C1 vbdev creation we are creating not fully
initialized vbdev_ocf_base for cache (without management channel).

On C2 creation, because in vbdev_ocf_volume_open we are looking for
right base by name, we can grab cache base from C1 and then, there is
possibility, to hit segmentation fault due to uninitialized
mangament_channel.

This patch moves initialisation of managemnet channel to attach
base function and thanks to that we have guarrnte that each copy of
cache base (we have copy in each parent in case of multicore cache)
are valid.

Signed-off-by: Marcin Dziegielewski <marcin.dziegielewski@intel.com>
Change-Id: Iab1ced3a4bf8ba0fec947bbf77b55dc3620a58a7
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/468131
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Vitaliy Mysak <vitaliy.mysak@intel.com>
2019-10-18 17:31:39 +00:00
Jan Kryl
0a04c076ea nvmf: Add context parameter to new_qpair() callback
It can be useful for passing additional information about nvmf
target to a handler for new nvmf connections. Context can be
stored in globals as it is currently done in nvmf code. However
in case of multiple targets or languages where accessing global
state is challenging (i.e. Rust), this becomes inconvenient.

Change-Id: Ia6a2fdba4601531822b3e5fda7ac5ab89d46f6c5
Signed-off-by: Jan Kryl <jan.kryl@mayadata.io>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/469263
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Seth Howell <seth.howell@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Sasha Kotchubievsky <sashakot@mellanox.com>
2019-10-17 16:29:36 +00:00
Anil Veerabhadrappa
6d2989fdec nvmf: optimize listen address parsing code
Optimize code

Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Change-Id: I2debb9ec8af04a13feedfe53f56a3e539d06caf5
Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471206
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-10-17 16:29:04 +00:00
Anil Veerabhadrappa
5e25bbdd49 nvmf/fc: Add listen address support in FC transport
Enables access control to allow subsystem access on one or more FC ports.

If a subsystem definition does not have a single valid "Listen" directive,
then the subsystem will allow dynamic listen address binding. For such
subsystems,
   * When a FC port comes online, FC transport will add port's address
to subsystem's listen list.
   * When a FC port goes offline, FC transport will remove port's address
from subsystem's listen list.

If subsystem definition has 1 or more valid "Listen" directives then FC ports
coming online or going offline will not affect subsystem's listen address
whitelist.

Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Change-Id: Ic7fed76e4bf8d1df0aeeae1d4fa5e6d207afccf3
Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471025
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-17 16:29:04 +00:00
Yan Wang
3dc7db825d bdev/aio: delete unnecessary code
Signed-off-by: Yan Wang <wangyan122@huawei.com>
Change-Id: I99269d8e6889fe08b44b32b26c667da12dd4f577
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471339
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-16 15:55:46 +00:00
Yao Liu
1b805ae4a8 bdev/uring: fix no data length set in bdev_uring_writev
This will result in SPDK_BDEV_IO_STATUS_FAILED when bdev_uring_reap

Signed-off-by: Yao Liu <yotta.liu@ucloud.cn>
Change-Id: I24bea544af7130b09c41156920d918200fe792e5
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471157
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2019-10-16 15:55:35 +00:00
Anil Veerabhadrappa
32e3e269a3 nvmf/rdma: parse listen address directive for rdma and tcp transport
Package ip address parsing code into a separate function. This change
is the first patch in the series to enable FC listen address support.

Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Change-Id: Ia86c61d001a091dfb9f825b68f76cdaf94537303
Signed-off-by: Anil Veerabhadrappa <anil.veerabhadrappa@broadcom.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471024
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom SPDK FC-NVMe CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Alexey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-10-15 16:43:17 +00:00
Ben Walker
a0889ece60 sock: Add a function to check if a socket is connected
This is useful for detecting sockets that have been disconnected
by the other end without reading data.

Change-Id: Ieb6529984d282d48373766d9f5555cf11720f19b
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/470513
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2019-10-15 16:35:09 +00:00
yidong0635
2cb14abc95 mk : Fix compiling error.
Add DEPDIR in module Makefile for blobfs.
Avoid compiling blobfs_bdev before blob_bdev.

This is to fix issue: #982

Change-Id: I7f7bd35ec56cb5a7d0545d9966aaeb7249ffb4f4
Signed-off-by: yidong0635 <dongx.yi@intel.com>
Reviewed-on: https://review.gerrithub.io/c/spdk/spdk/+/471019
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
2019-10-15 16:32:24 +00:00