]> www.infradead.org Git - users/hch/blktests.git/log
users/hch/blktests.git
6 years agoREADME: update required bash version
Omar Sandoval [Thu, 17 Jan 2019 01:38:08 +0000 (17:38 -0800)]
README: update required bash version

Bash 5 was recently released, so the bash 4 requirement is misleading.
Additionally, we also depend on some features in bash 4.2.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agocgroup: test if CGROUP2_DIR is set with -v instead of -n
Omar Sandoval [Thu, 17 Jan 2019 01:34:19 +0000 (17:34 -0800)]
cgroup: test if CGROUP2_DIR is set with -v instead of -n

common/multipath-over-rdma does set -u, so -n "$CGROUP2_DIR" fails with
an unbound variable error. Instead, use -v to test if the variable was
set.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoMerge pull request #43 from tytso/master
Omar Sandoval [Mon, 14 Jan 2019 21:07:16 +0000 (13:07 -0800)]
Merge pull request #43 from tytso/master

src/sg/syzkaller1.c: fix portability problem for syscall(__NR_mmap, ...)

6 years agoblock/008: avoid race with CPU offline and sched_setaffinity() in fio
Omar Sandoval [Mon, 14 Jan 2019 21:03:00 +0000 (13:03 -0800)]
block/008: avoid race with CPU offline and sched_setaffinity() in fio

