Note: This bug is displayed in read-only format because the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.

Bug 2217198

Summary: [RHEL9] liburing testing failed with null device
Product: Red Hat Enterprise Linux 9 Reporter: guazhang <guazhang>
Component: liburingAssignee: Jeff Moyer <jmoyer>
Status: CLOSED NOTABUG QA Contact: guazhang <guazhang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 9.3Flags: pm-rhel: mirror+
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2023-08-15 16:42:32 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description guazhang@redhat.com 2023-06-25 01:05:05 UTC
Description of problem:
please confirm the liburing support block null device, because liburing testing failed with the device 

Version-Release number of selected component (if applicable):
5.14.0-329.el9.x86_64
liburing-2.3-2.el9.x86_64

How reproducible:


Steps to Reproduce:
[root@storageqe-66 test]# cat config.local 
TEST_FILES=/dev/nullb0  
[root@storageqe-66 test]# 

2. make runtests
3.

Actual results:


Expected results:


Additional info:


[FAIL][20:50:21][storageqe-66.rhts.eng.pek2.redhat.com]make runtests
STDOUT:
make[1]: Entering directory '/root/rpmbuild/BUILD/liburing-2.3/src'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/rpmbuild/BUILD/liburing-2.3/src'
make[1]: Entering directory '/root/rpmbuild/BUILD/liburing-2.3/test'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/rpmbuild/BUILD/liburing-2.3/test'
make[1]: Entering directory '/root/rpmbuild/BUILD/liburing-2.3/examples'
make[1]: Nothing to be done for 'all'.
make[1]: Leaving directory '/root/rpmbuild/BUILD/liburing-2.3/examples'
make[1]: Entering directory '/root/rpmbuild/BUILD/liburing-2.3/test'
Running test 232c93d07b74.t                                         4 sec [5]
Running test 232c93d07b74.t /dev/nullb0                             Skipped
Running test 35fa71a030ca.t                                         5 sec [5]
Running test 35fa71a030ca.t /dev/nullb0                             Skipped
Running test 500f9fbadef8.t                                         0 sec [0]
Running test 500f9fbadef8.t /dev/nullb0                             Skipped
Running test 7ad0e4b2f83c.t                                         1 sec [1]
Running test 7ad0e4b2f83c.t /dev/nullb0                             Skipped
Running test 8a9973408177.t                                         0 sec [0]
Running test 8a9973408177.t /dev/nullb0                             Skipped
Running test 917257daa0fe.t                                         0 sec [0]
Running test 917257daa0fe.t /dev/nullb0                             Skipped
Running test a0908ae19763.t                                         0 sec [0]
Running test a0908ae19763.t /dev/nullb0                             Skipped
Running test a4c0b3decb33.t                                         9 sec [9]
Running test a4c0b3decb33.t /dev/nullb0                             Skipped
Running test accept.t                                               1 sec [1]
Running test accept.t /dev/nullb0                                   Skipped
Running test accept-link.t                                          0 sec [0]
Running test accept-link.t /dev/nullb0                              Skipped
Running test accept-reuse.t                                         0 sec [0]
Running test accept-reuse.t /dev/nullb0                             Skipped
Running test accept-test.t                                          0 sec [0]
Running test accept-test.t /dev/nullb0                              Skipped
Running test across-fork.t                                          0 sec [0]
Running test across-fork.t /dev/nullb0                              Skipped
Running test b19062a56726.t                                         0 sec [0]
Running test b19062a56726.t /dev/nullb0                             Skipped
Running test b5837bd5311d.t                                         0 sec [0]
Running test b5837bd5311d.t /dev/nullb0                             Skipped
Running test buf-ring.t                                             1 sec [0]
Running test buf-ring.t /dev/nullb0                                 Skipped
Running test ce593a6c480a.t                                         1 sec [1]
Running test ce593a6c480a.t /dev/nullb0                             Skipped
Running test close-opath.t                                          0 sec [0]
Running test close-opath.t /dev/nullb0                              0 sec [0]
Running test connect.t                                              0 sec [0]
Running test connect.t /dev/nullb0                                  Skipped
Running test cq-full.t                                              0 sec [0]
Running test cq-full.t /dev/nullb0                                  Skipped
Running test cq-overflow.t                                          10 sec [10]
Running test cq-overflow.t /dev/nullb0                              Skipped
Running test cq-peek-batch.t                                        0 sec [0]
Running test cq-peek-batch.t /dev/nullb0                            Skipped
Running test cq-ready.t                                             0 sec [0]
Running test cq-ready.t /dev/nullb0                                 Skipped
Running test cq-size.t                                              0 sec [0]
Running test cq-size.t /dev/nullb0                                  Skipped
Running test d4ae271dfaae.t                                         0 sec [0]
Running test d4ae271dfaae.t /dev/nullb0                             0 sec [0]
Running test d77a67ed5f27.t                                         0 sec [0]
Running test d77a67ed5f27.t /dev/nullb0                             Skipped
Running test defer.t                                                3 sec [3]
Running test defer.t /dev/nullb0                                    Skipped
Running test defer-taskrun.t                                        0 sec [0]
Running test defer-taskrun.t /dev/nullb0                            0 sec [0]
Running test double-poll-crash.t                                    0 sec [0]
Running test double-poll-crash.t /dev/nullb0                        Skipped
Running test drop-submit.t                                          0 sec [0]
Running test drop-submit.t /dev/nullb0                              Skipped
Running test eeed8b54e0df.t                                         0 sec [0]
Running test eeed8b54e0df.t /dev/nullb0                             Skipped
Running test empty-eownerdead.t                                     0 sec [0]
Running test empty-eownerdead.t /dev/nullb0                         Skipped
Running test eventfd.t                                              0 sec [0]
Running test eventfd.t /dev/nullb0                                  Skipped
Running test eventfd-disable.t                                      0 sec [0]
Running test eventfd-disable.t /dev/nullb0                          Skipped
Running test eventfd-reg.t                                          0 sec [0]
Running test eventfd-reg.t /dev/nullb0                              Skipped
Running test eventfd-ring.t                                         0 sec [0]
Running test eventfd-ring.t /dev/nullb0                             Skipped
Running test exec-target.t                                          0 sec [0]
Running test exec-target.t /dev/nullb0                              0 sec [0]
Running test exit-no-cleanup.t                                      0 sec [0]
Running test exit-no-cleanup.t /dev/nullb0                          Skipped
Running test fadvise.t                                              0 sec [0]
Running test fadvise.t /dev/nullb0                                  0 sec [0]
Running test fallocate.t                                            0 sec [0]
Running test fallocate.t /dev/nullb0                                Skipped
Running test fc2a85cb02ef.t                                         Test needs failslab/fail_futex/fail_page_alloc enabled, skipped
Skipped
Running test fc2a85cb02ef.t /dev/nullb0                             Skipped
Running test fd-pass.t                                              0 sec [0]
Running test fd-pass.t /dev/nullb0                                  Skipped
Running test file-register.t                                        3 sec [3]
Running test file-register.t /dev/nullb0                            Skipped
Running test files-exit-hang-poll.t                                 1 sec [1]
Running test files-exit-hang-poll.t /dev/nullb0                     Skipped
Running test files-exit-hang-timeout.t                              1 sec [1]
Running test files-exit-hang-timeout.t /dev/nullb0                  Skipped
Running test file-update.t                                          0 sec [0]
Running test file-update.t /dev/nullb0                              Skipped
Running test file-verify.t                                          0 sec [1]
Running test file-verify.t /dev/nullb0                              Test file-verify.t failed with ret 1
Running test fixed-buf-iter.t                                       0 sec [0]
Running test fixed-buf-iter.t /dev/nullb0                           Skipped
Running test fixed-link.t                                           0 sec [0]
Running test fixed-link.t /dev/nullb0                               Skipped
Running test fixed-reuse.t                                          0 sec [0]
Running test fixed-reuse.t /dev/nullb0                              Skipped
Running test fpos.t                                                 0 sec [0]
Running test fpos.t /dev/nullb0                                     Skipped
Running test fsync.t                                                0 sec [0]
Running test fsync.t /dev/nullb0                                    Skipped
Running test hardlink.t                                             0 sec [0]
Running test hardlink.t /dev/nullb0                                 Skipped
Running test io-cancel.t                                            2 sec [2]
Running test io-cancel.t /dev/nullb0                                Skipped
Running test iopoll.t                                               1 sec [0]
Running test iopoll.t /dev/nullb0                                   0 sec [0]
Running test iopoll-leak.t                                          0 sec [0]
Running test iopoll-leak.t /dev/nullb0                              0 sec [0]
Running test io_uring_enter.t                                       0 sec [0]
Running test io_uring_enter.t /dev/nullb0                           Skipped
Running test io_uring_passthrough.t                                 Skipped
Running test io_uring_passthrough.t /dev/nullb0                     Skipped
Running test io_uring_register.t                                    1 sec [0]
Running test io_uring_register.t /dev/nullb0                        Skipped
Running test io_uring_setup.t                                       0 sec [0]
Running test io_uring_setup.t /dev/nullb0                           Skipped
Running test lfs-openat.t                                           0 sec [0]
Running test lfs-openat.t /dev/nullb0                               0 sec [0]
Running test lfs-openat-write.t                                     0 sec [0]
Running test lfs-openat-write.t /dev/nullb0                         Skipped
Running test link.t                                                 0 sec [0]
Running test link.t /dev/nullb0                                     Skipped
Running test link_drain.t                                           0 sec [1]
Running test link_drain.t /dev/nullb0                               0 sec [0]
Running test link-timeout.t                                         2 sec [1]
Running test link-timeout.t /dev/nullb0                             Skipped
Running test madvise.t                                              0 sec [0]
Running test madvise.t /dev/nullb0                                  0 sec [1]
Running test mkdir.t                                                0 sec [0]
Running test mkdir.t /dev/nullb0                                    Skipped
Running test msg-ring.t                                             0 sec [0]
Running test msg-ring.t /dev/nullb0                                 Skipped
Running test multicqes_drain.t                                      20 sec [20]
Running test multicqes_drain.t /dev/nullb0                          Skipped
Running test nolibc.t                                               0 sec [0]
Running test nolibc.t /dev/nullb0                                   Skipped
Running test nop-all-sizes.t                                        0 sec [0]
Running test nop-all-sizes.t /dev/nullb0                            0 sec [0]
Running test nop.t                                                  0 sec [0]
Running test nop.t /dev/nullb0                                      0 sec [0]
Running test openat2.t                                              0 sec [0]
Running test openat2.t /dev/nullb0                                  0 sec [0]
Running test open-close.t                                           0 sec [0]
Running test open-close.t /dev/nullb0                               0 sec [0]
Running test open-direct-link.t                                     0 sec [0]
Running test open-direct-link.t /dev/nullb0                         0 sec [0]
Running test open-direct-pick.t                                     0 sec [0]
Running test open-direct-pick.t /dev/nullb0                         0 sec [0]
Running test personality.t                                          0 sec [0]
Running test personality.t /dev/nullb0                              0 sec [0]
Running test pipe-eof.t                                             0 sec [0]
Running test pipe-eof.t /dev/nullb0                                 0 sec [0]
Running test pipe-reuse.t                                           0 sec [0]
Running test pipe-reuse.t /dev/nullb0                               0 sec [0]
Running test poll.t                                                 0 sec [0]
Running test poll.t /dev/nullb0                                     0 sec [0]
Running test poll-cancel.t                                          0 sec [0]
Running test poll-cancel.t /dev/nullb0                              0 sec [0]
Running test poll-cancel-all.t                                      0 sec [0]
Running test poll-cancel-all.t /dev/nullb0                          0 sec [0]
Running test poll-cancel-ton.t                                      0 sec [0]
Running test poll-cancel-ton.t /dev/nullb0                          0 sec [0]
Running test poll-link.t                                            1 sec [0]
Running test poll-link.t /dev/nullb0                                0 sec [0]
Running test poll-many.t                                            1 sec [1]
Running test poll-many.t /dev/nullb0                                0 sec [0]
Running test poll-mshot-update.t                                    3 sec [3]
Running test poll-mshot-update.t /dev/nullb0                        0 sec [0]
Running test poll-mshot-overflow.t                                  0 sec [0]
Running test poll-mshot-overflow.t /dev/nullb0                      Skipped
Running test poll-ring.t                                            0 sec [0]
Running test poll-ring.t /dev/nullb0                                0 sec [0]
Running test poll-v-poll.t                                          0 sec [0]
Running test poll-v-poll.t /dev/nullb0                              1 sec [1]
Running test pollfree.t                                             10 sec [10]
Running test pollfree.t /dev/nullb0                                 0 sec [0]
Running test probe.t                                                0 sec [0]
Running test probe.t /dev/nullb0                                    0 sec [0]
Running test read-before-exit.t                                     0 sec [1]
Running test read-before-exit.t /dev/nullb0                         0 sec [0]
Running test read-write.t                                           2 sec [2]
Running test read-write.t /dev/nullb0                               Test read-write.t failed with ret 1
Running test recv-msgall.t                                          0 sec [0]
Running test recv-msgall.t /dev/nullb0                              0 sec [0]
Running test recv-msgall-stream.t                                   0 sec [0]
Running test recv-msgall-stream.t /dev/nullb0                       0 sec [0]
Running test recv-multishot.t                                       Test recv-multishot.t failed with ret 1
Running test recv-multishot.t /dev/nullb0                           Skipped
Running test register-restrictions.t                                0 sec [0]
Running test register-restrictions.t /dev/nullb0                    0 sec [0]
Running test rename.t                                               0 sec [0]
Running test rename.t /dev/nullb0                                   0 sec [0]
Running test ringbuf-read.t                                         0 sec [0]
Running test ringbuf-read.t /dev/nullb0                             Test ringbuf-read.t failed with ret 1
Running test ring-leak2.t                                           1 sec [1]
Running test ring-leak2.t /dev/nullb0                               0 sec [0]
Running test ring-leak.t                                            0 sec [0]
Running test ring-leak.t /dev/nullb0                                0 sec [0]
Running test rsrc_tags.t                                            14 sec [15]
Running test rsrc_tags.t /dev/nullb0                                0 sec [0]
Running test rw_merge_test.t                                        0 sec [0]
Running test rw_merge_test.t /dev/nullb0                            0 sec [0]
Running test self.t                                                 0 sec [0]
Running test self.t /dev/nullb0                                     0 sec [0]
Running test sendmsg_fs_cve.t                                       0 sec [0]
Running test sendmsg_fs_cve.t /dev/nullb0                           0 sec [0]
Running test send_recv.t                                            0 sec [0]
Running test send_recv.t /dev/nullb0                                0 sec [0]
Running test send_recvmsg.t                                         0 sec [0]
Running test send_recvmsg.t /dev/nullb0                             0 sec [0]
Running test shared-wq.t                                            0 sec [0]
Running test shared-wq.t /dev/nullb0                                0 sec [0]
Running test short-read.t                                           0 sec [0]
Running test short-read.t /dev/nullb0                               0 sec [0]
Running test shutdown.t                                             0 sec [0]
Running test shutdown.t /dev/nullb0                                 0 sec [0]
Running test sigfd-deadlock.t                                       0 sec [0]
Running test sigfd-deadlock.t /dev/nullb0                           0 sec [0]
Running test skip-cqe.t                                             0 sec [0]
Running test skip-cqe.t /dev/nullb0                                 0 sec [0]
Running test socket.t                                               0 sec [0]
Running test socket.t /dev/nullb0                                   0 sec [0]
Running test socket-rw.t                                            0 sec [0]
Running test socket-rw.t /dev/nullb0                                0 sec [0]
Running test socket-rw-eagain.t                                     0 sec [0]
Running test socket-rw-eagain.t /dev/nullb0                         0 sec [0]
Running test socket-rw-offset.t                                     0 sec [0]
Running test socket-rw-offset.t /dev/nullb0                         0 sec [0]
Running test splice.t                                               0 sec [0]
Running test splice.t /dev/nullb0                                   0 sec [0]
Running test sq-full.t                                              0 sec [0]
Running test sq-full.t /dev/nullb0                                  0 sec [0]
Running test sq-full-cpp.t                                          0 sec [0]
Running test sq-full-cpp.t /dev/nullb0                              0 sec [0]
Running test sqpoll-cancel-hang.t                                   1 sec [1]
Running test sqpoll-cancel-hang.t /dev/nullb0                       1 sec [1]
Running test sqpoll-disable-exit.t                                  0 sec [1]
Running test sqpoll-disable-exit.t /dev/nullb0                      0 sec [0]
Running test sq-poll-dup.t                                          1 sec [1]
Running test sq-poll-dup.t /dev/nullb0                              0 sec [0]
Running test sqpoll-exit-hang.t                                     1 sec [1]
Running test sqpoll-exit-hang.t /dev/nullb0                         0 sec [0]
Running test sq-poll-kthread.t                                      2 sec [3]
Running test sq-poll-kthread.t /dev/nullb0                          0 sec [0]
Running test sq-poll-share.t                                        0 sec [0]
Running test sq-poll-share.t /dev/nullb0                            0 sec [0]
Running test sqpoll-sleep.t                                         0 sec [0]
Running test sqpoll-sleep.t /dev/nullb0                             0 sec [0]
Running test sq-space_left.t                                        0 sec [0]
Running test sq-space_left.t /dev/nullb0                            0 sec [0]
Running test stdout.t                                               This is a pipe test
This is a fixed pipe test
0 sec [0]
Running test stdout.t /dev/nullb0                                   0 sec [0]
Running test submit-and-wait.t                                      1 sec [1]
Running test submit-and-wait.t /dev/nullb0                          0 sec [0]
Running test submit-link-fail.t                                     0 sec [0]
Running test submit-link-fail.t /dev/nullb0                         0 sec [0]
Running test submit-reuse.t                                         0 sec [1]
Running test submit-reuse.t /dev/nullb0                             0 sec [0]
Running test sync-cancel.t                                          0 sec [0]
Running test sync-cancel.t /dev/nullb0                              Skipped
Running test symlink.t                                              0 sec [0]
Running test symlink.t /dev/nullb0                                  0 sec [0]
Running test teardowns.t                                            0 sec [0]
Running test teardowns.t /dev/nullb0                                0 sec [0]
Running test thread-exit.t                                          0 sec [0]
Running test thread-exit.t /dev/nullb0                              0 sec [0]
Running test timeout.t                                              6 sec [6]
Running test timeout.t /dev/nullb0                                  0 sec [0]
Running test timeout-new.t                                          3 sec [2]
Running test timeout-new.t /dev/nullb0                              0 sec [0]
Running test timeout-overflow.t                                     Skipped
Running test timeout-overflow.t /dev/nullb0                         Skipped
Running test tty-write-dpoll.t                                      0 sec [0]
Running test tty-write-dpoll.t /dev/nullb0                          0 sec [0]
Running test unlink.t                                               0 sec [0]
Running test unlink.t /dev/nullb0                                   0 sec [0]
Running test wakeup-hang.t                                          2 sec [2]
Running test wakeup-hang.t /dev/nullb0                              0 sec [0]
Running test xattr.t                                                0 sec [0]
Running test xattr.t /dev/nullb0                                    0 sec [0]
Running test skip-cqe.t                                             0 sec [0]
Running test skip-cqe.t /dev/nullb0                                 0 sec [0]
Running test single-issuer.t                                        0 sec [0]
Running test single-issuer.t /dev/nullb0                            Skipped
Running test send-zerocopy.t                                        2 sec [2]
Running test send-zerocopy.t /dev/nullb0                            Skipped
Running test statx.t                                                0 sec [0]
Running test statx.t /dev/nullb0                                    0 sec [0]
Running test sq-full-cpp.t                                          0 sec [0]
Running test sq-full-cpp.t /dev/nullb0                              0 sec [0]
Tests failed (4): <file-verify.t /dev/nullb0> <read-write.t /dev/nullb0> <recv-multishot.t> <ringbuf-read.t /dev/nullb0>
make[1]: Leaving directory '/root/rpmbuild/BUILD/liburing-2.3/test'
STDERR:Found 33547264, wanted 0
Buffered novec test failed
Data mismatch! bid=14, wanted=14, got=85
test_buf_select nonvec failed
not last cqe had error 4
test stream=0 wait_each=0 recvmsg=0 early_error=4  defer=0 failed
got 0, wanted 31
dio test failed
make[1]: *** [Makefile:231: runtests] Error 1
make: *** [Makefile:21: runtests] Error 2
RETURN:2

