WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] [PATCH] Fix blkback/blktap sysfs read bug.

To: Joe Jin <joe.jin@xxxxxxxxxx>
Subject: Re: [Xen-devel] [PATCH] Fix blkback/blktap sysfs read bug.
From: Daniel Stodden <daniel.stodden@xxxxxxxxxx>
Date: Wed, 20 Jan 2010 23:26:49 -0800
Cc: "greg.marsden@xxxxxxxxxx" <greg.marsden@xxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>, "deepak.patel@xxxxxxxxxx" <deepak.patel@xxxxxxxxxx>, Keir Fraser <Keir.Fraser@xxxxxxxxxxxxx>, Jan Beulich <JBeulich@xxxxxxxxxx>
Delivery-date: Wed, 20 Jan 2010 23:27:18 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <20100121031307.GA29727@xxxxxxxxxxxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Organization: Citrix VMD
References: <20100119113224.GA21348@xxxxxxxxxxxxxxxxxxxxxxx> <4B55AE58020000780002AB39@xxxxxxxxxxxxxxxxxx> <20100119141338.GA22249@xxxxxxxxxxxxxxxxxxxxxxx> <4B55E9E7020000780002AC17@xxxxxxxxxxxxxxxxxx> <20100120020605.GA25697@xxxxxxxxxxxxxxxxxxxxxxx> <4B56C2DB020000780002AE45@xxxxxxxxxxxxxxxxxx> <20100120105136.GA6801@xxxxxxxxxxxxxxxxxxxxxxx> <4B56F1B6020000780002AEFA@xxxxxxxxxxxxxxxxxx> <20100120114518.GA10851@xxxxxxxxxxxxxxxxxxxxxxx> <1264040197.12544.3679.camel@xxxxxxxxxxxxxxxxxxxxxxx> <20100121031307.GA29727@xxxxxxxxxxxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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