[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Fix blkback/blktap sysfs read bug.
On Wed, 2010-01-20 at 22:13 -0500, Joe Jin wrote: > On 2010-01-20 18:16, Daniel Stodden wrote: > > > > Hey. > > > > I think reverted a similar patch when moving past 2.6.18 a while ago, > > but I don't remember the first kernel versions affected right now. > > > > Sysfs may refcount these nodes, blocking xentap_sysfs_delif(). > > Would you like to give me some info about of blocking and deadlocks? > > Checked xentap_sysfs_delif() -> sysfs_remove_group() and I did not found > blocking codes, maybe I lost something? > > Thanks, > Joe Hi Joe. Your patch will work okay on 2.6.18. But collisions will deadlock after 2.6.23 Found an old stack trace: [2009-07-08 06:15:08 UTC] INFO: task xb.00021.xvdd:30039 blocked for more than 120 seconds. [2009-07-08 06:15:08 UTC] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. [2009-07-08 06:15:08 UTC] c7adfe0c 00000246 00000000 00000000 5b88fd4f 00000256 c7ade000 c7adfdc8 [2009-07-08 06:15:08 UTC] c0107c1b 38c984a4 00000256 c7adfddc ed629578 ed6293f0 ed629578 c16bdb00 [2009-07-08 06:15:08 UTC] 00000000 eea0d500 c16bdb34 002dc05a 00000000 00000005 0024c31c e20a8ff0 [2009-07-08 06:15:08 UTC] Call Trace: [2009-07-08 06:15:08 UTC] [<c0107c1b>] ? local_clock+0x3b/0x90 [2009-07-08 06:15:08 UTC] [<c0344675>] schedule_timeout+0x75/0xc0 [2009-07-08 06:15:08 UTC] [<c011ed81>] ? pick_next_task_fair+0x91/0xd0 [2009-07-08 06:15:08 UTC] [<c03442c9>] wait_for_common+0xa9/0x1c0 [2009-07-08 06:15:08 UTC] [<c0120d40>] ? default_wake_function+0x0/0x10 [2009-07-08 06:15:08 UTC] [<c0344472>] wait_for_completion+0x12/0x20 [2009-07-08 06:15:08 UTC] [<c01cf9e7>] sysfs_addrm_finish+0x1e7/0x230 [2009-07-08 06:15:08 UTC] [<c01ce2e5>] sysfs_hash_and_remove+0x45/0x70 [2009-07-08 06:15:08 UTC] [<c01d0adb>] remove_files+0x1b/0x30 [2009-07-08 06:15:08 UTC] [<c01d0b26>] sysfs_remove_group+0x36/0xc0 [2009-07-08 06:15:08 UTC] [<c01ae02f>] ? __blkdev_put+0x14f/0x160 [2009-07-08 06:15:08 UTC] [<c02769fc>] xenvbd_sysfs_delif+0x2c/0x60 [2009-07-08 06:15:08 UTC] [<c0276a76>] blkback_close+0x46/0x70 [2009-07-08 06:15:08 UTC] [<c0275d33>] blkif_schedule+0x583/0x5b0 [2009-07-08 06:15:08 UTC] [<c011ed81>] ? pick_next_task_fair+0x91/0xd0 [2009-07-08 06:15:08 UTC] [<c013dda0>] ? autoremove_wake_function+0x0/0x50 [2009-07-08 06:15:08 UTC] [<c02757b0>] ? blkif_schedule+0x0/0x5b0 [2009-07-08 06:15:08 UTC] [<c013da42>] kthread+0x42/0x70 [2009-07-08 06:15:08 UTC] [<c013da00>] ? kthread+0x0/0x70 [2009-07-08 06:15:08 UTC] [<c010561b>] kernel_thread_helper+0x7/0x10 The reason is in sysfs_deactivate(), which will sync callers against any remaining thread in .show() - show() hangs on the lock - the lock holder in sysfs_remove_group(), waiting for show() to complete. Pardon me -- I'm not entirely sure where/how these patches are currently submitted and merged. I suppose yours are only for linux-2.6.18.hg, not e.g. pvops? Then sorry for any confusion. Daniel _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |