accesing block device from another blkmq block device

0

I want to change the code from this repo: https://github.com/OrenKishon/stackbd to use blkmq instead of make_request.

I tried to replace "make_request" with "blkmq", and as a result I came to the conclusion that the command

sudo dd if=/dev/urandom of=/dev/mydev0 count=8

works fine, and the command

sudo dd if=/dev/urandom of=/dev/mydev0 count=9

causes the kernel to hang. There is no problem with reading. It feels like my device just stops receiving requests from the system. At the same time, the dd process continues to hang. Why can this happen?

Modified version:
https://pastebin.com/qV72jLHt

syslog:
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.316966] INFO: task dd:2388 blocked for more than 120 seconds.
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.316979]       Tainted: G           OE    4.15.3-041503-generic #201802120730
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.316983] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.316988] dd              D    0  2388   2387 0x00000000
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.316995] Call Trace:
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317014]  __schedule+0x297/0x8a0
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317022]  schedule+0x2c/0x80
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317028]  io_schedule+0x16/0x40
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317036]  wait_on_page_bit_common+0xd8/0x160
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317042]  ? page_cache_tree_insert+0xe0/0xe0
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317048]  __filemap_fdatawait_range+0xfa/0x160
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317054]  ? __filemap_fdatawrite_range+0xcd/0x100
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317060]  filemap_write_and_wait+0x4d/0x90
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317069]  sync_blockdev.part.32+0x16/0x20
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317075]  __blkdev_put+0x6c/0x1f0
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317082]  blkdev_put+0x4c/0xd0
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317088]  blkdev_close+0x25/0x30
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317098]  __fput+0xea/0x220
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317105]  ____fput+0xe/0x10
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317111]  task_work_run+0x9d/0xc0
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317120]  exit_to_usermode_loop+0xc0/0xd0
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317125]  do_syscall_64+0x118/0x130
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317132]  entry_SYSCALL_64_after_hwframe+0x21/0x86
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317138] RIP: 0033:0x7fc3a6a238d4
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317141] RSP: 002b:00007fff2349c0b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000003
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317146] RAX: 0000000000000000 RBX: 0000562f2b076160 RCX: 00007fc3a6a238d4
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317149] RDX: 0000000000000200 RSI: 0000000000000000 RDI: 0000000000000001
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317151] RBP: 0000000000000009 R08: 0000000000000000 R09: 0000562f2c7cd030
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317154] R10: 0000562f2c7c8010 R11: 0000000000000246 R12: 0000000000000009
Jul 23 11:03:29 user-ThinkPad-X1-Carbon kernel: [ 2780.317156] R13: 0000000000000000 R14: 0000000000000200 R15: 0000562f2c7cb200
linux
kernel
asked on Stack Overflow Jul 23, 2019 by zenbooster

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0