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] block-detatch on 2.6.23.8 guest == WARNING: at block/ll_

To: "Christopher S. Aker" <caker@xxxxxxxxxxxx>
Subject: Re: [Xen-devel] block-detatch on 2.6.23.8 guest == WARNING: at block/ll_rw_blk.c:1579 blk_remove_plug()
From: Jeremy Fitzhardinge <jeremy@xxxxxxxx>
Date: Fri, 23 Nov 2007 09:14:43 -0800
Cc: xen devel <xen-devel@xxxxxxxxxxxxxxxxxxx>
Delivery-date: Fri, 23 Nov 2007 09:15:18 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <4746D7D6.1080707@xxxxxxxxxxxx>
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/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <4746D7D6.1080707@xxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Thunderbird 2.0.0.9 (X11/20071115)
Christopher S. Aker wrote:
> Dom0:
> root@dallas38:~# xm block-detach xencaker 51744
> root@dallas38:~#
>
> DomU:
> WARNING: at block/ll_rw_blk.c:1579 blk_remove_plug()
>  [<c035bed6>] blk_remove_plug+0x66/0x70
>  [<c035bf58>] blk_stop_queue+0x8/0x20
>  [<c039e429>] blkfront_closing+0x39/0x80
>  [<c039ed77>] backend_changed+0x337/0x410
>  [<c0161c7b>] kfree+0x7b/0xb0
>  [<c037b987>] xenbus_gather+0x77/0xa0
>  [<c037a4d3>] xenbus_read_driver_state+0x33/0x50
>  [<c037cde2>] otherend_changed+0x92/0xa0
>  [<c037bbab>] xenwatch_thread+0x6b/0x130
>  [<c0132e90>] autoremove_wake_function+0x0/0x50
>  [<c037bb40>] xenwatch_thread+0x0/0x130
>  [<c0132cb4>] kthread+0x74/0x80
>  [<c0132c40>] kthread+0x0/0x80
>  [<c01073e7>] kernel_thread_helper+0x7/0x10

This is a bit mysterious.  The call path looks like it unambiguously
disables interrupts:  blkfront_closing() does
"spin_lock_irqsave(&blkif_io_lock, flags);" and
then shortly after calls blk_stop_queue -> blk_remove_plug.  The only
possibility I see is that maybe del_gendisk is enabling them or
something.  I'll try to repro this, but in the meantime could you add:

        spin_lock_irqsave(&blkif_io_lock, flags);

+       WARN_ON(!irqs_disabled());

        del_gendisk(info->gd);

+       WARN_ON(!irqs_disabled());

        /* No more blkif_request(). */
        blk_stop_queue(info->rq);


to drivers/block/xen-blkfront.c:blkfront_closing() and see if one or
both triggers?

Thanks,
    J

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel