从另一个blkmq块设备访问块设备

时间:2019-07-23 14:51:43

标签: linux kernel

我想更改此仓库中的代码: https://github.com/OrenKishon/stackbd 使用blkmq代替make_request。

我试图用“ blkmq”替换“ make_request”,结果我得出结论,命令

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

工作正常,命令

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

导致内核挂起。阅读没有问题。感觉就像我的设备刚刚停止接收来自系统的请求。同时,dd进程继续挂起。为什么会发生这种情况?

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

0 个答案:

没有答案