This is a better fix for 4a2933fd0386 ("block/008: fix race between CPU
offline and fio startup"). Closes #41.

Reported-by: Signed-off-by: Ivan Mironov <mironov.ivan@gmail.com>
Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agosrc/sg/syzkaller1.c: fix portability problem for syscall(__NR_mmap, ...)
Theodore Ts'o [Mon, 7 Jan 2019 21:09:31 +0000 (16:09 -0500)]
src/sg/syzkaller1.c: fix portability problem for syscall(__NR_mmap, ...)

How mmap is mapped to a raw system call varies across different
architectures.  On some architectures (such as 32-bit ARM), __NR_mmap
may not exist at all; glibc will use __NR_mmap2 to implement mmap(2).
Syzkaller is using mmap() as a non-portable version of malloc(3), so
it should be safe to use the glibc's mmap wrapper instead of trying to
directly call the system call.

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
6 years agoblktests: add Ming Lei's scsi-stress-remove
Dennis Zhou [Thu, 20 Dec 2018 18:18:26 +0000 (12:18 -0600)]
blktests: add Ming Lei's scsi-stress-remove

This test exposed a race condiiton when shutting down a request_queue
with active IO against it and blkg association for the IOs [1]. The
issue ended up being that while the request_queue will just start
failing requests, blkg destruction sets the q->root_blkg to %NULL. This
caused a NPE. This was fixed in [2].

So to help prevent this from happening again, integrate Ming's test into
blktests so that it can more easily be ran. Here I've ported it to fit
better into the blktests framework.

[1] https://lore.kernel.org/lkml/20181205171039.73066-1-dennis@kernel.org/
[2] https://lore.kernel.org/lkml/20181211230308.66276-1-dennis@kernel.org/

Signed-off-by: Dennis Zhou <dennis@kernel.org>
Cc: Ming Lei <ming.lei@redhat.com>
6 years agoblktests: split out cgroup2 controller and file check
Dennis Zhou [Thu, 20 Dec 2018 18:18:25 +0000 (12:18 -0600)]
blktests: split out cgroup2 controller and file check

This is a prep patch for a new test that will race blkg association and
request_queue cleanup. As blkg association is a underlying cgroup io
controller feature, we need the ability to check if the controller is
available.

Signed-off-by: Dennis Zhou <dennis@kernel.org>
6 years agoblktests: add cgroup2 infrastructure
Josef Bacik [Wed, 5 Dec 2018 15:34:03 +0000 (10:34 -0500)]
blktests: add cgroup2 infrastructure

In order to test io.latency and other cgroup related things we need some
supporting helpers to setup and tear down cgroup2.  This adds support
for checking that we can even configure cgroup2 things, set them up if
need be, and then add the cleanup stuff to the main cleanup function so
everything is always in a clean state.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
[Omar: split into separate file, fix shellcheck errors, rework
 cleanup/exit]
Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoblktests: Fix compilation warning
Damien Le Moal [Mon, 17 Dec 2018 05:51:08 +0000 (14:51 +0900)]
blktests: Fix compilation warning

Fix strncpy length to "sizeof(buf) - 1" to avoid the compiler warning:
cc  -O2 -Wall -Wshadow  -o sg/syzkaller1 sg/syzkaller1.c
sg/syzkaller1.c: In function ‘syz_open_dev.constprop’:
sg/syzkaller1.c:204:16: warning: ‘strncpy’ specified bound 1024 equals
destination size [-Wstringop-truncation]
     NONFAILING(strncpy(buf, (char*)a0, sizeof(buf)));
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
sg/syzkaller1.c:143:7: note: in definition of macro ‘NONFAILING’
       __VA_ARGS__;                                                     \
       ^~~~~~~~~~~

Since the last character of buf is forced set to 0, there is no
functional change introduced by this patch.

Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
6 years agoscsi/006: allow changing cache_type to fail
Omar Sandoval [Tue, 18 Dec 2018 20:15:56 +0000 (12:15 -0800)]
scsi/006: allow changing cache_type to fail

Some devices don't support all cache types. Allow setting the cache type
to fail with EINVAL. On success, make sure it was changed to the desired
value.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoMerge pull request #39 from bvanassche/master
Omar Sandoval [Fri, 7 Dec 2018 18:13:57 +0000 (10:13 -0800)]
Merge pull request #39 from bvanassche/master

Two improvements for the srp tests

6 years agocommon/multipath-over-rdma: Retry unloading rdma_rxe if necessary
Bart Van Assche [Tue, 27 Nov 2018 20:57:11 +0000 (12:57 -0800)]
common/multipath-over-rdma: Retry unloading rdma_rxe if necessary

If any context, e.g. queued work, holds a reference on an rdma_rxe
device then it can happen that the first unload attempt fails. Try
several times to unload that kernel module if the first unload
attempt fails.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agosrp and nvmeof-mp: Check whether legacy dm is supported
Bart Van Assche [Tue, 30 Oct 2018 20:04:52 +0000 (13:04 -0700)]
srp and nvmeof-mp: Check whether legacy dm is supported

Kernel commit 6a23e05c2fe3 ("dm: remove legacy request-based IO path")
retained dm-mq but removed the legacy dm code. Skip those tests that
require the legacy dm code.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agoChange _have_module -> _have_modules
Omar Sandoval [Thu, 6 Dec 2018 19:00:04 +0000 (11:00 -0800)]
Change _have_module -> _have_modules

This way, we can report all missing modules at once.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agotests/srp: add ib_uverbs to list of modules
Omar Sandoval [Thu, 6 Dec 2018 18:38:38 +0000 (10:38 -0800)]
tests/srp: add ib_uverbs to list of modules

While we're here, sort the list.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoblock/025: test discard sector alignement and sector size overflow
Ming Lei [Thu, 15 Nov 2018 04:00:17 +0000 (12:00 +0800)]
block/025: test discard sector alignement and sector size overflow

This test covers the following two issues:

1) discard sector need to be aligned with logical block size

2) make sure 'sector_t' instead of 'unsigned int' is used when comparing
with discard sector size

Signed-off-by: Ming Lei <ming.lei@redhat.com>
[Omar: reword description]
Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoAdd use of logger so that syslog files show when each test starts
Theodore Ts'o [Mon, 29 Oct 2018 16:15:57 +0000 (12:15 -0400)]
Add use of logger so that syslog files show when each test starts

Signed-off-by: Theodore Ts'o <tytso@mit.edu>
6 years agoCheck permissions of output files in make check
Omar Sandoval [Mon, 26 Nov 2018 19:31:33 +0000 (11:31 -0800)]
Check permissions of output files in make check

Output files should not be executable.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoFix permissions of golden output files
Michael Moese [Thu, 22 Nov 2018 09:25:16 +0000 (10:25 +0100)]
Fix permissions of golden output files

