我想更改此仓库中的代码: 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