Commit Graph

6688 Commits

Author SHA1 Message Date
Jim Harris
be19fe4bd7 bdevio: call spdk_thread_exit()
We need to make sure we call spdk_thread_exit()
to clean up the io and ut threads in the bdevio
app.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I29774b36c5f294072011fcf810e8b7346842c303
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15503
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2022-11-23 08:22:04 +00:00
Jim Harris
dedc926239 test/dma: call spdk_thread_exit()
We should always exit threads that we create.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Ife982798bc23a5da5706b9baca80e102a4541bab
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15501
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-11-23 08:22:04 +00:00
Jim Harris
97011ecc92 test/unit: call spdk_thread_exit() in reactor_ut
Signed-off-by: Mike Gerdts <mgerdts@nvidia.com>
Change-Id: I50ca06619345f0596bfaf416e8ab3296a8990fca
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15437
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-11-23 08:22:04 +00:00
Jim Harris
eb979f3ebc llvm_vfio_fuzz: call spdk_thread_exit()
Make sure we exit the thread that we created in
the llvm_vfio_fuzz app.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I7fad1402a83206728f5a7ceac6c33a2b4c812719
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15500
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-11-23 08:22:04 +00:00
Changpeng Liu
b45556e2b2 include/bdev_module.h: add SPDK_ prefix to macros
`BDEV_IO_NUM_CHILD_IOV` and `BDEV_RESET_IO_DRAIN_RECOMMENDED_VALUE`
are public macro definitions without `SPDK_` prefix, so we add the
`SPDK_` prefix to them.

Change-Id: I4be86459f0b6ba3a4636a2c8130b2f12757ea2da
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15425
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-11-22 10:03:57 +00:00
yupeng
c0c333e2ed bdev: provide all available bdevs when loop bdevs
The bdev hot remove might be an async process. The bdev_open will
return an error during the hot remove process. If someone invoke the
bdev_get_bdevs API when a bdev is in the middle of a hot remove
process, the spdk_for_each_bdev function will stop its loop when a
bdev_open return an error. Thus the bdev_get_bdevs will only return
partual bdevs or even return an empty list if the hot remove bdev is
the first bdev in the loop. When spdk_for_each_bdev and
spdk_for_each_bdev_leaf loop for each bdevs, if a bdev returns an
error, we skip that bdev instead of stop the whole loop.

Signed-off-by: Peng Yu <yupeng0921@gmail.com>
Change-Id: Ib35b817e23e47569fc5762a883b4ff8e322ae173
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15322
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Mike Gerdts <mgerdts@nvidia.com>
Reviewed-by: Xiaodong Liu <xiaodong.liu@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-11-22 10:03:48 +00:00
Thanos Makatos
70f185ea51 json: add spdk_json_write_named_double
Signed-off-by: Thanos Makatos <thanos.makatos@nutanix.com>
Suggested-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I2439cd739240fb2d95c5cdaccc557ba9a8f6501b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15490
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: John Levon <levon@movementarian.org>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-11-22 10:01:43 +00:00
xiaoxiangxzhang
1a0ccf39ea UT/nvme_pcie_common:test for nvme_pcie_poll_group_get_stats
Signed-off-by: xiaoxiangxzhang <xiaoxiangx.zhang@intel.com>
Change-Id: I92d4e2a18a281f1e9abc89f0ccb76063a3709784
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15415
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-11-21 12:00:55 +00:00
Michal Berger
d6256d4753 test/ocf: Fix path to bdevperf
https://review.spdk.io/gerrit/c/spdk/spdk/+/8961 missed rebase onto
https://review.spdk.io/gerrit/c/spdk/spdk/+/14558 where the location
of bdevperf was changed.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I46132a63bcbe327c560fae281fcd28f2f78edcaf
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15527
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-11-18 12:46:29 +00:00
paul luse
75b8a8e0fd test/accel: fix run_test naming convention
Test names were not unique per test

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I638f2e90f6bdcd092fe9f0a37241014771550554
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15514
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-11-18 08:40:26 +00:00
Krzysztof Karas
3242d3c524 bdev_nvme_ut: add tests for UUID generation mechanism
Test uniqueness of generated UUIDs in two cases:

1) For a single controller with two namespaces.
Serial number remains the same, but different
namespace IDs should contribute enough to get
a unique UUID.

2) For two controllers with one namespace each.
Serial numbers differ only by one character and
namespace IDs are the same. Single different
character in serial number should make UUID
unique.

Also validate UUID generated from serial number
containing only space characters.

Change-Id: I16e39e269ced4d8405fb5b3af6aa8bf98ecfd7ba
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15362
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Community-CI: Mellanox Build Bot
2022-11-18 08:38:13 +00:00
Krzysztof Karas
a1c7ae2d3f bdev: remove generation of UUIDs for bdevs that do not provide one
Remove automatic generation of UUIDs for bdevs
that do not provide this value themselves.
This is to clarify whether this field can be
depended upon.

Modified match files to reflect change in UUID
generation.

Disabled nullglob shell option, as it deletes
empty arrays during word splitting. Bdevs with no
aliases would instead of "[]", have nullpointer
printed, which makes resulting JSON invalid.

Part of enhancement proposed in #2516.

Change-Id: Ic1d5f8f8d001ae1a219e876aef2a19b1ff0b2f2c
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15150
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
2022-11-18 08:38:13 +00:00
Rafal Stefanowski
8000cedbe3 bdev/ocf: Add runtime cache bdev flush support
Introduce two RPC calls for starting flush and getting flush
status of OCF cache bdev:
- bdev_ocf_flush_start
- bdev_ocf_flush_status