Four of the golden outputs had execute bits set. However, like all the
other .out-files, their permission should be restricted to 644.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Michael Moese <mmoese@suse.de>
6 years agoMerge pull request #37 from bvanassche/master
Omar Sandoval [Wed, 14 Nov 2018 22:34:58 +0000 (14:34 -0800)]
Merge pull request #37 from bvanassche/master

Fix 32-bit build and add a Travis configuration file

6 years agomakefile: Add install rule
Gwendal Grignou [Wed, 14 Nov 2018 19:39:31 +0000 (11:39 -0800)]
makefile: Add install rule

Add rule to install to a target directory, /usr/local/blktests by
default.

Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
6 years ago.travis.yml: Add to repository
Bart Van Assche [Thu, 1 Nov 2018 15:06:51 +0000 (08:06 -0700)]
.travis.yml: Add to repository

Automatically build binaries upon 'git push' with -Werror to avoid that
new build errors or warnings get introduced.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agosrc/sg/syzkaller1.c: Fix a 32-bit compiler warning
Bart Van Assche [Thu, 1 Nov 2018 15:25:27 +0000 (08:25 -0700)]
src/sg/syzkaller1.c: Fix a 32-bit compiler warning

Avoid that clang reports the following warning when building in 32-bit mode:

sg/syzkaller1.c:405:34: error: implicit conversion from 'unsigned long long' to
      'uintptr_t' (aka 'unsigned int') changes value from 18446744073709551615
      to 4294967295 [-Werror,-Wconstant-conversion]
                         0x32ul, 0xfffffffffffffffful, 0x0ul, 0, 0, 0);
                                 ^~~~~~~~~~~~~~~~~~~~

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agosrc/discontiguous-io: Do not shadow variables
Bart Van Assche [Mon, 29 Oct 2018 21:34:00 +0000 (14:34 -0700)]
src/discontiguous-io: Do not shadow variables

Avoid using variables in an inner scope with the same name as variables in
an outer scope. Enable the -Wshadow compiler flag for C and C++ source
files such that in the future the compiler will complain about shadowing.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agoFix build failure for discontiguous-io on 32-bit platforms
Theodore Ts'o [Tue, 30 Oct 2018 14:36:49 +0000 (10:36 -0400)]
Fix build failure for discontiguous-io on 32-bit platforms

Avoid that building with a 32-bit compiler fails as follows:
discontiguous-io.cpp:294:34: error: no matching function for call to 'min(long unsigned int, size_t)'
         std::min(4ul, len - i * 4));
                                  ^
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
[bvanassche: elaborated commit message]
Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agoloop/006: Add test for oops during backing file verification
Jan Kara [Thu, 18 Oct 2018 10:31:47 +0000 (12:31 +0200)]
loop/006: Add test for oops during backing file verification

Add regression test for patch "block/loop: Use global lock for ioctl()
operation." where we can oops while traversing list of loop devices
backing newly created device.

Signed-off-by: Jan Kara <jack@suse.cz>
[Omar: rename to 006, change description]
Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoblktest: remove instances of null_blk queue_mode=1
Jens Axboe [Thu, 25 Oct 2018 20:49:04 +0000 (14:49 -0600)]
blktest: remove instances of null_blk queue_mode=1

This is no longer supported in recent kernels, get rid of any testing of
queue_mode=1. queue_mode=1 tested the legacy IO path, which is going
away completely. As such, there's no point in doing anymore testing with
it.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
6 years agoConvert license headers to SPDX tags
Omar Sandoval [Fri, 5 Oct 2018 21:12:47 +0000 (14:12 -0700)]
Convert license headers to SPDX tags

This gets rid of the noisy boilerplate at the beginning of every file.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoAdd NVMeOF dm-mpath tests
Bart Van Assche [Mon, 17 Sep 2018 16:59:46 +0000 (09:59 -0700)]
Add NVMeOF dm-mpath tests

Add a series of tests for the NVMeOF drivers on top of the dm-mpath
driver. These tests are similar to the tests under tests/srp. Both
tests use the dm-mpath driver for multipath and the loopback
functionality of the rdma_rxe driver. The only difference is that the
nvmeof-mp tests use the NVMeOF initiator and target drivers instead
of the SRP initiator and target drivers.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agocommon/multipath-over-rdma: Log fio exit code
Bart Van Assche [Wed, 26 Sep 2018 21:20:09 +0000 (14:20 -0700)]
common/multipath-over-rdma: Log fio exit code

