From: Ming Lei <ming.lei@redhat.com>
To: Jens Axboe <axboe@kernel.dk>, linux-block@vger.kernel.org
Cc: Caleb Sander Mateos <csander@purestorage.com>,
Uday Shankar <ushankar@purestorage.com>,
Alexander Atanasov <alex@zazolabs.com>,
linux-kselftest@vger.kernel.org, Shuah Khan <shuah@kernel.org>,
Ming Lei <ming.lei@redhat.com>
Subject: [PATCH 0/9] selftests: ublk: test infrastructure improvements
Date: Sun, 1 Feb 2026 00:23:31 +0800 [thread overview]
Message-ID: <20260131162342.13872-1-ming.lei@redhat.com> (raw)
Hi,
This series improves the ublk selftests infrastructure with better
organization and parallel test execution support.
Key improvements:
1. Infrastructure enhancements:
- Add helper functions for device cleanup and parallel execution
- Implement group-based test targets for running test subsets
- Track created devices for proper per-test cleanup
- Increase timeouts to accommodate parallel test execution
- Test time can be reduced to 1/3 with parallel execution by passing JOBS=8
2. Test organization:
- Reorganize tests into logical groups (integrity, recover)
- Refactor large tests into modular functions for maintainability
3. I/O ordering verification:
- Remove test_generic_01.sh prone to false positives from block layer reordering
- Improve test_generic_02.sh with bpftrace-based verification
- Use block_io_start/block_rq_complete tracepoints for accurate tracking
These changes make the test suite more maintainable, easier to run in parallel,
and more reliable in detecting actual ublk driver issues vs. false positives.
Ming Lei (9):
selftests: ublk: simplify UBLK_TEST_DIR handling
selftests: ublk: refactor test_loop_08 into separate functions
selftests: ublk: add _ublk_del_dev helper function
selftests: ublk: track created devices for per-test cleanup
selftests: ublk: add group-based test targets
selftests: ublk: add _ublk_sleep helper for parallel execution
selftests: ublk: increase timeouts for parallel test execution
selftests: ublk: reorganize tests into integrity and recover groups
selftests: ublk: improve I/O ordering test with bpftrace
tools/testing/selftests/ublk/Makefile | 54 ++++++-
tools/testing/selftests/ublk/test_common.sh | 51 +++++--
.../testing/selftests/ublk/test_generic_01.sh | 47 ------
.../testing/selftests/ublk/test_generic_02.sh | 22 ++-
.../testing/selftests/ublk/test_generic_16.sh | 4 +-
.../{test_null_04.sh => test_integrity_01.sh} | 8 +-
.../selftests/ublk/test_integrity_02.sh | 141 ++++++++++++++++++
tools/testing/selftests/ublk/test_loop_08.sh | 110 --------------
tools/testing/selftests/ublk/test_part_02.sh | 6 +-
...{test_generic_04.sh => test_recover_01.sh} | 0
...{test_generic_05.sh => test_recover_02.sh} | 0
...{test_generic_11.sh => test_recover_03.sh} | 0
...{test_generic_14.sh => test_recover_04.sh} | 0
tools/testing/selftests/ublk/trace/seq_io.bt | 47 ++++--
14 files changed, 284 insertions(+), 206 deletions(-)
delete mode 100755 tools/testing/selftests/ublk/test_generic_01.sh
rename tools/testing/selftests/ublk/{test_null_04.sh => test_integrity_01.sh} (96%)
create mode 100755 tools/testing/selftests/ublk/test_integrity_02.sh
delete mode 100755 tools/testing/selftests/ublk/test_loop_08.sh
rename tools/testing/selftests/ublk/{test_generic_04.sh => test_recover_01.sh} (100%)
rename tools/testing/selftests/ublk/{test_generic_05.sh => test_recover_02.sh} (100%)
rename tools/testing/selftests/ublk/{test_generic_11.sh => test_recover_03.sh} (100%)
rename tools/testing/selftests/ublk/{test_generic_14.sh => test_recover_04.sh} (100%)
--
2.47.0
next reply other threads:[~2026-01-31 16:24 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-01-31 16:23 Ming Lei [this message]
2026-01-31 16:23 ` [PATCH 1/9] selftests: ublk: simplify UBLK_TEST_DIR handling Ming Lei
2026-01-31 16:23 ` [PATCH 2/9] selftests: ublk: refactor test_loop_08 into separate functions Ming Lei
2026-01-31 16:23 ` [PATCH 3/9] selftests: ublk: add _ublk_del_dev helper function Ming Lei
2026-01-31 16:23 ` [PATCH 4/9] selftests: ublk: track created devices for per-test cleanup Ming Lei
2026-01-31 16:23 ` [PATCH 5/9] selftests: ublk: add group-based test targets Ming Lei
2026-01-31 16:23 ` [PATCH 6/9] selftests: ublk: add _ublk_sleep helper for parallel execution Ming Lei
2026-01-31 16:23 ` [PATCH 7/9] selftests: ublk: increase timeouts for parallel test execution Ming Lei
2026-01-31 16:23 ` [PATCH 8/9] selftests: ublk: reorganize tests into integrity and recover groups Ming Lei
2026-01-31 16:23 ` [PATCH 9/9] selftests: ublk: improve I/O ordering test with bpftrace Ming Lei
2026-01-31 21:56 ` [PATCH 0/9] selftests: ublk: test infrastructure improvements Jens Axboe
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260131162342.13872-1-ming.lei@redhat.com \
--to=ming.lei@redhat.com \
--cc=alex@zazolabs.com \
--cc=axboe@kernel.dk \
--cc=csander@purestorage.com \
--cc=linux-block@vger.kernel.org \
--cc=linux-kselftest@vger.kernel.org \
--cc=shuah@kernel.org \
--cc=ushankar@purestorage.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox