History log of /spdk/python/ (Results 251 – 275 of 276)
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
0c2b10f227-Apr-2022 Konrad Sztyber <konrad.sztyber@intel.com>

sma: initial support for volume connection via discovery

This patch adds support for connecting volumes via discovery service.
The user specifies a volume UUID/GUID and a list of discovery endpoints

sma: initial support for volume connection via discovery

This patch adds support for connecting volumes via discovery service.
The user specifies a volume UUID/GUID and a list of discovery endpoints,
which are then used to start the discovery service on and attach the
volume to a device.

SMA will keep track of the attached volumes and will also refcount the
connections to discovery services. So if two volumes are attached using
the same discovery endpoint, it'll be disconnected only after both of
them are detached.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ie8ea50a2a784cf0db8a5953234c6bb2b68685d7c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12413
Community-CI: Broadcom 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: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...

20e3fb3617-May-2022 Konrad Sztyber <konrad.sztyber@intel.com>

sma: pass config to StorageManagementAgent's __init__

This will make it easier to control various options through config file.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I1

sma: pass config to StorageManagementAgent's __init__

This will make it easier to control various options through config file.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I19ab9c020d536521f5985227bc43965bd04d2707
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12724
Community-CI: Broadcom 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: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...

4ee3d46823-Feb-2022 Konrad Sztyber <konrad.sztyber@intel.com>

sma: handle SIGINT and SIGTERM signals

If the app is killed with either one of these signals, it'll shutdown
gracefully and exit with zero.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>

sma: handle SIGINT and SIGTERM signals

If the app is killed with either one of these signals, it'll shutdown
gracefully and exit with zero.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I630f9e34c3ccb382c8e1b53d0f589f3ec4d1483b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11727
Community-CI: Broadcom 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: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...

c77f17a519-May-2022 wanghailiangx <hailiangx.e.wang@intel.com>

bdev_malloc and bdev_null : remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: Ic80ce74344b24814dad792cfff6a4791d0430527
Sig

bdev_malloc and bdev_null : remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: Ic80ce74344b24814dad792cfff6a4791d0430527
Signed-off-by: wanghailiangx <hailiangx.e.wang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12741
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

c802dbe918-Feb-2022 Konrad Sztyber <konrad.sztyber@intel.com>

sma: add device protocol name

A device can now be identified by a protocol and a name. This allows to
have multiple types of devices providing the same protocol. The
selection of which device mana

sma: add device protocol name

A device can now be identified by a protocol and a name. This allows to
have multiple types of devices providing the same protocol. The
selection of which device manager to use for specific protocol will be
added in following patches.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ib4a6c323ba6a2a5d36ff958ddc40631fd9329cb1
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11683
Community-CI: Broadcom 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>

show more ...

e5e43f9615-Nov-2021 Konrad Sztyber <konrad.sztyber@intel.com>

sma: add golang package definitions

It makes it possible to generate golang code from the SMA's protobuf
definitions.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I6f03bc2b60

sma: add golang package definitions

It makes it possible to generate golang code from the SMA's protobuf
definitions.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I6f03bc2b602f93ea608597e863cb9e016b68f12e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10279
Community-CI: Broadcom 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>

show more ...

ae60344e05-Nov-2021 Konrad Sztyber <konrad.sztyber@intel.com>

sma: volume attach/detach

This patch implements the Volume(Attach|Detach) methods.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I639f1e7b6d4d5a3e52795f9c8b1ae890407e2375
Revi

sma: volume attach/detach

This patch implements the Volume(Attach|Detach) methods.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I639f1e7b6d4d5a3e52795f9c8b1ae890407e2375
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10277
Community-CI: Broadcom 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>

show more ...

2ea8747928-Oct-2021 Konrad Sztyber <konrad.sztyber@intel.com>

sma: device deletion

This patch implements the generic DeleteDevice method as well as its
NVMe/TCP implementation.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ie7aea6b12c399

sma: device deletion

This patch implements the generic DeleteDevice method as well as its
NVMe/TCP implementation.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ie7aea6b12c399aec242746e5fae108623a3a161a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10274
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...

509241ce05-Jan-2022 Konrad Sztyber <konrad.sztyber@intel.com>

configure: add switch for enabling SMA

The SMA requires some extra python packages during the build to generate
the protobuf interface, so this option will select whether it's enabled
or not. Addit

configure: add switch for enabling SMA

The SMA requires some extra python packages during the build to generate
the protobuf interface, so this option will select whether it's enabled
or not. Additionally, the dependencies are added to `pkgdep.sh` in this
patch.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ib0d75c86d4d8575ec1245b219b4e96edb773b366
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10974
Community-CI: Broadcom 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: Dong Yi <dongx.yi@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Monica Kenguva <monica.kenguva@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>

show more ...

048fb36a05-Jan-2022 Konrad Sztyber <konrad.sztyber@intel.com>

sma: initial Storage Management Agent structures

Storage Management Agent is a gRPC server that provides an abstraction
layer above the SPDK RPC interface. The interface aims to provide a set
of me

sma: initial Storage Management Agent structures

Storage Management Agent is a gRPC server that provides an abstraction
layer above the SPDK RPC interface. The interface aims to provide a set
of methods for managing various protocols (e.g. NVMe, virtio-blk) while
hiding the details of a particular transport.

The external API is defined by `lib/python/spdk/sma/proto/sma.proto`
protobuf file. It defines the generic gRPC service methods and their
requests/responses. Device-specific messages are defined in their own
files. This patch also defines messages for creating NVMe and NVMe/TCP
devices.

This patch implements a gRPC service that delegates the work to a
specific device type. A DeviceManager is a class that implements some
of the methods defined by the service for a given type of devices (e.g.
NVMe, virtio-blk, NVMe/TCP, etc.). For now, only the RPC for creating a
device is implemented, others are added in subsequent patches.

The series implements the generic calls as well as their NVMe/TCP
implementation. Support for other devce types could be easily added by
creating a new device manager and defining its protobuf parameter
definition.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I17cde3b31d3514878f1027cfcd112b48848f6123
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10273
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
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>

show more ...

e5f9e82212-May-2022 Konrad Sztyber <konrad.sztyber@intel.com>

bdev/nvme: add timeout option to start_discovery

It's now possible to specify a time to wait until a connection to the
discovery controller and the NVM controllers it exposes is made.

Whenever that

bdev/nvme: add timeout option to start_discovery

It's now possible to specify a time to wait until a connection to the
discovery controller and the NVM controllers it exposes is made.

Whenever that time is exceeded, a callback is immediately executed.
However, depending on the stage of the discovery process, we might need
to wait a while before actually stopping it (e.g. because a controller
attach is in progress). That means that a discovery service might be
visible for a while after it timed out.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I2d01837b581e0fa24c8e777730d88d990c94b1d8
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12684
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

00d46b8002-May-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Disable automatic failback in multipath mode

By default, failback to the preferred I/O path is done automatically
if it is restored. Some users may want to keep using the backup I/O
path

bdev/nvme: Disable automatic failback in multipath mode

By default, failback to the preferred I/O path is done automatically
if it is restored. Some users may want to keep using the backup I/O
path even if the preferred I/O path is restored. In this case,
bdev_nvme_set_preferred_path can be used to do manual failback.

We may be able to clear/fill I/O path cache more strictly but it will
be complicated and have bugs. This patch does the minimal change,
just skips an apparent case.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I78fe5faee6ff04e88ae3d7c6be6da1c20637c912
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12431
Community-CI: Mellanox Build Bot
Community-CI: Broadcom 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>

show more ...


