Ignore submit_bio, getting "blocked for more than 120 seconds"

0

I created a device mapper over a block device (ext3). In the 'map' method, I need to ignore the BIO request in certain conditions (determined through ioctl).

So, I do not call submit_bio() method and return DM_MAPIO_SUBMITTED. This results in the following logs:

kernel: INFO: task kjournald:2460 blocked for more than 120 seconds.
kernel:      Not tainted 2.6.32-573.el6.x86_64 #1
kernel: "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
kernel: kjournald     D 0000000000000000     0  2460      2 0x00000080
kernel: ffff880237c27c50 0000000000000046 ffff880237c27bb0 ffffffff8126f3c4
kernel: ffff8802317c5a00 ffff880237071900 ffff880237c27c20 ffffffffa0004dbf
kernel: 0000000000000000 0000000000000000 ffff880237c41068 ffff880237c27fd8
kernel: Call Trace:
kernel: [<ffffffff8126f3c4>] ? blk_unplug+0x34/0x70
kernel: [<ffffffffa0004dbf>] ? dm_table_unplug_all+0x5f/0x100 [dm_mod]
kernel: [<ffffffff811c8b20>] ? sync_buffer+0x0/0x50
kernel: [<ffffffff811c8b20>] ? sync_buffer+0x0/0x50
kernel: [<ffffffff81538973>] io_schedule+0x73/0xc0
kernel: [<ffffffff811c8b60>] sync_buffer+0x40/0x50
kernel: [<ffffffff8153943f>] __wait_on_bit+0x5f/0x90
kernel: [<ffffffff811c8b20>] ? sync_buffer+0x0/0x50
kernel: [<ffffffff815394e8>] out_of_line_wait_on_bit+0x78/0x90
kernel: [<ffffffff810a1530>] ? wake_bit_function+0x0/0x50
kernel: [<ffffffff811c8b16>] __wait_on_buffer+0x26/0x30
kernel: [<ffffffffa00a7fdf>] journal_commit_transaction+0x9df/0x12f0 [jbd]
kernel: [<ffffffff8114a870>] ? bdi_sync_supers+0x0/0x60
kernel: [<ffffffff8114a870>] ? bdi_sync_supers+0x0/0x60
kernel: [<ffffffff81089afc>] ? lock_timer_base+0x3c/0x70
kernel: [<ffffffff8108a6fb>] ? try_to_del_timer_sync+0x7b/0xe0
kernel: [<ffffffffa00acea5>] kjournald+0xe5/0x240 [jbd]
kernel: [<ffffffff810a14b0>] ? autoremove_wake_function+0x0/0x40
kernel: [<ffffffffa00acdc0>] ? kjournald+0x0/0x240 [jbd]
kernel: [<ffffffff810a101e>] kthread+0x9e/0xc0
kernel: [<ffffffff8100c28a>] child_rip+0xa/0x20
kernel: [<ffffffff810a0f80>] ? kthread+0x0/0xc0
kernel: [<ffffffff8100c280>] ? child_rip+0x0/0x20

kernel: Buffer I/O error on device dm-1, logical block 285
kernel: lost page write due to I/O error on dm-1
  1. Is this the correct way to ignore BIO requests or is there any other mechanism?
  2. Can this error be ignored?
centos6
linux-kernel
block-device
device-mapper
asked on Server Fault Sep 4, 2017 by user2255299 • edited Sep 6, 2017 by user2255299

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0