Log the fio exit code to make it easier to analyze test failures.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agocommon/multipath-over-rdma: Improve robustness
Bart Van Assche [Tue, 25 Sep 2018 23:35:58 +0000 (16:35 -0700)]
common/multipath-over-rdma: Improve robustness

Detect all test setup failures and report any failures.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agocommon/multipath-over-rdma: Make teardown() shut down the client
Bart Van Assche [Tue, 25 Sep 2018 23:43:09 +0000 (16:43 -0700)]
common/multipath-over-rdma: Make teardown() shut down the client

This ensures that no multipath definitions created during a test remain
after a test has finished.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agocommon/multipath-over-rdma: Fix is_qinp_def()
Bart Van Assche [Tue, 25 Sep 2018 23:42:11 +0000 (16:42 -0700)]
common/multipath-over-rdma: Fix is_qinp_def()

Make is_qinp_def() recognize the queue_if_no_path keyword correctly.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp/rc, common/multipath-over-rdma: Introduce setup_rdma()
Bart Van Assche [Tue, 25 Sep 2018 23:57:16 +0000 (16:57 -0700)]
tests/srp/rc, common/multipath-over-rdma: Introduce setup_rdma()

Move the code that will be reused by the NVMeOF tests into a new
function. This patch does not change any functionality.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp: Move reusable code into common/multipath-over-rdma
Bart Van Assche [Thu, 27 Sep 2018 17:48:58 +0000 (10:48 -0700)]
tests/srp: Move reusable code into common/multipath-over-rdma

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp/rc: Move the multipathd reconfiguration command into the get_bdev() loop
Bart Van Assche [Thu, 27 Sep 2018 17:50:44 +0000 (10:50 -0700)]
tests/srp/rc: Move the multipathd reconfiguration command into the get_bdev() loop

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp/rc: Rework get_bdev()
Bart Van Assche [Wed, 26 Sep 2018 21:27:45 +0000 (14:27 -0700)]
tests/srp/rc: Rework get_bdev()

Replace the function get_bdev_uid() by the function get_bdev_path().
Call that new function every iteration instead of only once.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp: Remove /etc/multipath.conf after a test has finished
Bart Van Assche [Mon, 17 Sep 2018 16:59:38 +0000 (09:59 -0700)]
tests/srp: Remove /etc/multipath.conf after a test has finished

Instead of removing /etc/multipath.conf before a test starts, remove it
after a test has finished. This change is needed to let the nvmeof-mp
tests run after the srp tests have been run.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp: Remove unused code
Bart Van Assche [Mon, 17 Sep 2018 16:59:18 +0000 (09:59 -0700)]
tests/srp: Remove unused code

Remove all code that depends on $nvme != "" and also the $nvme variable
itself.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agotests/srp/012: Do not fail if not all schedulers are available
Bart Van Assche [Tue, 25 Sep 2018 23:34:43 +0000 (16:34 -0700)]
tests/srp/012: Do not fail if not all schedulers are available

Avoid that test 012 returns exit code 1 (failure) even if fio succeeded
due to an I/O scheduler not being available.

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
6 years agoblock: add a test for iostats time with fast I/Os
Omar Sandoval [Sat, 22 Sep 2018 00:09:41 +0000 (17:09 -0700)]
block: add a test for iostats time with fast I/Os