/spdk/CHANGELOG.md
/spdk/doc/Doxyfile
/spdk/doc/bdev.md
/spdk/doc/jsonrpc.md
/spdk/doc/nvme_multipath.md
/spdk/doc/user_guides.md
/spdk/dpdk
/spdk/dpdkbuild/Makefile
/spdk/include/spdk/blob.h
/spdk/include/spdk/dma.h
/spdk/include/spdk/reduce.h
/spdk/lib/blob/blob_bs_dev.c
/spdk/lib/blob/blobstore.c
/spdk/lib/blob/request.c
/spdk/lib/blob/request.h
/spdk/lib/blob/spdk_blob.map
/spdk/lib/blob/zeroes.c
/spdk/lib/dma/dma.c
/spdk/lib/dma/spdk_dma.map
/spdk/lib/idxd/idxd_kernel.c
/spdk/lib/nvme/nvme_ctrlr.c
/spdk/lib/nvme/nvme_internal.h
/spdk/lib/vhost/vhost_blk.c
/spdk/lib/vhost/vhost_internal.h
/spdk/lib/vhost/vhost_scsi.c
/spdk/mk/spdk.lib_deps.mk
/spdk/module/bdev/lvol/vbdev_lvol.c
/spdk/module/bdev/nvme/bdev_nvme.c
/spdk/module/bdev/nvme/bdev_nvme.h
/spdk/module/bdev/nvme/bdev_nvme_rpc.c
/spdk/module/bdev/ocf/volume.c
/spdk/module/blob/bdev/blob_bdev.c
spdk/rpc/bdev.py
/spdk/scripts/perf/nvmf/run_nvmf.py
/spdk/scripts/rpc.py
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/apt-get
/spdk/test/common/config/pkgdep/dnf
/spdk/test/common/config/pkgdep/pacman
/spdk/test/common/config/pkgdep/pkg
/spdk/test/common/config/pkgdep/yum
/spdk/test/compress/compress.sh
/spdk/test/dma/test_dma/test_dma.c
/spdk/test/nvmf/host/discovery.sh
/spdk/test/nvmf/host/dma.sh
/spdk/test/nvmf/target/connect_disconnect.sh
/spdk/test/unit/lib/bdev/nvme/bdev_nvme.c/bdev_nvme_ut.c
/spdk/test/unit/lib/bdev/vbdev_lvol.c/vbdev_lvol_ut.c
/spdk/test/unit/lib/blob/blob.c/blob_ut.c
/spdk/test/unit/lib/blob/bs_dev_common.c
/spdk/test/unit/lib/blobfs/blobfs_async_ut/blobfs_async_ut.c
/spdk/test/unit/lib/blobfs/blobfs_sync_ut/blobfs_sync_ut.c
/spdk/test/unit/lib/dma/dma.c/dma_ut.c
/spdk/test/unit/lib/nvme/nvme_ctrlr.c/nvme_ctrlr_ut.c
1427379410-May-2022 wanghailiangx <hailiangx.e.wang@intel.com>

nvmf: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I3b75eea83bd7d700d20a6189e8fb6d1f066dc9b4
Signed-off-by: wanghailia

nvmf: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I3b75eea83bd7d700d20a6189e8fb6d1f066dc9b4
Signed-off-by: wanghailiangx <hailiangx.e.wang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12603
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
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>

show more ...

d8d29ec010-May-2022 wanghailiangx <hailiangx.e.wang@intel.com>

log: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I32dd9960bc397244d8e3d0a384fc8b67e907bf68
Signed-off-by: wanghailian

log: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I32dd9960bc397244d8e3d0a384fc8b67e907bf68
Signed-off-by: wanghailiangx <hailiangx.e.wang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12601
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
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>

show more ...

10ba934807-May-2022 wanghailiangx <hailiangx.e.wang@intel.com>

nbd: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I6931e80c836b568dec8989dad2a7be4e112c42b4
Signed-off-by: wanghailian

nbd: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Change-Id: I6931e80c836b568dec8989dad2a7be4e112c42b4
Signed-off-by: wanghailiangx <hailiangx.e.wang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12577
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...

47bc587011-Apr-2022 Jim Harris <james.r.harris@intel.com>

bdev: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Fix ocf test script that was still using the
deprecated get_bdevs RPC name - c

bdev: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Fix ocf test script that was still using the
deprecated get_bdevs RPC name - change it to
bdev_get_bdevs.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I7f8caedc250b80503671a0236694181613f63860
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12553
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...

febe900211-Apr-2022 Jim Harris <james.r.harris@intel.com>

iscsi, scsi: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I2c9918

iscsi, scsi: remove support for deprecated RPC names

These were deprecated in 2019, it's time to remove
support for them now.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I2c9918ed0296f644b0728c5106c47d93e3c7ec30
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12552
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>

show more ...

f331ae1626-Apr-2022 Konrad Sztyber <konrad.sztyber@intel.com>

bdev/nvme: add RPC returning information about discovery service

The RPC returns a list of active discovery service connections. Each
discovery service is described by a name, its trid, and a list

bdev/nvme: add RPC returning information about discovery service

The RPC returns a list of active discovery service connections. Each
discovery service is described by a name, its trid, and a list of
discovery service trids it refers to.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: Ifa4b9501dd353e7b4948ad830575a6c94dafd86b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12380
Community-CI: Mellanox Build Bot
Community-CI: Broadcom 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: Tomasz Zawadzki <tomasz.zawadzki@intel.com>

show more ...

8f9b977529-Apr-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Add active/active policy for multipath mode

The NVMe bdev module supported active-passive policy for multipath mode
first. By this patch, the NVMe bdev module supports active-active polic

bdev/nvme: Add active/active policy for multipath mode

The NVMe bdev module supported active-passive policy for multipath mode
first. By this patch, the NVMe bdev module supports active-active policy
for multipath node next. Following the Linux kernel native NVMe multipath,
the NVMe bdev module supports round robin algorithm for active-active
policy.

The multipath policy, active-passive or active-active, is managed per
nvme_bdev. The multipath policy is copied to all corresponding
nvme_bdev_channels.

Different from active-passive, active-active caches even non_optimized
path to provide load balance across multiple paths.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ie18b24db60d3da1ce2f83725b6cd3079f628f95b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12001
Community-CI: Mellanox Build Bot
Community-CI: Broadcom 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: Aleksey Marchuk <alexeymar@nvidia.com>

show more ...

22b77a3c13-Apr-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Set preferred I/O path in multipath mode

If we specify a preferred path manually for each NVMe bdev, we will
be able to realize a simple static load balancing and make the failover
more c

bdev/nvme: Set preferred I/O path in multipath mode

If we specify a preferred path manually for each NVMe bdev, we will
be able to realize a simple static load balancing and make the failover
more controllable in the multipath mode.

The idea is to move I/O path to the NVMe-oF controller to the head of
the list and then clear the I/O path cache for each NVMe bdev channel.
We can set the I/O path to the I/O path cache directly but it must be
conditional and make the code very complex. Hence, let find_io_path() do
that.

However, a NVMe bdev channel may be acquired after setting the preferred
path. To cover such case, sort the nvme_ns list of the NVMe bdev too.

This feature supports only multipath mode. The NVMe bdev module supports
failover mode too. However, to support the latter, the new RPC needs to
have trid as parameters and the code and the usage will be come very
complex. Add a note for such limitation.

To verify one by one exactly, add unit test.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ia51c74f530d6d7dc1f73d5b65f854967363e76b0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12262
Community-CI: Mellanox Build Bot
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: <tanl12@chinatelecom.cn>
Reviewed-by: GangCao <gang.cao@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>

show more ...

88653b4f02-May-2022 Boris Glimcher <Boris.Glimcher@emc.com>

sock: fix typo

`enable_dynamic_zerocopy` is not even defined anywhere

Signed-off-by: Boris Glimcher <Boris.Glimcher@emc.com>
Change-Id: I5c7a97bf661db233a5bf62f8eb00170685790cee
Signed-off-by: Bori

sock: fix typo

`enable_dynamic_zerocopy` is not even defined anywhere

Signed-off-by: Boris Glimcher <Boris.Glimcher@emc.com>
Change-Id: I5c7a97bf661db233a5bf62f8eb00170685790cee
Signed-off-by: Boris Glimcher <Boris.Glimcher@emc.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12436
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
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>

show more ...

9bff828f07-Dec-2021 Richael Zhuang <richael.zhuang@arm.com>