[root@storageqe-66 test]# cat config.local 
TEST_FILES=/dev/nullb0  
[root@storageqe-66 test]# 
[root@storageqe-66 test]# ./ringbuf-read.t /dev/nullb0
got 0, wanted 31
dio test failed
[root@storageqe-66 test]# $?
-bash: 1: command not found
[root@storageqe-66 test]# ./file-verify.t /dev/nullb0
Found 33547264, wanted 0
Buffered novec test failed
[root@storageqe-66 test]# $?
-bash: 1: command not found
[root@storageqe-66 test]# ./ringbuf-read.t /dev/nullb0
got 0, wanted 31
dio test failed
[root@storageqe-66 test]#

Comment 1 Jeff Moyer 2023-08-08 18:08:47 UTC
What module parameters do you set for the null block device (please always include information necessary to reproduce a problem in the bug report)?  If you take the defaults, the device does no I/O.  That's a problem for some tests, as you've discovered.  Try this:

modprobe null_blk memory_backed=1 cache_size=256

and re-run your tests.  You should find that they now succeed.  Let me know if that is not the case.

Comment 2 guazhang@redhat.com 2023-08-09 03:52:59 UTC
1.modprobe null_blk submit_queues=16 nr_devices=1 shared_tags=1

# lsblk
NAME                        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                           8:0    0 558.9G  0 disk 
├─sda1                        8:1    0   600M  0 part /boot/efi
├─sda2                        8:2    0     1G  0 part /boot
└─sda3                        8:3    0 557.3G  0 part 
  ├─rhel_storageqe--66-root 253:0    0    70G  0 lvm  /
  ├─rhel_storageqe--66-swap 253:1    0  15.6G  0 lvm  [SWAP]
  └─rhel_storageqe--66-home 253:2    0 471.7G  0 lvm  /home