This is similar to block/018, but all of the I/Os take less than a
jiffy, which tests b57e99b4b8b0 ("block: use nanosecond resolution for
iostat").

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoblock/018: use _init_null_blk
Omar Sandoval [Mon, 24 Sep 2018 17:24:42 +0000 (10:24 -0700)]
block/018: use _init_null_blk

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agonvme: add NVMeOF list-subsys test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:27 +0000 (19:24 -0700)]
nvme: add NVMeOF list-subsys test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF ns-rescan test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:26 +0000 (19:24 -0700)]
nvme: add NVMeOF ns-rescan test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF ns-desc test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:25 +0000 (19:24 -0700)]
nvme: add NVMeOF ns-desc test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF effects-log test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:24 +0000 (19:24 -0700)]
nvme: add NVMeOF effects-log test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF smart-log test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:23 +0000 (19:24 -0700)]
nvme: add NVMeOF smart-log test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF smart-log test for bdev-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:22 +0000 (19:24 -0700)]
nvme: add NVMeOF smart-log test for bdev-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF reset test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:21 +0000 (19:24 -0700)]
nvme: add NVMeOF reset test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF list test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:20 +0000 (19:24 -0700)]
nvme: add NVMeOF list test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF DSM discard test for file-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:19 +0000 (19:24 -0700)]
nvme: add NVMeOF DSM discard test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agonvme: add NVMeOF DSM discard test for bdev-ns
Chaitanya Kulkarni [Tue, 18 Sep 2018 02:24:18 +0000 (19:24 -0700)]
nvme: add NVMeOF DSM discard test for bdev-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
6 years agoblock: add smoke test for queue_mode=0
Omar Sandoval [Wed, 12 Sep 2018 23:55:00 +0000 (16:55 -0700)]
block: add smoke test for queue_mode=0

Linux kernel commit ca4b2a011948 ("null_blk: add zone support") broke
null_blk queue_mode=0. None of the existing tests use bio mode, so add a
test which does a very basic test of all modes.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoscsi: add test that toggles cache_type
Omar Sandoval [Tue, 28 Aug 2018 22:10:06 +0000 (15:10 -0700)]
scsi: add test that toggles cache_type

This is Jens' easy reproducer for
https://www.spinics.net/lists/linux-block/msg29942.html.

Signed-off-by: Omar Sandoval <osandov@fb.com>
6 years agoblktests: remove unused null_blk parameter for _init_null_blk in block/016
Yi Zhang [Sat, 25 Aug 2018 10:06:19 +0000 (18:06 +0800)]
blktests: remove unused null_blk parameter for _init_null_blk in block/016

Reviewed-by: Gioh Kim <gi-oh.kim@profitbricks.com>
Signed-off-by: Yi Zhang <yi.zhang@redhat.com>
6 years agoDelete nvme/001
Omar Sandoval [Fri, 10 Aug 2018 18:07:59 +0000 (11:07 -0700)]
Delete nvme/001

Johannes pointed out that the format of this tracepoint is going to
change in 4.19, which will make this test fail. Now that we have a slew
of real NVMe tests, we can do without this one. We can always add it
back if we decide it's useful later.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agoblktests: add NVMeOF many file-ns creation test
Chaitanya Kulkarni [Wed, 27 Jun 2018 22:40:53 +0000 (18:40 -0400)]
blktests: add NVMeOF many file-ns creation test

This patch adds a new testcase to exercise a large number of ns
creation and deletion along with discovery command.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeOF many bdev-ns creation test
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:53 +0000 (05:15 -0400)]
blktests: add NVMeOF many bdev-ns creation test

This patch adds a new testcase to exercise a large number of ns
creation and deletion along with discovery command.

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeOF flush test for file-ns
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:52 +0000 (05:15 -0400)]
blktests: add NVMeOF flush test for file-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeOF flush test for bdev-ns
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:51 +0000 (05:15 -0400)]
blktests: add NVMeOF flush test for bdev-ns

Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agocheck: add --output parameter
Omar Sandoval [Wed, 25 Jul 2018 21:18:37 +0000 (14:18 -0700)]
check: add --output parameter

In case we want to store the results somewhere other than ./results.
Based on a patch from Hannes Reinecke.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agosrc: add -std=c++11 to C++ build flags
Omar Sandoval [Wed, 25 Jul 2018 21:25:03 +0000 (14:25 -0700)]
src: add -std=c++11 to C++ build flags

Certain distributions like to ship ancient relics for compilers.
Fixes #31.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agocommon/rc: search harder for pci device
Johannes Thumshirn [Wed, 4 Jul 2018 11:40:12 +0000 (13:40 +0200)]
common/rc: search harder for pci device

Some multipathed NVMe devices have a bit of a different sysfs layout
then we've expoected them to have in the first place.

Try harder searching for a pci device if we encounter such a device.