sock: introduce dynamic zerocopy according to data size

MSG_ZEROCOPY is not always effective as mentioned in
https://www.kernel.org/doc/html/v4.15/networking/msg_zerocopy.html.

Currently in spdk, o

sock: introduce dynamic zerocopy according to data size

MSG_ZEROCOPY is not always effective as mentioned in
https://www.kernel.org/doc/html/v4.15/networking/msg_zerocopy.html.

Currently in spdk, once we enable sendmsg zerocopy, then all data
transferred through _sock_flush are sent with zerocopy, and vice
versa. Here dynamic zerocopy is introduced to allow data sent with
MSG_ZEROCOPY or not according to its size, which can be enabled by
setting "enable_dynamic_zerocopy" as true.

Test with 16 P4610 NVMe SSD, 2 initiators, target's and initiators'
configurations are the same as spdk report:
https://ci.spdk.io/download/performance-reports/SPDK_tcp_perf_report_2104.pdf

For posix socket, rw_percent=0(randwrite), it has 1.9%~8.3% performance boost
tested with target 1~40 cpu cores and qdepth=128,256,512. And it has no obvious
influence when read percentage is greater than 50%.

For uring socket, rw_percent=0(randwrite), it has 1.8%~7.9% performance boost
tested with target 1~40 cpu cores and qdepth=128,256,512. And it still has
1%~7% improvement when read percentage is greater than 50%.

The following is part of the detailed data.

posix:
qdepth=128
rw_percent 0 | 30
cpu origin thisPatch opt | origin thisPatch opt
1 286.5 298.5 4.19% 307 304.15 -0.93%
4 1042.5 1107 6.19% 1135.5 1136 0.04%
8 1952.5 2058 5.40% 2170.5 2170.5 0.00%
12 2658.5 2879 8.29% 3042 3046 0.13%
16 3247.5 3460.5 6.56% 3793.5 3775 -0.49%
24 4232.5 4459.5 5.36% 4614.5 4756.5 3.08%
32 4810 5095 5.93% 4488 4845 7.95%
40 5306.5 5435 2.42% 4427.5 4902 10.72%

qdepth=512
rw_percent 0 | 30
cpu origin thisPatch opt | origin thisPatch opt
1 275 287 4.36% 294.4 295.45 0.36%
4 979 1041 6.33% 1073 1083.5 0.98%
8 1822.5 1914.5 5.05% 2030.5 2018.5 -0.59%
12 2441 2598.5 6.45% 2808.5 2779.5 -1.03%
16 2920.5 3109.5 6.47% 3455 3411.5 -1.26%
24 3709 3972.5 7.10% 4483.5 4502.5 0.42%
32 4225.5 4532.5 7.27% 4463.5 4733 6.04%
40 4790.5 4884.5 1.96% 4427 4904.5 10.79%

uring:
qdepth=128
rw_percent 0 | 30
cpu origin thisPatch opt | origin thisPatch opt
1 270.5 287.5 6.28% 295.75 304.75 3.04%
4 1018.5 1089.5 6.97% 1119.5 1156.5 3.31%
8 1907 2055 7.76% 2127 2211.5 3.97%
12 2614 2801 7.15% 2982.5 3061.5 2.65%
16 3169.5 3420 7.90% 3654.5 3781.5 3.48%
24 4109.5 4414 7.41% 4691.5 4750.5 1.26%
32 4752.5 4908 3.27% 4494 4825.5 7.38%
40 5233.5 5327 1.79% 4374.5 4891 11.81%

qdepth=512
rw_percent 0 | 30
cpu origin thisPatch opt | origin thisPatch opt
1 259.95 276 6.17% 286.65 294.8 2.84%
4 955 1021 6.91% 1070.5 1100 2.76%
8 1772 1903.5 7.42% 1992.5 2077.5 4.27%
12 2380.5 2543.5 6.85% 2752.5 2860 3.91%
16 2920.5 3099 6.11% 3391.5 3540 4.38%
24 3697 3912 5.82% 4401 4637 5.36%
32 4256.5 4454.5 4.65% 4516 4777 5.78%
40 4707 4968.5 5.56% 4400.5 4933 12.10%