sdb                           8:16   1     0B  0 disk 
nullb0                      252:0    0   250G  0 disk 
nvme0n1                     259:1    0   1.5T  0 disk 

2. build and install liburing-2.3-2.el9.src.rpm
3.

[root@storageqe-66 test]# ./ringbuf-read.t /dev/nullb0 
got 0, wanted 31
dio test failed
[root@storageqe-66 test]# echo $?
1
[root@storageqe-66 test]# ./file-verify.t /dev/nullb0 
Found 33547264, wanted 0
Buffered novec test failed
[root@storageqe-66 test]# echo $?
1
[root@storageqe-66 test]# ./read-write.t /dev/nullb0 
Data mismatch! bid=14, wanted=14, got=85
test_buf_select nonvec failed
[root@storageqe-66 test]# echo $?
1
[root@storageqe-66 test]# ./recv-multishot.t /dev/nullb0 
[root@storageqe-66 test]# echo $?
77
[root@storageqe-66 test]# 

[root@storageqe-66 test]# uname -a
Linux storageqe-66.rhts.eng.pek2.redhat.com 5.14.0-350.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Aug 4 12:55:29 EDT 2023 x86_64 x86_64 x86_64 GNU/Linux
[root@storageqe-66 test]#

Comment 3 Jeff Moyer 2023-08-10 13:18:29 UTC
Can you test with the module parameters I suggested (in addition to the parameters that you already use).

