[dm-devel] [REGRESSION][BISECTED] virtio-blk serial attribute causes guest to hang [Was: Re: [PATCH UPDATED 4/5] dm: implement REQ_FLUSH/FUA support for request-based dm]

Mike Snitzer snitzer at redhat.com
Thu Sep 9 19:43:01 UTC 2010


On Thu, Sep 09 2010 at  3:15pm -0400,
Mike Snitzer <snitzer at redhat.com> wrote:

> On Thu, Sep 09 2010 at  2:35pm -0400,
> Ryan Harper <ryanh at us.ibm.com> wrote:
> 
> > * Mike Snitzer <snitzer at redhat.com> [2010-09-09 12:56]:
> 
> > > I have verified that I no longer get the hang if I switch the root
> > > device from virtio to ide.
> > 
> > And in the failing case, do you see:
> > 
> > /sys/block/vda/serial 
> > 
> > attribute in sysfs?

Interestingly, just this loop:

while true ; do cat /sys/block/vda/serial && date && sleep 1 ; done
Thu Sep  9 15:29:30 EDT 2010
...
Thu Sep  9 15:31:19 EDT 2010

caused the following hang:
INFO: task cat:1825 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
cat           D 000000010000e784  5664  1825   1467 0x00000080
 ffff88007bbcdce8 0000000000000046 ffff88007bbcdc88 ffff880000000000
 ffff88007bbcdfd8 ffff88007b42a400 00000000001d4040 ffff88007bbcdfd8
 00000000001d4040 00000000001d4040 00000000001d4040 00000000001d4040
Call Trace:
 [<ffffffff8136de23>] io_schedule+0x73/0xb5
 [<ffffffff811b6882>] get_request_wait+0xf2/0x180
 [<ffffffff8105d8da>] ? autoremove_wake_function+0x0/0x39
 [<ffffffff811b6951>] blk_get_request+0x41/0x71
 [<ffffffff811b69ad>] blk_make_request+0x2c/0x8b
 [<ffffffffa0016073>] virtblk_get_id+0x57/0x93 [virtio_blk]
 [<ffffffffa00160d0>] virtblk_serial_show+0x21/0x4d [virtio_blk]
 [<ffffffff81265f7c>] dev_attr_show+0x27/0x4e
 [<ffffffff81157f0b>] ? sysfs_read_file+0x94/0x17f
 [<ffffffff810c6d6b>] ? __get_free_pages+0x18/0x55
 [<ffffffff81157f34>] sysfs_read_file+0xbd/0x17f
 [<ffffffff81100e7a>] vfs_read+0xab/0x108
 [<ffffffff8106e428>] ? trace_hardirqs_on_caller+0x11d/0x141
 [<ffffffff81100f97>] sys_read+0x4a/0x6e
 [<ffffffff81002bf2>] system_call_fastpath+0x16/0x1b
2 locks held by cat/1825:
 #0:  (&buffer->mutex){+.+.+.}, at: [<ffffffff81157eaf>] sysfs_read_file+0x38/0x17f
 #1:  (s_active#14){.+.+.+}, at: [<ffffffff81157f0b>] sysfs_read_file+0x94/0x17f

So it seems like the virtio requests aren't being properly cleaned up?




More information about the dm-devel mailing list