linux/tools/testing/selftests/ublk
Linus Torvalds 0c00ed308d for-7.0/block-20260206
-----BEGIN PGP SIGNATURE-----
 
 iQJEBAABCAAuFiEEwPw5LcreJtl1+l5K99NY+ylx4KYFAmmGLwcQHGF4Ym9lQGtl
 cm5lbC5kawAKCRD301j7KXHgpv+TD/48S2HTnMhmW6AtFYWErQ+sEKXpHrxbYe7S
 +qR8/g/T+QSfhfqPwZEuagndFKtIP3LJfaXGSP1Lk1RfP9NLQy91v33Ibe4DjHkp
 etWSfnMHA9MUAoWKmg8EvncB2G+ZQFiYCpjazj5tKHD9S2+psGMuL8kq6qzMJE83
 uhpb8WutUl4aSIXbMSfyGlwBhI1MjjRbbWlIBmg4yC8BWt1sH8Qn2L2GNVylEIcX
 U8At3KLgPGn0axSg4yGMAwTqtGhL/jwdDyeczbmRlXuAr4iVL9UX/yADCYkazt6U
 ttQ2/H+cxCwfES84COx9EteAatlbZxo6wjGvZ3xOMiMJVTjYe1x6Gkcckq+LrZX6
 tjofi2KK78qkrMXk1mZMkZjpyUWgRtCswhDllbQyqFs0SwzQtno2//Rk8HU9dhbt
 pkpryDbGFki9X3upcNyEYp5TYflpW6YhAzShYgmE6KXim2fV8SeFLviy0erKOAl+
 fwjTE6KQ5QoQv0s3WxkWa4lREm34O6IHrCUmbiPm5CruJnQDhqAN2QZIDgYC4WAf
 0gu9cR/O4Vxu7TQXrumPs5q+gCyDU0u0B8C3mG2s+rIo+PI5cVZKs2OIZ8HiPo0F
 x73kR/pX3DMe35ZQkQX22ymMuowV+aQouDLY9DTwakP5acdcg7h7GZKABk6VLB06
 gUIsnxURiQ==
 =jNzW
 -----END PGP SIGNATURE-----

Merge tag 'for-7.0/block-20260206' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux

Pull block updates from Jens Axboe:

 - Support for batch request processing for ublk, improving the
   efficiency of the kernel/ublk server communication. This can yield
   nice 7-12% performance improvements

 - Support for integrity data for ublk

 - Various other ublk improvements and additions, including a ton of
   selftests additions and updated

 - Move the handling of blk-crypto software fallback from below the
   block layer to above it. This reduces the complexity of dealing with
   bio splitting

 - Series fixing a number of potential deadlocks in blk-mq related to
   the queue usage counter and writeback throttling and rq-qos debugfs
   handling

 - Add an async_depth queue attribute, to resolve a performance
   regression that's been around for a qhilw related to the scheduler
   depth handling

 - Only use task_work for IOPOLL completions on NVMe, if it is necessary
   to do so. An earlier fix for an issue resulted in all these
   completions being punted to task_work, to guarantee that completions
   were only run for a given io_uring ring when it was local to that
   ring. With the new changes, we can detect if it's necessary to use
   task_work or not, and avoid it if possible.

 - rnbd fixes:
      - Fix refcount underflow in device unmap path
      - Handle PREFLUSH and NOUNMAP flags properly in protocol
      - Fix server-side bi_size for special IOs
      - Zero response buffer before use
      - Fix trace format for flags
      - Add .release to rnbd_dev_ktype

 - MD pull requests via Yu Kuai
      - Fix raid5_run() to return error when log_init() fails
      - Fix IO hang with degraded array with llbitmap
      - Fix percpu_ref not resurrected on suspend timeout in llbitmap
      - Fix GPF in write_page caused by resize race
      - Fix NULL pointer dereference in process_metadata_update
      - Fix hang when stopping arrays with metadata through dm-raid
      - Fix any_working flag handling in raid10_sync_request
      - Refactor sync/recovery code path, improve error handling for
        badblocks, and remove unused recovery_disabled field
      - Consolidate mddev boolean fields into mddev_flags
      - Use mempool to allocate stripe_request_ctx and make sure
        max_sectors is not less than io_opt in raid5
      - Fix return value of mddev_trylock
      - Fix memory leak in raid1_run()
      - Add Li Nan as mdraid reviewer

 - Move phys_vec definitions to the kernel types, mostly in preparation
   for some VFIO and RDMA changes

 - Improve the speed for secure erase for some devices

 - Various little rust updates

 - Various other minor fixes, improvements, and cleanups

