All of lore.kernel.org
 help / color / mirror / Atom feed
* [blktests] zbd/012: Test requeuing of zoned writes and queue freezing
@ 2024-11-25 21:10 Bart Van Assche
  2024-11-26  8:34 ` Damien Le Moal
                   ` (2 more replies)
  0 siblings, 3 replies; 35+ messages in thread
From: Bart Van Assche @ 2024-11-25 21:10 UTC (permalink / raw)
  To: Shin'ichiro Kawasaki; +Cc: Damien Le Moal, linux-block, Bart Van Assche

Test concurrent requeuing of zoned writes and request queue freezing. While
test test passes with kernel 6.9, it triggers a hang with kernels 6.10 and
later. This shows that this hang is a regression introduced by the zone
write plugging code.

sysrq: Show Blocked State
task:(udev-worker)   state:D stack:0     pid:75392 tgid:75392 ppid:2178   flags:0x00000006
Call Trace:
 <TASK>
 __schedule+0x3e8/0x1410
 schedule+0x27/0xf0
 blk_mq_freeze_queue_wait+0x6f/0xa0
 queue_attr_store+0x60/0xc0
 kernfs_fop_write_iter+0x13e/0x1f0
 vfs_write+0x25b/0x420
 ksys_write+0x65/0xe0
 do_syscall_64+0x82/0x160
 entry_SYSCALL_64_after_hwframe+0x76/0x7e

Signed-off-by: Bart Van Assche <bvanassche@acm.org>
---
 tests/zbd/012     | 70 +++++++++++++++++++++++++++++++++++++++++++++++
 tests/zbd/012.out |  2 ++
 2 files changed, 72 insertions(+)
 create mode 100644 tests/zbd/012
 create mode 100644 tests/zbd/012.out

diff --git a/tests/zbd/012 b/tests/zbd/012
new file mode 100644
index 000000000000..0551d01011af
--- /dev/null
+++ b/tests/zbd/012
@@ -0,0 +1,70 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (C) 2024 Google LLC
+
+. tests/scsi/rc
+. common/scsi_debug
+
+DESCRIPTION="test requeuing of zoned writes and queue freezing"
+QUICK=1
+
+requires() {
+	_have_fio_zbd_zonemode
+}
+
+toggle_iosched() {
+	while true; do
+		for iosched in none mq-deadline; do
+			echo "${iosched}" > "/sys/class/block/$(basename "$zdev")/queue/scheduler"
+			sleep .1
+		done
+	done
+}
+
+test() {
+	echo "Running ${TEST_NAME}"
+
+	local qd=1
+	local scsi_debug_params=(
+		delay=0
+		dev_size_mb=1024
+		every_nth=$((2 * qd))
+		max_queue="${qd}"
+		opts=0x8000          # SDEBUG_OPT_HOST_BUSY
+		sector_size=4096
+		statistics=1
+		zbc=host-managed
+		zone_nr_conv=0
+		zone_size_mb=4
+	)
+	_init_scsi_debug "${scsi_debug_params[@]}" &&
+	local zdev="/dev/${SCSI_DEBUG_DEVICES[0]}" fail &&
+	ls -ld "${zdev}" >>"${FULL}" &&
+	{ toggle_iosched & } &&
+	toggle_iosched_pid=$! &&
+	local fio_args=(
+		--direct=1
+		--filename="${zdev}"
+		--iodepth="${qd}"
+		--ioengine=io_uring
+		--ioscheduler=none
+		--name=pipeline-zoned-writes
+		--output="${RESULTS_DIR}/fio-output-zbd-092.txt"
+		--runtime="${TIMEOUT:-30}"
+		--rw=randwrite
+		--time_based
+		--zonemode=zbd
+	) &&
+	_run_fio "${fio_args[@]}" >>"${FULL}" 2>&1 ||
+	fail=true
+
+	kill "${toggle_iosched_pid}" 2>&1
+	_exit_scsi_debug
+
+	if [ -z "$fail" ]; then
+		echo "Test complete"
+	else
+		echo "Test failed"
+		return 1
+	fi
+}
diff --git a/tests/zbd/012.out b/tests/zbd/012.out
new file mode 100644
index 000000000000..8ff654950c5f
--- /dev/null
+++ b/tests/zbd/012.out
@@ -0,0 +1,2 @@
+Running zbd/012
+Test complete

^ permalink raw reply related	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2024-11-28  5:27 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-11-25 21:10 [blktests] zbd/012: Test requeuing of zoned writes and queue freezing Bart Van Assche
2024-11-26  8:34 ` Damien Le Moal
2024-11-26 13:44   ` Bart Van Assche
2024-11-27  5:18     ` Damien Le Moal
2024-11-27  6:16       ` Christoph Hellwig
2024-11-27  6:21         ` Christoph Hellwig
2024-11-27  6:32           ` Damien Le Moal
2024-11-27  6:33             ` Christoph Hellwig
2024-11-27  6:43               ` Damien Le Moal
2024-11-27  6:45                 ` Christoph Hellwig
2024-11-27  7:02                   ` Damien Le Moal
2024-11-27  7:19                     ` Christoph Hellwig
2024-11-27  8:17                       ` Damien Le Moal
2024-11-27  8:58                         ` Christoph Hellwig
2024-11-27 11:31                           ` Damien Le Moal
2024-11-27 16:58                             ` Christoph Hellwig
2024-11-27 23:18                               ` Damien Le Moal
2024-11-27 23:36                                 ` Bart Van Assche
2024-11-27 23:43                                   ` Damien Le Moal
2024-11-28  3:20                                 ` Christoph Hellwig
2024-11-28  4:37                                   ` Damien Le Moal
2024-11-28  4:39                                     ` Christoph Hellwig
2024-11-28  4:52                                       ` Damien Le Moal
2024-11-28  5:00                                         ` Christoph Hellwig
2024-11-28  5:07                                           ` Damien Le Moal
2024-11-28  5:16                                             ` Christoph Hellwig
2024-11-28  5:19                                               ` Damien Le Moal
2024-11-28  5:21                                                 ` Christoph Hellwig
2024-11-28  5:27                                                   ` Damien Le Moal
2024-11-27 17:10           ` Bart Van Assche
2024-11-27 23:11             ` Damien Le Moal
2024-11-26 11:26 ` Damien Le Moal
2024-11-26 12:49   ` Christoph Hellwig
2024-11-27  2:28     ` Damien Le Moal
2024-11-28  4:35 ` Shinichiro Kawasaki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.