Signed-off-by: Robert Baldyga <robert.baldyga@intel.com>
Signed-off-by: Rafal Stefanowski <rafal.stefanowski@intel.com>
Change-Id: I1d659da6fc51396e0d070af35372ee130c40ae8b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/8961
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-11-18 08:38:03 +00:00
Mike Gerdts
c6ffad06fa test/bdev: improper check of mkfs.ext4 return
Before this fix, nbd_with_lvol_verify() would compare the string output
of mkfs.ext4 ("Dicarding device blocks...") with 0. If the shell does
not cast an invalid number to 0, test in the if statement will evaluate
to false.

The intent of the test in the if statement seems to be to check the exit
code from mkfs.ext4. This commit implements that assumed intent.
Additionally, mkfs_ret is now a local variable.

Signed-off-by: Mike Gerdts <mgerdts@nvidia.com>
Change-Id: I6c0de7b3f70674fb442abbcc9164f65a1ad55d40
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15276
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Xinrui Mao <xinrui.mao@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-11-18 00:09:41 +00:00
Artur Paszkiewicz
4ad1ac9036 module/raid: remove destruct_called
Checking the raid_bdev state is sufficient.

Change-Id: I86c7f4b547236a58031e8f480c7621e40f63ce12
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15472
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-11-17 08:55:17 +00:00
Artur Paszkiewicz
dccdd1e5f8 module/raid: remove raid_cfg
It is much more straightforward to just use raid_bdev instead.

Change-Id: I887e527be3de67a688e10ff68bbc87ccd5ac3261
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14290
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-11-17 08:55:17 +00:00
Artur Paszkiewicz
12ed89aca6 module/raid: remove redundant raid_bdev lists
Those lists match exactly the values of raid_bdev->state.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I0e7fb84ef77036608afd3a71318032f536bff4e8
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14187
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2022-11-17 08:55:17 +00:00
Krzysztof Karas
29784f35cd bdevperf: promote bdevperf from test to example application
bdevperf application is utilized in multiple test scenarios
and most prominently in SPDK performance reports.
Similar to perf and fio_plugins, it is used to measure performance.
It is intended to represent the expected behavior of users
application that use SPDK bdev layer.

Applications under --enable-tests are intended for specific test
scenarios and user interaction is usually via a test scripts.
Meanwhile --enable-examples are used more broadly to teach and
show usage of SPDK libraries.

As an added benefit with this patch, its possible to compile
bdevperf without need to satisfy additional requirements to
compile all the test applications.

Change-Id: I9aaec1f9d729a1cdee89b5fdc365d61c19b03f82
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14558
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-11-16 09:52:41 +00:00
Jun Wen
74da5ee257 test/lvm_nvme_fuzz: return error code in TestOneInput
When get `spdk_nvme_connect() fail` error, need to stop fuzz, so return -1 here.
Call `spdk_app_stop()` in `start_fuzzer`

Fix #2744

Signed-off-by: Jun Wen <junx.wen@intel.com>
Change-Id: I301012931a4f618edd84f3ee6f371c187755012e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15160
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: <qun.wan@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: <yifan.bian@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
2022-11-15 08:31:20 +00:00
John Levon
0d0de8e7d9 lib/rpc: add RPC allow list
Add an optional allowlist for RPC methods: if the method is not listed,
it is not allowed to be called or visible. This can be used to restrict
accidental mis-configurations, and generally helps locking down the
configuration surface.

Signed-off-by: John Levon <john.levon@nutanix.com>
Change-Id: Ied78fc4b14b60cb94ed0852b92deb6df545cbec4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15275
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-11-15 08:31:02 +00:00
John Levon
1139cb1415 lib/util: add strarray utility functions
Add some basic utilities for handling arrays of strings.

Signed-off-by: John Levon <john.levon@nutanix.com>
Change-Id: I2333f3e4605175b1717a7f289847ff2d48745e8d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15274
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Thanos Makatos <thanos.makatos@nutanix.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-11-15 08:31:02 +00:00
Jim Harris
c3e62d7729 test: add new cmdline.sh test script
This can be used to test various app command line
parameters - in this case, the new RPC allowlist
parameter.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: Iaa0e90940ac4fb0b044ab96bc2912afa9f48ddae
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15310
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-11-15 08:31:02 +00:00
Mykola Golub
8a5d487d7e scripts/pkgdep: add RBD support
Adds "--rbd" option to install build dependencies for the rbd bdev.

This will be used by the Ceph NVMe-oF gateway.

Signed-off-by: Mykola Golub <mykola.golub@clyso.com>
Change-Id: I7926433aaa398873133dfffea3c401ce3c1f7813
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11134
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>
Community-CI: Mellanox Build Bot
2022-11-10 08:29:10 +00:00
paul luse
17538bdc67 add (c) and SPDX header to python files as needed
per Intel policy to include file commit date using git cmd
below.  The policy does not apply to non-Intel (C) notices.

git log --follow -C90% --format=%ad --date default <file> | tail -1

and then pull just the year from the result.

Intel copyrights were not added to files where Intel either had
no contribution ot the contribution lacked substance (ie license
header updates, formatting changes, etc)

Note that several files in this patch didn't end the license/(c)
block with a blank comment line so these were added as the vast
majority of files do have this last blank line.  Simply there for
consistency.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I6cd3f18d1b469d5ef249d26ddb2923ca6b970bd4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15208
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>
2022-11-10 08:28:53 +00:00
paul luse
7fc8a7dd45 add Intel copyright notices (and/or SPDX lic) where missing
per Intel policy to include file commit date using git cmd
below.  The policy does not apply to non-Intel (C) notices.

git log --follow -C90% --format=%ad --date default <file> | tail -1

and then pull just the year from the result.

Intel copyrights were not added to files where Intel either had
no contribution ot the contribution lacked substance (ie license
header updates, formatting changes, etc)