This fixes issue #26.

Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
7 years agoAdd tests for the SRP initiator and target drivers
Bart Van Assche [Tue, 19 Jun 2018 20:39:23 +0000 (13:39 -0700)]
Add tests for the SRP initiator and target drivers

This patch adds the following tests:
001: Create and remove LUNs
002: File I/O on top of multipath concurrently with logout and login (mq)
003: File I/O on top of multipath concurrently with logout and login (sq)
004: File I/O on top of multipath concurrently with logout and login (sq-on-mq)
005: Direct I/O with large transfer sizes, cmd_sg_entries=255 and bs=4M
006: Direct I/O with large transfer sizes, cmd_sg_entries=255 and bs=8M
007: Direct I/O with large transfer sizes, cmd_sg_entries=1 and bs=4M
008: Direct I/O with large transfer sizes, cmd_sg_entries=1 and bs=8M
009: Buffered I/O with large transfer sizes, cmd_sg_entries=255 and bs=4M
010: Buffered I/O with large transfer sizes, cmd_sg_entries=255 and bs=8M
011: Block I/O on top of multipath concurrently with logout and login
012: dm-mpath on top of multiple I/O schedulers
013: Direct I/O using a discontiguous buffer

Other changes in this patch are:
- Add function _have_kernel_option to common/rc.
- Add file tests/srp/rc with shell functions that are used by multiple SRP
  tests.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agoAdd the discontiguous-io test program
Bart Van Assche [Wed, 20 Jun 2018 22:58:17 +0000 (15:58 -0700)]
Add the discontiguous-io test program

This test program will be used by one of the srp tests.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agosrc/Makefile: Move -Wall from the C compilation rule to the $(CFLAGS) variable
Bart Van Assche [Thu, 5 Jul 2018 18:25:59 +0000 (11:25 -0700)]
src/Makefile: Move -Wall from the C compilation rule to the $(CFLAGS) variable

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agosrc/Makefile: Introduce the C_TARGETS variable
Bart Van Assche [Wed, 27 Jun 2018 21:02:39 +0000 (14:02 -0700)]
src/Makefile: Introduce the C_TARGETS variable

This patch does not change any functionality but will make it easier
to add support for building C++ code.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agocheck: Make $FULL an absolute path
Bart Van Assche [Fri, 29 Jun 2018 21:03:35 +0000 (14:03 -0700)]
check: Make $FULL an absolute path

This makes it safe to use $FULL in shell code that modifies (and
restores) the working directory.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agodir-locals.el: Add c-mode settings
Bart Van Assche [Thu, 5 Jul 2018 18:04:45 +0000 (11:04 -0700)]
dir-locals.el: Add c-mode settings

Add c-mode settings for the files in the src directory. Additionally,
make indent-tabs-mode global such that it also applies to the
.dir-locals.el file itself.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agoblock/008: fix race between CPU offline and fio startup
Omar Sandoval [Fri, 6 Jul 2018 21:42:23 +0000 (14:42 -0700)]
block/008: fix race between CPU offline and fio startup

If fio is still setting up when we start hotplugging CPUs, fio can fail
with "clock setaffinity failed: Invalid argument". That comes from
calling sched_setaffinity() on an offline CPU. We can make this much
less likely to happen by sleeping before we start hotplugging.

Fixes #28.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agoMerge pull request #27 from gurugio/master
Omar Sandoval [Fri, 6 Jul 2018 21:33:28 +0000 (14:33 -0700)]
Merge pull request #27 from gurugio/master

Add null_blk helpers and settle udev before unloading null_blk

7 years agodir-locals.el: fix indenation with Emacs
Johannes Thumshirn [Fri, 6 Jul 2018 08:21:28 +0000 (10:21 +0200)]
dir-locals.el: fix indenation with Emacs

A recent update of Emacs broke .dir-locals.el's shell indentation
setting.

Also set 'sh-indentation' not just 'sh-basic-offset' for this.

Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agoblock: apply null_blk helpers
Gioh Kim [Wed, 4 Jul 2018 10:53:30 +0000 (12:53 +0200)]
block: apply null_blk helpers

use null_blk helpers to load/unload null_blk module

