lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <d6df5ac5-6168-4c29-ba51-41c4b587bba8@nvidia.com>
Date: Sun, 26 Oct 2025 05:43:41 +0000
From: Chaitanya Kulkarni <chaitanyak@...dia.com>
To: Johannes Thumshirn <Johannes.Thumshirn@....com>
CC: syzbot <syzbot+153e64c0aa875d7e4c37@...kaller.appspotmail.com>,
	"linux-block@...r.kernel.org" <linux-block@...r.kernel.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	"linux-trace-kernel@...r.kernel.org" <linux-trace-kernel@...r.kernel.org>,
	"mathieu.desnoyers@...icios.com" <mathieu.desnoyers@...icios.com>,
	"mhiramat@...nel.org" <mhiramat@...nel.org>, "rostedt@...dmis.org"
	<rostedt@...dmis.org>, "syzkaller-bugs@...glegroups.com"
	<syzkaller-bugs@...glegroups.com>, Jens Axboe <axboe@...nel.dk>
Subject: Re: [syzbot] [block?] [trace?] WARNING in __blk_add_trace

On 10/25/25 21:55, Chaitanya Kulkarni wrote:
> (what >> BLK_TC_SHIFT) & ~((u64)BLK_TC_END_V1 * 2 - 1)))

Following is the test I used :-

  tests/blktrace/001     | 97 ++++++++++++++++++++++++++++++++++++++++++
  tests/blktrace/001.out |  2 +
  tests/blktrace/rc      | 11 +++++
  3 files changed, 110 insertions(+)
  create mode 100755 tests/blktrace/001
  create mode 100644 tests/blktrace/001.out
  create mode 100644 tests/blktrace/rc

diff --git a/tests/blktrace/001 b/tests/blktrace/001
new file mode 100755
index 0000000..fa72f89
--- /dev/null
+++ b/tests/blktrace/001
@@ -0,0 +1,97 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0+
+# Copyright (C) 2025 Chaitanya Kulkarni <kch@...dia.com>
+#
+# Regression test for blktrace false positive WARNING on zone management
+# commands.
+#
+# Bug: https://syzkaller.appspot.com/bug?extid=153e64c0aa875d7e4c37
+# Location: kernel/trace/blktrace.c:367-368
+#
+# The bug triggers a WARNING when zone management commands (zone 
open/close/
+# finish/reset) are traced with blktrace on V1 version. This is a false
+# positive that should be fixed.
+
+. tests/blktrace/rc
+. common/null_blk
+
+DESCRIPTION="blktrace zone management command tracing"
+QUICK=1
+
+requires() {
+    _have_program blkzone
+    _have_null_blk
+    _have_module_param null_blk zoned
+}
+
+test() {
+    echo "Running ${TEST_NAME}"
+
+    local blktrace_pid
+    local warning_count
+    local device
+
+    # Initialize null_blk with no default devices
+    if ! _init_null_blk nr_devices=0; then
+        return 1
+    fi
+
+    # Create zoned null_blk device via configfs
+    # 8 zones, 1GB total, 128MB per zone, no conventional zones
+    if ! _configure_null_blk nullb0 \
+        memory_backed=1 \
+        zone_size=128 \
+        zone_nr_conv=0 \
+        size=1024 \
+        zoned=1 \
+        power=1; then
+        return 1
+    fi
+
+    device=/dev/nullb0
+
+    # Verify it's a zoned device
+    local zoned_mode
+    zoned_mode=$(cat /sys/block/nullb0/queue/zoned)
+    if [[ "$zoned_mode" != "host-managed" ]]; then
+        echo "Device is not zoned (mode: $zoned_mode)"
+        _exit_null_blk
+        return 1
+    fi
+
+    # Clear dmesg to isolate test output
+    dmesg -C 2>/dev/null || true
+
+    # Start blktrace
+    blktrace -d "${device}" -o trace >> "$FULL" 2>&1 &
+    blktrace_pid=$!
+    sleep 2
+
+    # Verify blktrace started
+    if ! ps -p $blktrace_pid > /dev/null 2>&1; then
+        echo "blktrace failed to start"
+        _exit_null_blk
+        return 1
+    fi
+
+    # Issue zone open command for all zones (triggers bug if present)
+    blkzone open "${device}" >> "$FULL" 2>&1
+
+    sleep 1
+
+    # Stop blktrace
+    kill $blktrace_pid 2>/dev/null
+    wait $blktrace_pid 2>/dev/null || true
+
+    # Check for WARNING (bug present if WARNING found)
+    warning_count=$(dmesg | grep -c "WARNING.*blktrace.c:367" || true)
+
+    if [[ $warning_count -gt 0 ]]; then
+        echo "WARNING: blktrace bug detected at blktrace.c:367"
+        dmesg | grep -A 10 "WARNING.*blktrace.c:367" >> "$FULL"
+    fi
+
+    _exit_null_blk
+
+    echo "Test complete"
+}
diff --git a/tests/blktrace/001.out b/tests/blktrace/001.out
new file mode 100644
index 0000000..a122a65
--- /dev/null
+++ b/tests/blktrace/001.out
@@ -0,0 +1,2 @@
+Running blktrace/001
+Test complete
diff --git a/tests/blktrace/rc b/tests/blktrace/rc
new file mode 100644
index 0000000..019ff7d
--- /dev/null
+++ b/tests/blktrace/rc
@@ -0,0 +1,11 @@
+#!/bin/bash
+# SPDX-License-Identifier: GPL-3.0+
+# Copyright (C) 2025 Chaitanya Kulkarni <kch@...dia.com>
+#
+# Tests for blktrace infrastructure
+
+. common/rc
+
+group_requires() {
+    _have_root && _have_blktrace && _have_program blkparse
+}
-- 
2.40.0

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