Note that several files in this patch didn't end the license/(c)
block with a blank comment line so these were added as the vast
majority of files do have this last blank line.  Simply there for
consistency.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: If1bf46b4e1902585c318dc35b1673f980366076e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15199
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>
2022-11-10 08:28:53 +00:00
paul luse
a6dbe3721e update Intel copyright notices
per Intel policy to include file commit date using git cmd
below.  The policy does not apply to non-Intel (C) notices.

git log --follow -C90% --format=%ad --date default <file> | tail -1

and then pull just the 4 digit year from the result.

Intel copyrights were not added to files where Intel either had
no contribution ot the contribution lacked substance (ie license
header updates, formatting changes, etc).  Contribution date used
"--follow -C95%" to get the most accurate date.

Note that several files in this patch didn't end the license/(c)
block with a blank comment line so these were added as the vast
majority of files do have this last blank line.  Simply there for
consistency.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: Id5b7ce4f658fe87132f14139ead58d6e285c04d4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15192
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>
Community-CI: Mellanox Build Bot
2022-11-10 08:28:53 +00:00
Krzysztof Karas
0af934b38c event: add CPU lock files
When running SPDK application on a given set of
CPU cores, create lock files for each of them.
This wil prevent user misconfiguration and
assigning a core to more than one SPDK instance.

The introduced mechanism is based on device locks
implemented in spdk_pci_device_claim() function.

Add a command line option to disable lock files.
This feature will be useful in cases where differing
CPU cores is impossible (eg. setup with only one core
available).

The patch also fixes all existing cases of overlapping
core masks.

Change-Id: Ie9aacb7523a3597b9aa20f2c3fa9efe4db92c44c
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14919
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-11-09 08:18:32 +00:00
Artsiom Koltun
29416c0a54 sma: report device level QoS capabilities for virtio-blk.
Virtio-blk supports one to one mapping between devices and volumes.
Based on that, we can report underlying bdev capabilities as device
level QoS capabilities.

Signed-off-by: Artsiom Koltun <artsiom.koltun@intel.com>
Change-Id: If7c28c75d087fecec0105002994581fd7ac57f51
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15260
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-11-08 08:21:46 +00:00
Tomasz Zawadzki
88f16162e7 test/scheduler: make spdk_for_each_reactor test optional
(84ab68c) test/scheduler: add a for_each_reactor shutdown test

Patch above added regression test for handling spdk_for_each_reactor
during shutdown, by adding constant repeat of this operation
while application is running.

Reactor event processing (especially constant) has impact on the
reactor_interrupt_run(). spdk_fd_group_wait() will almost always
execute an event, skewing the results of scheduler test.
Reactor that should have been idle, will show active usage via
/proc/stat.

Fixes #1950

This patch makes this regression test optional, and enables it
only in test that does not measure CPU utilization from the system.
The ./test/event/scheduler/scheduler.sh is the only one where it is
enabled, as it's purpose is to verify the test scheduler application.
Remaining ./test/scheduler/*.sh tests do verify CPU utilization,
so the regression test is disabled in those.

Modified the for_each_done, to for_each_reactor_start, to better
reflect the intention.

On my system enabling spdk_for_each_reactor test flag on the
scheduler application with no threads (except app thread),
consumes ~20-25% CPU from every core in CPU mask.
Meanwhile disabling it, idle cores are 100% idle
and active cores spend 100% of CPU time in usr.

Change-Id: I40eda15a748e76b95dc5441144cd8931e46edee5
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15210
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-11-08 08:19:44 +00:00
KanKuo
aba9c09c0b UT/nvme_pcie: test for nvme_pcie_ctrlr_map_io_pmr
Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: Iec9f5b4dc42a5a707b50f7b12226e0ea0c7eb39d
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10463
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-11-04 10:11:16 +00:00
Alexey Marchuk
5d39b20a50 bdevperf: Call bdev*_with_md even if md is NULL
The bdev*_with_md APIs now allow to pass NULL md
pointer, so calling this function without checking
for metadata simplifies code

Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com>
Change-Id: I32b2f85e375b858c25beb7e2128132dd604ca040
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15092
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2022-11-03 14:54:41 +00:00
Alexey Marchuk
21db73f909 bdev_nvme: Return memory domains of each controller
Signed-off-by: Alexey Marchuk <alexeymar@nvidia.com>
Change-Id: I7417dcf69bbb8a526308075459c5887283896823
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15087
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
2022-11-03 14:54:41 +00:00
Pawel Piatek
4674af01ed test/common: add max retries to waitforlisten
Signed-off-by: Pawel Piatek <pawelx.piatek@intel.com>
Change-Id: Iea99962431d9d59ac865c398673698d3c8802e28
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15149
Reviewed-by: Michal Berger <michal.berger@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@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>
2022-11-02 10:52:06 +00:00
KanKuo
df00a867f4 UT/bdev/bdev_zone.c:add the test of zone_appendv_with_md
Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: I8e669ac94a2df2e0e6c204413b30cd04d6f7e685
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15097
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>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
2022-11-02 10:51:29 +00:00
Evgeniy Kochetov
57b0fcc4ce test/bdevio: Add test for copy IO type
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: Ic706810416eccd939ee531a6807613eb35cba632
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14349
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-11-02 10:33:00 +00:00
Evgeniy Kochetov
789f48dec7 bdev/nvme: Add copy IO type support
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: I6a272161e129b592f535f8671e174e6b20e09fd0
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14347
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
2022-11-02 10:33:00 +00:00
Evgeniy Kochetov
6c8702ace9 test/bdev: Add unit tests for copy IO
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: I54b6a359fc728f9d79878b179ffd028f05d83af9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14345
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
2022-11-02 10:33:00 +00:00
GangCao
e28e247954 RPC/Bdev: display the per channel IO statistics for required Bdev
Add a new parameter "-c" to display the per channel IO statistics
for required Bdev

./scripts/rpc.py bdev_get_iostat -b Malloc0 -h
usage: rpc.py [options] bdev_get_iostat [-h] [-b NAME] [-c]

optional arguments:
  -h, --help            show this help message and exit
  -b NAME, --name NAME  Name of the Blockdev. Example: Nvme0n1
  -c, --per-channel     Display per channel IO stats for specified device

This could give more intuitive information on each channel's processing
of the IOs with the associated thread on the same Bdev.

Please also be aware that the IO statistics are collected from SPDK
thread's related channel's information. So that it is more relating
to the SPDK thread. And in the dynamic scheduling case, different
SPDK thread could be running on the same Core.

In this case, any seperate channel's IO statistics are returned to
the RPC call and if needed, further parse of the data is needed to
get the per Core information although usually there is one thread
per Core.

On the other hand, user could run the framework_get_reactors RPC
method to get the relationship of the thread and CPU Cores so as
to get the precise information of IO runnings on each thread and
each Core for the same Bdev.

Change-Id: I39d6a2c9faa868e3c1d7fd0fb6e7c020df982585
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13011
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-10-28 06:51:19 +00:00
Shuhei Matsumoto
02e1823a38 bdevperf: Add DIF/DIX verification for read I/O at completion
If verify is enabled, both data and metadata are checked. However,
if verify is disabled, read data is not checked even if dif_check_flags
is not zero. Add DIF/DIX verification for read I/O at completion.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Change-Id: Ibde44bc244f84e40cef68653978191363acca5ce
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15074
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-10-28 06:49:40 +00:00
Shuhei Matsumoto
194047249b nvme_rdma: Get qpair from poll group using WC
NVMe-RDMA target has a helper function get_rdma_qpair_from_wc() and
uses it to identify a qpair from a WC.

NVMe-RDMA initiator has a similar function
nvme_rdma_poll_group_get_qpair_by_id().

NVMe-RDMA initiator will support SRQ in the following patches, and
it will want to identify a qpair from a WC.

get_rdma_qpair_from_wc() of NVMe-RDMA target uses wc->qp_num internally
anyway.

However, the upcoming custom transport for RDMA will have to use other
variables of WC.

Hence, it will be convenient to pass WC instead of qp_num if we consider
future enhancements.

Based on these thoughts, for NVMe-RDMA initiator rename
nvme_rdma_poll_group_get_qpair_by_id() by get_rdma_qpair_from_wc().
remove unnecessary declaration, and pass WC instead of qp_num.

Signed-off-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Signed-off-by: Denis Nagorny <denisn@nvidia.com>
Signed-off-by: Evgeniy Kochetov <evgeniik@nvidia.com>
Change-Id: I01ead4730207e2c6ac53b83f151bd5f977a11465
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14279
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-10-28 06:27:19 +00:00
Vasuki Manikarnike
3fcee8ddcc lib/nvme: Do not submit queued aborts if adminq is in failed state.
With RDMA, the admin poller can experience a remote disconnect when
processing completions. The admin qpair will be disconnected to handle
this. The disconnect code path will manually complete queued aborts.
However, the completion callback for the abort will attempt to resubmit
other queued aborts from the queue, which will result in a very large
stack and can eventually cause a segfault.
The fix is to not resubmit queued aborts if the admin qpair is in any
kind of failed state.

Change-Id: I4a6f959232c8a1bd30c87ca50459014e556cbaa0
Signed-off-by: Vasuki Manikarnike <vasuki.manikarnike@hpe.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15114
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@nvidia.com>
Reviewed-by: Michael Haeuptle <michaelhaeuptle@gmail.com>
2022-10-28 06:26:20 +00:00
Michal Berger
008139c8de test/bdev: Add xnvme support to blockdev.sh setup
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I86ffc7d35243560bcfedc31bf21630b2381d8c18
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14995
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-10-27 09:06:37 +00:00
Michal Berger
367fc7a9cf test/bdev: Refactor nbd_function_test()
This function was a bit cluttered so simplify it. Also, it was
assuming nbd module was loaded into the kernel prior running it -
this could silently fail the nbd_all[@] setup in case it wasn't.
Always attempt to load nbd driver before the setup and fail hard
if the driver is not in place.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I5884973944eae3e827eaafec16ba72e2cb4f70e7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14994
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-10-27 09:06:37 +00:00
Michal Berger
f17fe62924 test/xnvme: Use null_blk device instead of zram for the backend device
zram doesn't support some of the uring-specific setup that xnvme may
be using, in particular the IORING_SETUP_IOPOLL, so switch to something
more common like null_blk module. For details see:

https://github.com/spdk/spdk/issues/2708

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I48b91ba356b4054433eb1835fa3e2708c8d2628c
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14920
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-10-27 09:06:37 +00:00
Richael Zhuang
db8083d908 bdevperf: reformat bdevperf output
Reformat the output of bdevperf and add header to explain unit of
values. With this change, the output example is:

 Device Information          : runtime(s)     IOPS   MiB/s   Fail/s  TO/s
 Job: NVMe0n1 (Core Mask 0x1)
         NVMe0n1             :      10.00 17444.35   68.14     3.00  0.00
 Job: NVMe0n1 (Core Mask 0x2)
         NVMe0n1             :      10.00 15580.05   60.86     3.00  0.00
 =======================================================
 Total                       :            33024.40  129.00     6.00  0.00

Change-Id: I82490d86a2a41fb4c3cbd8beb02a41ccd1b5d55f
Signed-off-by: Richael Zhuang <richael.zhuang@arm.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14917
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-10-26 07:34:03 +00:00
KanKuo
2fb9cd314f UT/nvme_cuse: test for spdk_nvme_cuse_get_ctrlr_name
Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: I425d108d0c1bed6d8302e1fb47a785ddf85e3095
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/10432
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>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
2022-10-26 07:28:37 +00:00
GangCao
03b1b86078 test/bdevperf: set a random seed for rand rw testing
To fix issue: #2726

And also fix the examples/nvme/perf tool.

The srand() only needs to be called once to set the seed of
futher more calls of rand().

Change-Id: I41ab3a46593513516ad11ea7a5b8960b449e9867
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15108
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-10-25 07:11:30 +00:00
Kamil Godzwon
fd487dbd8b iscsi_tgt/sock.sh: comment out test with openssl ktls option enabled
Do not run test with message send using hello_sock client with
KTLS enabled. CI does not have systems that run with openssl-3
and KTLS and it fails under Fedora36.

This test should be brought back after systems do run openssl-3
on board.

Signed-off-by: Kamil Godzwon <kamilx.godzwon@intel.com>
Change-Id: Id7c46ced745fb4564b7428202a902cb332d30b33
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14830
Reviewed-by: Michal Berger <michal.berger@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-10-21 07:33:15 +00:00
GangCao
eab96073cb test/bdevperf: set a random seed for rand rw testing
To fix issue: #2726

And also fix the examples/nvme/perf tool.

Change-Id: I4d1d362b7c1096d27a2d431851462d7bd161df88
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14911
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: Paul Luse <paul.e.luse@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Community-CI: Mellanox Build Bot
2022-10-21 07:16:50 +00:00
KanKuo
2b5f264e7b UT/bdev/part.c:add the test of io_channel
Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: I204fe95d734b21e2b26994bfd0fefb4a6d701d84
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14648
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Community-CI: Mellanox Build Bot
2022-10-21 07:12:54 +00:00
Michal Berger
a4719db420 test/nvmf: Remove redundant steps from fabrics_fuzz
Also, clear generated fuzz logs upon successful test run - they may
get quite big (> 250MB) in size which doesn't play well with the
artifacts limit CI enforces. If the test succeeded then there's no
point in keeping them around for any potential debugging.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I240e8217cd50dba258310604c6985d8f6a832756
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/15030
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: <sebastian.brzezinka@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
2022-10-19 07:51:33 +00:00
Michal Berger
28bfb8763b scripts/setup: Don't overwrite already allocated number of hugepages
Don't touch existing hp allocations when they already meet the NRHUGE
requirement. Introduce new environment switch, SHRINK_HUGE, to
override that new behavior.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I0cd124b98c3deb7c21b4fbd57529d0995978c2e5
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14912
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-10-19 07:49:22 +00:00
Konrad Sztyber
8c9ff451b2 test: remove SMA tests from skipped_tests
The SMA tests are now tested on CI, so they no longer need to be on the
skipped_tests list.

Signed-off-by: Konrad Sztyber <konrad.sztyber@intel.com>
Change-Id: I5746da06540efb1d3451a688fec4727d253bfc89
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14151
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Michal Berger <michal.berger@intel.com>
2022-10-19 07:47:20 +00:00
KanKuo
7315b003e0 UT/bdev/bdev_zone.c:add the test of zone_appendv
Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: I9f0fe81802d9eda640131a8bf7aec124b112206a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14694
Reviewed-by: Jun Wen <junx.wen@intel.com>
Reviewed-by: <yex.chen@intel.com>
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-10-18 07:30:10 +00:00
Michal Berger
f72f154719 autotest: Move the llvm_nvme_fuzz to test/fuzz
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I2ccdd807a6585dd7b24c01f3880df721147b1c71
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14555
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-10-17 12:38:20 +00:00
gongwei
6f445382a8 bdev_iscsi: add bdev iscsi config json
save bdev iscsi opts config

Signed-off-by: gongwei <gongwei833x@gmail.com>
Change-Id: I9601098b426b8c080ae374f2fa1c23eec14f140b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14898
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-10-17 12:37:36 +00:00
Pawel Piatek
f658f463a4 autobuild: tiny version
Allow to run AUTOBUILD test in two versions:
* full - original one
* tiny - minimalistic, currently only check format and
         check so deps

We want to reduce first phase of per-patch (called Pre-Tests)
by running only basic tests. To accomplish that we will run
autobuild test in tiny version. Full version will be executed
in second phase of per-patch (called Tests).

Signed-off-by: Pawel Piatek <pawelx.piatek@intel.com>
Change-Id: I87d503ec272080ab238cf5129c44f92d8bb690ed
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14481
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Michal Berger <michal.berger@intel.com>
2022-10-17 10:50:40 +00:00
Michal Berger
e802c16570 test/packaging: Introduce separate test suite for packaging
Move the RPM builds away from autopackage.sh into a dedicated test
suite - this will allow the actual packaging tests to be run in a
separate instance.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I23a824db7aa3a5e469bea9b2536a83ae0a5c8e04
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14937
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-10-17 10:48:31 +00:00
Michal Berger
465a09345c pkgdep/git: Add cherry-pick addressing changes for the latest liburing
See:
https://review.spdk.io/gerrit/c/spdk/spdk/+/12893

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I9dfd22e97645411bc24fdc0e62bb0dff9eed9abd
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14841
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-10-13 09:06:10 +00:00
Michal Berger
9535e0272c pkgdep/git: Add missing SPDK_TEST_XNVME flag
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I82d0cb1116b822f1a1111b19d2dd1286d8a399c4
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14829
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-10-13 09:06:10 +00:00
Michal Berger
458e1dc71f pkgdep/git: Remove cherry-picks for 22.05 release
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I2c7b0c450f76057af31c9501c1b9ac843e0e1ee8
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14828
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-10-13 09:06:10 +00:00
Michal Berger
8a810f5fdc test/common: Separate grep runs with a newline while creating a tests list
Without this, the second run of grep adds output directly behind the
last line of the first one. This results in the last test (from the
first run) always being filtered out from the list by the next sed
call.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I1aa5d2acfc28cccdee1464462b0350f0cbc346c7
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14756
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Pawel Piatek <pawelx.piatek@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-10-04 07:09:26 +00:00
GangCao
96679a2910 test/bdevperf: handle properly if not able to get io_channel
To fix issue: 2719

In this case, if there is successfully configured job and continue_on_failure (-f)
parameter is set, it will continue to run for these jobs. Otherwise, it will just
stop.

Change-Id: Ia2940a9e1b5da63e50857da11ff7f811c7576e3e
Signed-off-by: GangCao <gang.cao@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14747
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-10-04 07:07:04 +00:00
Krishna Kanth Reddy
8878c1735f uring: Fix the build issues with latest liburing
Modified the code to fix the build error
"error: redefinition of ‘io_uring_get_sqe’" when building SPDK
with the latest liburing code.

Signed-off-by: Krishna Kanth Reddy <krish.reddy@samsung.com>
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Ie331ef0bbce143c92e2d7192465af995c8f451e9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12893
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
2022-10-04 07:06:41 +00:00
KanKuo
9de5068c1a UT/bdev/scsi_nvme.c:add tests of translate test
Signed-off-by: KanKuo <kuox.kan@intel.com>
Change-Id: Ibd5a59a21e88b523ea01f22001c3cccb11094713
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14552
Community-CI: Mellanox Build Bot
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Dong Yi <dongx.yi@intel.com>
Reviewed-by: <qun.wan@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
2022-10-03 10:31:28 +00:00
Artur Paszkiewicz
030951b454 test/blockdev.sh: test raid5f
Change-Id: Id41448dc828d153ee328d9ce2d1dfff6e8fae5b7
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14718
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>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
9cf1ab5b1c module/raid: fix async module stopping
If the module stop handler is asynchronous we must wait until it
finishes before unregistering the io_device.

Change-Id: I149b716d9f4b0c1680b3e43b395fc9ec5b90d70c
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14717
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
3fc593b61f test/bdevio: adjust writes to write_unit_size
Make writes larger when necessary to comply with the bdev's write unit
size requirement.

Change-Id: Ief60d369bb3efb5de083c5951672e20f2dd9e0af
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14715
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
2e73b5c7fb test/bdevio: refactor two tests
Refactor blockdev_write_read_offset_plus_nbytes_equals_bdev_size() and
blockdev_write_read_offset_plus_nbytes_gt_bdev_size() to use
blockdev_write_read() similar to how it's done in other tests.

Change-Id: Iba853a0df1facd88ce7c206163386f6c8a9c7c1b
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14714
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
28932f6e42 ut/raid5f: test bdev_io error handling
Change-Id: I640827006c2c533f599af07931041009d7158e5e
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14712
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
c2eea87ac4 raid5f: calculate and write parity
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ia1b82d555c966b9b291eeb2426c42846b93e7fec
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7703
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
69c448a30e lib/util: add ISA-L accelerated xor generation
Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I3ef9dadb4c68e92760c8426f0fffb7b249829e2b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12080
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
7131bec415 raid5f: full stripe writes
Implement support for full stripe writes without parity calculation.

The size and alignment of write IOs must be a multiple of full stripe
size. To reflect this, the raid bdev's write_unit_size is set
accordingly. We rely on the bdev layer to split larger IOs based on
that.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: I6940280ad870f3bd678fd19346b06ba4bdadd52e
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7702
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
d6e9827e9f bdev: split writes based on write_unit_size
Add new bdev property split_on_write_unit which, if set to true, causes
writes to be split to match write_unit_size and fail if not aligned to
or not multiple of write_unit_size.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Id49f58a3288ddf5cfe4921ce4020ae4bcdd67298
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11390
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
95a0494902 module/raid: fix device destruction
Move device cleanup to spdk_io_device_unregister() callback. This fixes
a case when the device would be freed before its last io channel was
closed, leading to use after free condition.

Repurpose raid_bdev_free() to actually free the bdev.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Ib667b4d5ac1b34a0f2dda69f6b0775d9363dbfee
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/11398
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-29 22:52:45 +00:00
Artur Paszkiewicz
77bddc0f96 raid5f: read support
Depend on bdev layer to send down chunk sized IOs, based on
optimal_io_boundary.

Signed-off-by: Artur Paszkiewicz <artur.paszkiewicz@intel.com>
Change-Id: Iec45f4917117d35c3a9e807940e49091dfcba870
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/7699
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 22:52:45 +00:00
Changpeng Liu
6d7f012af4 test/vfio-user: add virtio_blk|scsi VM fio|restart test case
Change-Id: If5369e76d5be42005a2c26d10c04dc0b03cb9092
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14665
Reviewed-by: Michal Berger <michal.berger@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-29 19:42:56 +00:00
Changpeng Liu
39eba86723 test/vfio_user: rename existing vfio_user NVMe test cases
This is the preparation to add virtio device test cases
with vfio-user target.

Change-Id: I08a33ac9cb6c1a6239841077facbf84927383814
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14647
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 19:42:56 +00:00
Changpeng Liu
da231290b2 lib/vfu_tgt: add library for PCI device emulation
Previously SPDK use libvfio-user library to provide emulated NVMe
devices to VM, but it's limited to NVMe device type only.  Here we
add SPDK vfu_target library abstraction based on libvfio-user which
supports more PCI device types.

We will add virtio-blk and virtio-scsi devices emulation based on
vfu_tgt library in following patches, actually this library can
support NVMe emulation too, due to the fact that the NVMe emulation
is already exist, so we will keep the NVMe emulation which based on
libvfio-user directly as it is.

Change-Id: Ib0ead6c6118fa62308355fe432003dd928a2fae9
Signed-off-by: Changpeng Liu <changpeng.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12597
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-29 19:42:56 +00:00
Jim Harris
c7f5010984 env_dpdk: add dpdk_pci_device_get_mem_resource
This allows eliminating dpdk_pci_device_vtophys and
dpdk_pci_device_map_bar, reducing the amount of
code we need to maintain in the per-DPDK version
implementations.

Signed-off-by: Jim Harris <james.r.harris@intel.com>
Change-Id: I73d15eb75bf7fe8340d85494425e15651fec5425
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14722
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
2022-09-29 15:32:24 +00:00
MengjinWu
5eb3239cdf nvmf/tcp: Refine the macro definition of queue depth
Refine the macro definition name about queue depth and
prepare for next patch.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: I85bee2528ae4ab70292fc11aa62d05bae0c28a77
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14664
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Aleksey Marchuk <alexeymar@nvidia.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-09-28 06:39:14 +00:00
Krzysztof Karas
19c1d632f1 trace: update trace help inside SPDK target
Delete bit masks from trace help (found inside
build/bin/spdk_tgt -h help text), as they do not
provide useful information, are much harder to
remember and use, and migh leave user confused.
Since we provide trace group names anyway, bit masks
are excessive.

Change --tpoint-group-mask parameter name to
--tpoint-group, because we do not provide
bit masks anymore.

Drop "default" tpoint group mask from help text,
since it does not enable any tracepoints and
may confuse the user.

Change-Id: I2ca780883dfa7822e76523e9ba1fc65a7bfe5a99
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14656
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2022-09-27 19:41:17 +00:00
Sebastian Brzezinka
d5dc6a8853 test/llvm_vfio_fuzz: test normal IO during fuzzing
Second vfio-user ctrlr is use to perform normal IO while fuzzing other
one, misbehaving ctrlr should not affect IO operation.

-Y <path/to/ctrlr> Path of addition controller to perform normal io

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: I11c34e97723f9359bacd7866a9828a6d89c74992
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13882
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>
2022-09-27 19:41:07 +00:00
Michal Berger
87afc01e5a test/dd: Wait 1s before checking the noatime flag
This test has been recently failing in a way where atime is not
updated within the stat's %X resolution. Add simple sleep to
mitigate that.

Fixes issue: #2720.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I106357175028849ba037c9ee78c1e22a772fdfa3
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14675
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: wanghailiang <hailiangx.e.wang@intel.com>
Reviewed-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-27 15:42:06 +00:00
Jaroslaw Chachulski
3e5fc847c0 test/fuzz: Add '-s 256' argument to autofuzz_vhost.sh script
Add '-s 256' argument to 'autofuzz_vhost.sh' script. It was missed
in  https://review.spdk.io/gerrit/c/spdk/spdk/+/14249. Reorder flags
to be consistent with test/vhost/fuzz/fuzz.sh

Fixes issue #2716.

Signed-off-by: Jaroslaw Chachulski <jaroslawx.chachulski@intel.com>
Change-Id: I86ddc0b841c3733d10b51b062e61b6168fa3f2ca
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14672
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-27 15:41:43 +00:00
Michal Berger
9b8939660a test/scheduler: Fallback to checking user mode load if idle check fails
During tests, the main portion of the app's time is spent in user
mode when polling is in effect. Currently, the idleness of given cpu
is determined in comparision to all the possible states the cpu can
be in. This makes it easier for third party processes to impact the
idleness of the cpu (as it may be lowered via different kinds of
loads).

For instance, if target cpu suddenly sees spike in a system
load (even up to 100%) it should not be relevant for the test where
it's known that the app's polling utilized mainly user mode prior
switching the scheduler.

With that in mind, if the general idle check fails, lookup the
raw samples matching the user mode and if the load is relatively
low (<= 15%) consider this as a pass.

Signed-off-by: Michal Berger <michallinuxstuff@gmail.com>
Change-Id: I4ab260d8bcf20a69f2f0be10f0fd7be577682be3
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12909
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-26 15:36:07 +00:00
Michal Berger
7d080339ec test/scheduler: Set default value for $cpu_time
Also, adjust collect_cpu_idle()'s printout.

Signed-off-by: Michal Berger <michallinuxstuff@gmail.com>
Change-Id: I8ad18130591b0c91e6f4380e5a0e14eb41096639
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/12908
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-26 15:36:07 +00:00
Ben Walker
a36bc251df env_dpdk: Automatically map PCI BARs into VFIO
By doing the registration immediately upon mapping the BAR instead of
when the memory is inserted into the spdk_mem_map, we're able to
register BARs that are not 2MB multiples in size and alignment. The SPDK
API for registering a BAR already returns the physical/io address in the
map call, and it can be used directly without a call to
spdk_mem_register().

If the user does elect to later register the BAR using
spdk_mem_register(), we attempt to insert the 2MB aligned segments we
can into the spdk_mem_map. Users may still need to register memory for a
few reasons, such as making spdk_vtophys() work, or for setting up the
BAR as a target for RDMA. These cases still require 2MB aligned and
sized segments.

Change-Id: I395ae8803ec4bf22703f6f76db54200949e82532
Signed-off-by: Ben Walker <benjamin.walker@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14017
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Community-CI: Mellanox Build Bot
2022-09-26 11:48:39 +00:00
MengjinWu
8ed53eee32 nvmf/tcp: Fixed error handle in 'nvmf_tcp_req_parse_sgl'
Fixed error handles which are violated with spec:
1. 'data length > MAXH2CDATA' is a fatal error.
2. 'ICDOFF != 0' should abort the IO.

Other errors which are not defined in spec:
1. invalid sgl type
2. In-capsule Data length > In-capsule Data size

Because this function runs before data part receiving, it is hard
to skip the following data segment if we want to handle some error
as non-fatal.

Currently, we have to handle all undefined errors as fatal errors.

I think after this release, we can change receving process. This will
be helpful for error handling. But this work is not small.

Signed-off-by: MengjinWu <mengjin.wu@intel.com>
Change-Id: I8fc0d2d743505e49a93be19fd217e7ad6ca06622
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14580
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>
2022-09-23 18:26:36 +00:00
Sebastian Brzezinka
ddd13ef9a4 test/llvm_vfio_fuzz: fuzz VFIO_USER_REGION_WRITE/READ
This test try to read/write VFIO_PCI_BAR0_REGION_INDEX register at
at random offset and with random data. A single test use four bytes of
data because most of the registers are of this size or double of that.

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: I2b541258a8514f24900e8cdad8af791e01de4cfc
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14625
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-23 15:16:01 +00:00
Sebastian Brzezinka
66e8a09181 test/nvmf: add vfio-user fuzzing target
Add test to per-patch/nightly CI pipeline job

Change-Id: I6e1f92158ccc549967234a9a4e78330f2ccb9c9e
Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13818
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
2022-09-23 15:16:01 +00:00
Sebastian Brzezinka
ce57899f2d test/llvm_vfio_fuzz: initial commit for vfio-user fuzzer
This patch add tests that focus on fuzzing the control path of
vfio-user by imitate a misbehaving virtual machine. Test version
negotiation

Change-Id: I7179aad85d9181a1eb4d7f8805d030fcc775ed2c
Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13819
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-23 15:16:01 +00:00
Krzysztof Karas
ce29e0131f hotplug: use RPC instead of reading hotplug logs
A new RPC perform_tests has been added.
This request will help us avoid reading hotplug generated
logs, and instead we can stop hotplug right before
it begins generating IO, and resume it when the test
scripts are ready.

Additionally a new command line option has been added
to the hotplug application "--wait-for-rpc", which
indicates that hotplug should wait for
perform_tests RPC before starting its IO.

Change-Id: I71ca148201854ac155cc2a61171a4fb5fc427a19
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13962
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-23 12:54:44 +00:00
Artsiom Koltun
25fb8de082 test/sma: add test for multiple bus support for NVMe/vfio_user plugin
Add test to cover issue where device couldn't be found on
non-first attached bus.

Signed-off-by: Artsiom Koltun <artsiom.koltun@intel.com>
Change-Id: Ie876596c56a08a6f9b5c8b2283dfd6399fd8fffd
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14652
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: <sebastian.brzezinka@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-23 11:33:07 +00:00
paul luse
28886ac352 lib/accel: rename iovec elements with src prefix
In prep for adding both src and dst iovec support for compression.

Signed-off-by: paul luse <paul.e.luse@intel.com>
Change-Id: I704b8d2bd459de03deb7f8ee45d76261910a3727
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/13746
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>
2022-09-23 00:10:08 +00:00
Krzysztof Karas
dfc9894396 bdev: send bdev reset based on outstanding IO and a new timeout parameter
A new parameter io_drain_timeout has been added to spdk_bdev
structure. If this value is unset, the bdev reset behavior
does not change.
The io_drain_timeout controls how long a bdev reset must wait for IO
to complete prior to issuing a reset to the underlying device.
If there is no outstanding IO at the end of that period, the reset
is skipped.

Change-Id: I585af427064ce234a4f60afc3d69bc9fc3252432
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14501
Reviewed-by: Shuhei Matsumoto <smatsumoto@nvidia.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>
Community-CI: Mellanox Build Bot
2022-09-22 19:18:30 +00:00
Tomasz Zawadzki
eafb489c0d test/nvmf: do not limit qpairs in nvmf_vhost
nvmf_vhost test verifies multiple components at once.

In this case the number of NVMe-oF I/O qpairs per controller
is limited to just 4. When a VM connected to the vhost_tgt
is booted, the vhost controller is started/destroyed multiple
times. The quick succession of getting I/O channels and
asynchronous nature of NVMe-oF qpair deletion/creation,
results in exhausting the free qpair ids.

There is no reason to limit the number of NVMe-oF I/O qpairs
in this test. If there ever is a need, a new test could be added
exploring behaviour of components (like vhost) when get I/O channel
fails.

Fixes #2517

Change-Id: I32455c0499a1b79c82f921aaac193a83bd9cb468
Signed-off-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14626
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 16:02:26 +00:00
Michal Berger
9c0181451b nvme/perf: Read NUMA node id from nvme subsystem
Instead looking up the pci bus extract the info from the nvme
subsystem under sysfs. Also, remove deprecated commit about
buggy kernels - this shouldn't be the case for newer releases.

Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: I0ef46eb3b1935bd5bf86f7b06f9310ca8f1a1a2b
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14592
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
2022-09-22 15:53:18 +00:00
Michal Berger
6baf5d8359 nvme/perf: Add xnvme support into benchmark scripts
Signed-off-by: Michal Berger <michal.berger@intel.com>
Change-Id: Id77e499d25452bc07d595ed41e683c99082babd9
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14242
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Reviewed-by: Karol Latecki <karol.latecki@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 15:53:18 +00:00
Sebastian Brzezinka
4291ed5130 sma: support bdev-based QoS for vhost_blk devices
test/sma verifies that bdev-based QoS settings are correctly applied on
vhost devices.

Signed-off-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Change-Id: I1b66275dcf457295e6ae58814f1d08ed319fb52a
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14338
Reviewed-by: Konrad Sztyber <konrad.sztyber@intel.com>
Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2022-09-22 12:38:37 +00:00