Signed-off-by: Gioh Kim <gi-oh.kim@profitbricks.com>
7 years agocommon: make helpers for null_blk module
Gioh Kim [Wed, 4 Jul 2018 10:51:20 +0000 (12:51 +0200)]
common: make helpers for null_blk module

Common helpers for loading/unloading null_blk module.
It settles udev before loading/unloading.

Signed-off-by: Gioh Kim <gi-oh.kim@profitbricks.com>
7 years agoblock: settle udev before removing null_blk module
Gioh Kim [Wed, 4 Jul 2018 10:30:14 +0000 (12:30 +0200)]
block: settle udev before removing null_blk module

prevent "modprobe: FATAL: Module null_blk is in use." errors.

Signed-off-by: Gioh Kim <gi-oh.kim@profitbricks.com>
7 years agoblktests: add timeout smoketest for !mq
Jens Axboe [Tue, 19 Jun 2018 17:21:13 +0000 (11:21 -0600)]
blktests: add timeout smoketest for !mq

Identical to block/014, except we test the legacy IO path instead
of blk-mq.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoblock/014: make it explicit that we're testing blk-mq timeouts
Jens Axboe [Tue, 19 Jun 2018 18:07:38 +0000 (12:07 -0600)]
block/014: make it explicit that we're testing blk-mq timeouts

Signed-off-by: Jens Axboe <axboe@kernel.dk>
7 years agoscsi: regression test for SCSI device blacklisting
Hannes Reinecke [Wed, 9 Aug 2017 10:50:06 +0000 (12:50 +0200)]
scsi: regression test for SCSI device blacklisting

SCSI device blacklisting seems to be a tricky subject, with lots of
potential for messing up the selection algorithm. This adds a test for
catching regressions here.

Signed-off-by: Hannes Reinecke <hare@suse.com>
[Omar: updated to use improved scsi_debug helpers]
Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agocheck: fix TEST_DEVS being overwritten
Omar Sandoval [Tue, 26 Jun 2018 20:09:43 +0000 (13:09 -0700)]
check: fix TEST_DEVS being overwritten

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agocheck: allow setting config options as environment variables
Omar Sandoval [Tue, 26 Jun 2018 20:07:43 +0000 (13:07 -0700)]
check: allow setting config options as environment variables

Closes #25.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agonew: sort group names
Omar Sandoval [Tue, 26 Jun 2018 18:49:59 +0000 (11:49 -0700)]
new: sort group names

And replace the unnecessary bash loop with more find flags.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agoMake group/rc and common/rc sources explicit and reenable SC2034
Omar Sandoval [Tue, 26 Jun 2018 18:27:11 +0000 (11:27 -0700)]
Make group/rc and common/rc sources explicit and reenable SC2034

SC2034 (unused variable) is a useful warning, but we disabled it because
we set a bunch of global variables as test metadata. However, this is
easy to work around: as Bart demonstrated, an echo "$VAR" > /dev/null
does the trick.