Comment 4 guazhang@redhat.com 2023-08-10 23:40:16 UTC
modprobe null_blk submit_queues=16 nr_devices=1 shared_tags=1
[root@dell-per730-43 test]# ./ringbuf-read.t /dev/nullb0 
got 0, wanted 31
dio test failed
[root@dell-per730-43 test]# ./file-verify.t /dev/nullb0 
Found 32372736, wanted 0
Buffered novec test failed
[root@dell-per730-43 test]# lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                              8:0    0 558.4G  0 disk 
├─sda1                           8:1    0     1G  0 part /boot
└─sda2                           8:2    0 557.4G  0 part 
  ├─rhel_dell--per730--43-root 253:0    0    70G  0 lvm  /
  ├─rhel_dell--per730--43-swap 253:1    0  15.7G  0 lvm  [SWAP]
  └─rhel_dell--per730--43-home 253:2    0 471.7G  0 lvm  /home
sr0                             11:0    1  1024M  0 rom  
nullb0                         252:0    0   250G  0 disk 
[root@dell-per730-43 test]# modprobe -r null_blk
[root@dell-per730-43 test]# lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                              8:0    0 558.4G  0 disk 
├─sda1                           8:1    0     1G  0 part /boot
└─sda2                           8:2    0 557.4G  0 part 
  ├─rhel_dell--per730--43-root 253:0    0    70G  0 lvm  /
  ├─rhel_dell--per730--43-swap 253:1    0  15.7G  0 lvm  [SWAP]
  └─rhel_dell--per730--43-home 253:2    0 471.7G  0 lvm  /home
sr0                             11:0    1  1024M  0 rom  
[root@dell-per730-43 test]# modprobe null_blk memory_backed=1 cache_size=256
[root@dell-per730-43 test]# lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                              8:0    0 558.4G  0 disk 
├─sda1                           8:1    0     1G  0 part /boot
└─sda2                           8:2    0 557.4G  0 part 
  ├─rhel_dell--per730--43-root 253:0    0    70G  0 lvm  /
  ├─rhel_dell--per730--43-swap 253:1    0  15.7G  0 lvm  [SWAP]
  └─rhel_dell--per730--43-home 253:2    0 471.7G  0 lvm  /home
sr0                             11:0    1  1024M  0 rom  
nullb0                         252:0    0   250G  0 disk 
[root@dell-per730-43 test]# ./ringbuf-read.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 0: command not found
[root@dell-per730-43 test]# ./file-verify.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 0: command not found
[root@dell-per730-43 test]# ./read-write.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 0: command not found
[root@dell-per730-43 test]# ./recv-multishot.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 77: command not found
[root@dell-per730-43 test]# 



[root@dell-per730-43 test]# modprobe null_blk submit_queues=16 nr_devices=1
[root@dell-per730-43 test]# lsblk
NAME                           MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda                              8:0    0 558.4G  0 disk 
├─sda1                           8:1    0     1G  0 part /boot
└─sda2                           8:2    0 557.4G  0 part 
  ├─rhel_dell--per730--43-root 253:0    0    70G  0 lvm  /
  ├─rhel_dell--per730--43-swap 253:1    0  15.7G  0 lvm  [SWAP]
  └─rhel_dell--per730--43-home 253:2    0 471.7G  0 lvm  /home