Signed-off-by: Richael Zhuang <richael.zhuang@arm.com>
Change-Id: I730dcf89ed2bf3efe91586421a89045fc11c81f0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12210
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>

show more ...

2a6a644806-Apr-2022 Shuhei Matsumoto <smatsumoto@nvidia.com>

bdev/nvme: Add bdev_nvme_get_io_paths RPC to monitor I/O path states

Add an new RPC bdev_nvme_get_io_paths to query all active I/O paths.

One io_path belongs to One nvme_bdev_channel.
Each nvme_bde

bdev/nvme: Add bdev_nvme_get_io_paths RPC to monitor I/O path states

Add an new RPC bdev_nvme_get_io_paths to query all active I/O paths.

One io_path belongs to One nvme_bdev_channel.
Each nvme_bdev_channel is associated with one nvme_bdev.

If the RPC bdev_nvme_get_io_paths has a bdev name as a parameter
it can use spdk_for_each_channel() simply for the corresponding
nvme_bdev.

However, users will want to know I/O paths of all nvme_bdevs like
the RPC bdev_get_bdevs.

One io_path has one nvme_qpair. One nvme_qpair belongs to one
nvme_poll_group. By relying on these relationships, the RPC
bdev_nvme_get_io_paths traverses all nvme_poll_groups by using
spdk_for_each_channel() to g_bdev_nvme_ctrlrs.

The RPC bdev_nvme_get_io_paths has two modes, display all or
the specified NVMe bdev's active I/O paths.

The specified bdev name is used just for comparison and empty
array is returned if no matched io_path is found.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: I4a0dbf3ef7aaa9a7b7345fc03dc493cc6d37bc99
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12146
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...

3b047a6102-Mar-2022 Andreas Economides <andreas.economides@nutanix.com>

nvmf/vfio-user: support shadow doorbells

As per the NVMe specification, a host can identify two areas of guest
memory: one of which is used for the host-written doorbells, and one of
which contains

nvmf/vfio-user: support shadow doorbells

As per the NVMe specification, a host can identify two areas of guest
memory: one of which is used for the host-written doorbells, and one of
which contains event indexes. The host writes to the shadow doorbell
area, but also writes to the controller's BAR0 doorbell area if the
corresponding event index is crossed by the update. This avoids many
mmio exits in interrupt mode, where BAR0 doorbells are not directly
mapped into the guest VM, with greatly improved performance.

This isn't a useful feature in BAR0 doorbells are mapped into the VM, so
we explicitly disable support in that case.

NB: the Windows NVMe driver doesn't yet support this feature.

Although the specification says that the admin queues should also engage
in this behaviour, in practice, no VM does, so have to include some
hacks to account for this.

Co-authored-by: John Levon <john.levon@nutanix.com>
Signed-off-by: John Levon <john.levon@nutanix.com>
Change-Id: I0646b234d31fbbf9a6b85572042c6cdaf8366659
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11492
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>

show more ...

31db7b1311-Apr-2022 zhangduan <zhangd28@chinatelecom.cn>

nvme_tcp: set transport_ack_timeout to ack_timeout

The value of ack_timeout is calculated according to
the formula 2^(transport_ack_timeout) msec.

Signed-off-by: zhangduan <zhangd28@chinatelecom.cn

nvme_tcp: set transport_ack_timeout to ack_timeout

The value of ack_timeout is calculated according to
the formula 2^(transport_ack_timeout) msec.

Signed-off-by: zhangduan <zhangd28@chinatelecom.cn>
Change-Id: I5a938635d70693ddd405fa5907555bb745b4df0f
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12215
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>

show more ...


/spdk/CHANGELOG.md
/spdk/app/spdk_dd/spdk_dd.c
/spdk/app/spdk_top/spdk_top.c
/spdk/autobuild.sh
/spdk/autorun_post.py
/spdk/autotest.sh
/spdk/configure
/spdk/doc/jsonrpc.md
/spdk/doc/performance_reports.md
/spdk/examples/accel/perf/accel_perf.c
/spdk/include/spdk/accel_engine.h
/spdk/include/spdk/idxd_spec.h
/spdk/include/spdk/nvme.h
/spdk/include/spdk/sock.h
/spdk/include/spdk/vhost.h
/spdk/include/spdk_internal/accel_engine.h
/spdk/include/spdk_internal/sock.h
/spdk/lib/accel/accel_engine.c
/spdk/lib/bdev/bdev_rpc.c
/spdk/lib/env_dpdk/env.c
/spdk/lib/idxd/idxd_user.c
/spdk/lib/iscsi/md5.c
/spdk/lib/iscsi/md5.h
/spdk/lib/nvme/nvme_pcie.c
/spdk/lib/nvme/nvme_pcie_common.c
/spdk/lib/nvme/nvme_pcie_internal.h
/spdk/lib/nvme/nvme_rdma.c
/spdk/lib/nvme/nvme_tcp.c
/spdk/lib/nvme/nvme_vfio_user.c
/spdk/lib/nvmf/ctrlr.c
/spdk/lib/nvmf/rdma.c
/spdk/lib/nvmf/tcp.c
/spdk/lib/nvmf/vfio_user.c
/spdk/lib/sock/sock.c
/spdk/lib/vhost/rte_vhost_user.c
/spdk/lib/vhost/vhost.c
/spdk/lib/vhost/vhost_blk.c
/spdk/lib/vhost/vhost_internal.h
/spdk/lib/vhost/vhost_rpc.c
/spdk/lib/vhost/vhost_scsi.c
/spdk/lib/vmd/vmd.c
/spdk/module/accel/idxd/accel_engine_idxd.c
/spdk/module/accel/ioat/accel_engine_ioat.c
/spdk/module/bdev/nvme/bdev_nvme.h
/spdk/module/bdev/pmem/bdev_pmem.c
/spdk/module/bdev/raid/bdev_raid.c
/spdk/module/sock/posix/posix.c
/spdk/module/sock/uring/uring.c
spdk/rpc/bdev.py
/spdk/scripts/bpf/nvme.bt
/spdk/scripts/perf/nvmf/README.md
/spdk/scripts/perf/nvmf/run_nvmf.py
/spdk/scripts/perf/vhost/run_vhost_test.py
/spdk/scripts/rpc.py
/spdk/scripts/setup.sh
/spdk/scripts/vagrant/Vagrantfile
/spdk/scripts/vagrant/create_vbox.sh
/spdk/test/app/fuzz/common/fuzz_rpc.py
/spdk/test/app/fuzz/llvm_nvme_fuzz/llvm_nvme_fuzz.c
/spdk/test/bdev/bdevio/bdevio.c
/spdk/test/bdev/bdevio/tests.py
/spdk/test/bdev/bdevperf/bdevperf.py
/spdk/test/bdev/blockdev.sh
/spdk/test/common/autotest_common.sh
/spdk/test/common/config/pkgdep/git
/spdk/test/common/config/pkgdep/patches/dpdk/21.11+/dpdk_qat.patch
/spdk/test/iscsi_tgt/common.sh
/spdk/test/nvme/hw_hotplug.sh
/spdk/test/nvme/perf/common.sh
/spdk/test/nvmf/target/multitarget_rpc.py
/spdk/test/setup/devices.sh
/spdk/test/unit/lib/accel/accel.c/accel_engine_ut.c
/spdk/test/unit/lib/bdev/nvme/bdev_nvme.c/bdev_nvme_ut.c
/spdk/test/unit/lib/idxd/idxd_user.c/idxd_user_ut.c
/spdk/test/unit/lib/nvme/nvme_rdma.c/nvme_rdma_ut.c
/spdk/test/unit/lib/nvmf/ctrlr.c/ctrlr_ut.c
/spdk/test/unit/lib/vhost/vhost.c/vhost_ut.c
/spdk/test/unit/unittest.sh
/spdk/test/vhost/common.sh

1...<<1112