* tag 'for-7.0/block-20260206' of git://git.kernel.org/pub/scm/linux/kernel/git/axboe/linux: (162 commits)
  blk-mq: ABI/sysfs-block: fix docs build warnings
  selftests: ublk: organize test directories by test ID
  block: decouple secure erase size limit from discard size limit
  block: remove redundant kill_bdev() call in set_blocksize()
  blk-mq: add documentation for new queue attribute async_dpeth
  block, bfq: convert to use request_queue->async_depth
  mq-deadline: covert to use request_queue->async_depth
  kyber: covert to use request_queue->async_depth
  blk-mq: add a new queue sysfs attribute async_depth
  blk-mq: factor out a helper blk_mq_limit_depth()
  blk-mq-sched: unify elevators checking for async requests
  block: convert nr_requests to unsigned int
  block: don't use strcpy to copy blockdev name
  blk-mq-debugfs: warn about possible deadlock
  blk-mq-debugfs: add missing debugfs_mutex in blk_mq_debugfs_register_hctxs()
  blk-mq-debugfs: remove blk_mq_debugfs_unregister_rqos()
  blk-mq-debugfs: make blk_mq_debugfs_register_rqos() static
  blk-rq-qos: fix possible debugfs_mutex deadlock
  blk-mq-debugfs: factor out a helper to register debugfs for all rq_qos
  blk-wbt: fix possible deadlock to nest pcpu_alloc_mutex under q_usage_counter
  ...
2026-02-09 17:57:21 -08:00
..
trace selftests: ublk: improve I/O ordering test with bpftrace 2026-01-31 14:56:28 -07:00
.gitignore selftests: ublk: add missing gitignore for metadata_size binary 2026-01-25 10:11:32 -07:00
batch.c selftests: ublk: support arbitrary threads/queues combination 2026-01-22 20:05:41 -07:00
common.c selftests: ublk: replace assert() with ublk_assert() 2026-01-22 20:05:41 -07:00
config
fault_inject.c selftests: ublk: add kublk support for integrity params 2026-01-12 09:16:38 -07:00
file_backed.c selftests: ublk: add ublk_io_buf_idx() for returning io buffer index 2026-01-22 20:05:41 -07:00
kublk.c for-7.0/block-20260206 2026-02-09 17:57:21 -08:00
kublk.h for-7.0/block-20260206 2026-02-09 17:57:21 -08:00
Makefile selftests: ublk: improve I/O ordering test with bpftrace 2026-01-31 14:56:28 -07:00
metadata_size.c selftests: ublk: add utility to get block device metadata size 2026-01-12 09:16:38 -07:00
null.c selftests: ublk: add ublk_io_buf_idx() for returning io buffer index 2026-01-22 20:05:41 -07:00
settings selftests: ublk: increase timeout to 150 seconds 2026-01-22 20:05:41 -07:00
stripe.c selftests: ublk: add ublk_io_buf_idx() for returning io buffer index 2026-01-22 20:05:41 -07:00
test_batch_01.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_batch_02.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_batch_03.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_common.sh selftests: ublk: organize test directories by test ID 2026-02-04 20:46:44 -07:00
test_generic_02.sh selftests: ublk: improve I/O ordering test with bpftrace 2026-01-31 14:56:28 -07:00
test_generic_03.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_06.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_07.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_08.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_09.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_10.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_12.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_13.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_generic_16.sh selftests: ublk: add _ublk_del_dev helper function 2026-01-31 14:56:28 -07:00
test_integrity_01.sh selftests: ublk: reorganize tests into integrity and recover groups 2026-01-31 14:56:28 -07:00
test_integrity_02.sh selftests: ublk: reorganize tests into integrity and recover groups 2026-01-31 14:56:28 -07:00
test_loop_01.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_loop_02.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_loop_03.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_loop_04.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_loop_05.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_loop_06.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_loop_07.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_null_01.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_null_02.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_null_03.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_part_01.sh selftests: ublk: add selftest for UBLK_F_NO_AUTO_PART_SCAN 2026-01-31 06:36:41 -07:00
test_part_02.sh selftests: ublk: add _ublk_sleep helper for parallel execution 2026-01-31 14:56:28 -07:00
test_recover_01.sh selftests: ublk: reorganize tests into integrity and recover groups 2026-01-31 14:56:28 -07:00
test_recover_02.sh selftests: ublk: reorganize tests into integrity and recover groups 2026-01-31 14:56:28 -07:00
test_recover_03.sh selftests: ublk: reorganize tests into integrity and recover groups 2026-01-31 14:56:28 -07:00
test_recover_04.sh selftests: ublk: reorganize tests into integrity and recover groups 2026-01-31 14:56:28 -07:00
test_stress_01.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_02.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_03.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_04.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_05.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_06.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_07.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_08.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stress_09.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stripe_01.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stripe_02.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stripe_03.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stripe_04.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stripe_05.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
test_stripe_06.sh selftests: ublk: derive TID automatically from script name 2026-01-31 06:36:41 -07:00
ublk_dep.h selftests: ublk: add one dependency header 2025-03-20 17:18:55 -06:00
utils.h selftests: ublk: add batch buffer management infrastructure 2026-01-22 20:05:41 -07:00