However, we don't want to copy-and-paste this everywhere, so we need to
source something everywhere. Bart's idea was to put this in
common/shellcheck and source that everywhere. Sourcing a file just to
appease the linter is silly, though, so instead, this adds explicit
sources of tests/*/rc to each test, which in turn sources common/rc,
which in turn sources common/shellcheck.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agoRename tests/*/group to tests/*/rc
Omar Sandoval [Tue, 26 Jun 2018 18:00:35 +0000 (11:00 -0700)]
Rename tests/*/group to tests/*/rc

The following change is going to add an explicit source of these to the
tests themselves, and this naming makes more sense in that context.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agocheck: Make TMPDIR absolute
Bart Van Assche [Fri, 22 Jun 2018 22:19:43 +0000 (15:19 -0700)]
check: Make TMPDIR absolute

This avoids that ${TMPDIR} gets misinterpreted if a test script
modifies the working directory.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agomake check: Also check tests/*/group files
Bart Van Assche [Fri, 22 Jun 2018 22:19:42 +0000 (15:19 -0700)]
make check: Also check tests/*/group files

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agotests/meta/group: Fix shellcheck complaints
Bart Van Assche [Fri, 22 Jun 2018 22:19:41 +0000 (15:19 -0700)]
tests/meta/group: Fix shellcheck complaints

Avoid that shellcheck complains about unused global variables.
Avoid that shellcheck complains about using cat instead of
redirection.

Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agoMakefile: reenable some shellcheck warnings
Omar Sandoval [Mon, 25 Jun 2018 19:21:23 +0000 (12:21 -0700)]
Makefile: reenable some shellcheck warnings

Bart's patches fixed several shellcheck warnings which we previously
disabled. Reenable them.

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agocheck: Suppress a shellcheck warning about the DMESG_FILTER initialization
Bart Van Assche [Tue, 19 Jun 2018 20:23:52 +0000 (13:23 -0700)]
check: Suppress a shellcheck warning about the DMESG_FILTER initialization

Avoid that shellcheck reports the following:

check:396:2: warning: Use var=$(command) to assign output (or quote to assign string). [SC2209]

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agoMultiple tests: remove unused and undefined variables
Bart Van Assche [Tue, 19 Jun 2018 20:23:50 +0000 (13:23 -0700)]
Multiple tests: remove unused and undefined variables

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
Cc: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agocheck, tests/meta/012: Use array["index"] instead of array[index]
Bart Van Assche [Tue, 19 Jun 2018 20:23:47 +0000 (13:23 -0700)]
check, tests/meta/012: Use array["index"] instead of array[index]

This causes shellcheck to stop complaining about these array element
accesses.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agoAnnotate include statements in shell scripts where the source file is a variable
Bart Van Assche [Tue, 19 Jun 2018 20:23:46 +0000 (13:23 -0700)]
Annotate include statements in shell scripts where the source file is a variable

This causes shellcheck to stop complaining about these include statements.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agocommon/rc: Fix _have_tracepoint()
Bart Van Assche [Tue, 19 Jun 2018 20:23:45 +0000 (13:23 -0700)]
common/rc: Fix _have_tracepoint()

Make sure that _have_tracepoint() uses the argument passed to that
function instead of using an undefined variable.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com>
7 years agocheck: add command line switch to test device drivers only
Johannes Thumshirn [Tue, 12 Jun 2018 09:57:06 +0000 (11:57 +0200)]
check: add command line switch to test device drivers only

Sometimes it's useful to only run tests which exercise a device special
driver to verify a patch for the driver doesn't introduce a regression.

Running the whole test-suite is just a waste of time in this case, so
provide a way to only run tests which have a test_device() function set
and not a test() function.

Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
[Omar: fix argument parsing, move check to found_test(), add documentation]
Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agocheck: fix QUICK_RUN && ! TIMEOUT check
Omar Sandoval [Mon, 25 Jun 2018 18:09:18 +0000 (11:09 -0700)]
check: fix QUICK_RUN && ! TIMEOUT check

Signed-off-by: Omar Sandoval <osandov@fb.com>
7 years agoblktests: add NVMeOF mkfs test for file-ns
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:50 +0000 (05:15 -0400)]
blktests: add NVMeOF mkfs test for file-ns

This adds a new test which formats the ns with file system on the host side
and runs fio data verification workload.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeOF mkfs test for bdev-ns
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:49 +0000 (05:15 -0400)]
blktests: add NVMeOF mkfs test for bdev-ns

This adds a new test which formats the ns with file system on the host side
and runs fio data verification workload.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeOF data verification test for file-ns
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:48 +0000 (05:15 -0400)]
blktests: add NVMeOF data verification test for file-ns

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeoF data verification test for bdev-ns
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:47 +0000 (05:15 -0400)]
blktests: add NVMeoF data verification test for bdev-ns

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add fio data verification routine
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:46 +0000 (05:15 -0400)]
blktests: add fio data verification routine

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>
7 years agoblktests: add NVMeOF file-ns host creation
Chaitanya Kulkarni [Mon, 11 Jun 2018 09:15:45 +0000 (05:15 -0400)]
blktests: add NVMeOF file-ns host creation

This adds a new unit test to create NVMeOF target and host.
In the test we create one file backed namespace on target.

Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
Signed-off-by: Chaitanya Kulkarni <chaitanya.kulkarni@wdc.com>