sr0                             11:0    1  1024M  0 rom  
nullb0                         252:0    0   250G  0 disk 
[root@dell-per730-43 test]# ./read-write.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 0: command not found
[root@dell-per730-43 test]# ./ringbuf-read.t /dev/null0
open: No such file or directory
[root@dell-per730-43 test]# 
[root@dell-per730-43 test]# ./ringbuf-read.t /dev/nullb0
[root@dell-per730-43 test]# $?
-bash: 0: command not found
[root@dell-per730-43 test]# ./file-verify.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 0: command not found
[root@dell-per730-43 test]# ./recv-multishot.t /dev/nullb0 
[root@dell-per730-43 test]# $?
-bash: 77: command not found
[root@dell-per730-43 test]# 



looks can not import `shared_tags=1` to the null_blk module.

Comment 5 Jeff Moyer 2023-08-14 15:01:12 UTC
I'm not sure what you're testing.  I was hoping you would specify "memory_backed=1 cache_size=256" on the modprobe command line.

Comment 6 guazhang@redhat.com 2023-08-15 01:01:50 UTC
In comment #4, can not hit the error with the "modprobe null_blk memory_backed=1 cache_size=256", but recv-multishot.t testing.

Comment 7 Jeff Moyer 2023-08-15 16:42:32 UTC
Sorry, I missed the part where you configured null_blk with those parameters.

If you run the full test suite using 'make runtests', you will see this:

Running test recv-multishot.t                                       0 sec [1]
Running test recv-multishot.t /dev/nullb0                           Skipped

enum t_test_result {
        T_EXIT_PASS   = 0,
        T_EXIT_FAIL   = 1,
        T_EXIT_SKIP   = 77,
};

That 77 return code just means that the test is not valid for this device.

I'm going to close this as NOTABUG.  Please re-open if I missed something.

Thanks!