From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: block-detatch on 2.6.23.8 guest == WARNING: at block/ll_rw_blk.c:1579 blk_remove_plug() Date: Fri, 23 Nov 2007 09:14:43 -0800 Message-ID: <47470A83.1050001@goop.org> References: <4746D7D6.1080707@theshore.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <4746D7D6.1080707@theshore.net> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: "Christopher S. Aker" Cc: xen devel List-Id: xen-devel@lists.xenproject.org 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() > [] blk_remove_plug+0x66/0x70 > [] blk_stop_queue+0x8/0x20 > [] blkfront_closing+0x39/0x80 > [] backend_changed+0x337/0x410 > [] kfree+0x7b/0xb0 > [] xenbus_gather+0x77/0xa0 > [] xenbus_read_driver_state+0x33/0x50 > [] otherend_changed+0x92/0xa0 > [] xenwatch_thread+0x6b/0x130 > [] autoremove_wake_function+0x0/0x50 > [] xenwatch_thread+0x0/0x130 > [] kthread+0x74/0x80 > [] kthread+0x0/0x80 > [] 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