From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeremy Fitzhardinge Subject: Re: [PATCH] blkfront: Move blkif_interrupt into a tasklet. Date: Thu, 02 Sep 2010 15:46:12 -0700 Message-ID: <4C802934.2000305@goop.org> References: <1282546470-5547-1-git-send-email-daniel.stodden@citrix.com> <1282546470-5547-2-git-send-email-daniel.stodden@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-15 Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1282546470-5547-2-git-send-email-daniel.stodden@citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xensource.com Errors-To: xen-devel-bounces@lists.xensource.com To: Daniel Stodden Cc: Xen , Tom Kopec List-Id: xen-devel@lists.xenproject.org On 08/22/2010 11:54 PM, Daniel Stodden wrote: > Response processing doesn't really belong into hard irq context. > > Another potential problem this avoids is that switching interrupt cpu > affinity in Xen domains can presently lead to event loss, if > RING_FINAL_CHECK is run from hard irq context. I just got this warning from a 32-bit pv domain. I think it may relate to this change. The warning is void blk_start_queue(struct request_queue *q) { WARN_ON(!irqs_disabled()); Oddly, I only saw this pair once at boot, and after that the system seemed fine... [ 4.376451] ------------[ cut here ]------------ [ 4.377415] WARNING: at /home/jeremy/git/linux/block/blk-core.c:337 blk_start_queue+0x20/0x36() [ 4.377415] Modules linked in: xfs exportfs xen_blkfront [last unloaded: scsi_wait_scan] [ 4.377415] Pid: 0, comm: swapper Not tainted 2.6.32.21 #32 [ 4.377415] Call Trace: [ 4.377415] [] warn_slowpath_common+0x65/0x7c [ 4.377415] [] ? blk_start_queue+0x20/0x36 [ 4.377415] [] warn_slowpath_null+0xd/0x10 [ 4.377415] [] blk_start_queue+0x20/0x36 [ 4.377415] [] kick_pending_request_queues+0x1c/0x2a [xen_blkfront] [ 4.377415] [] blkif_do_interrupt+0x176/0x189 [xen_blkfront] [ 4.377415] [] tasklet_action+0x63/0xa8 [ 4.377415] [] __do_softirq+0xac/0x152 [ 4.377415] [] do_softirq+0x31/0x3c [ 4.377415] [] irq_exit+0x29/0x5c [ 4.377415] [] xen_evtchn_do_upcall+0x29/0x34 [ 4.377415] [] xen_do_upcall+0x7/0xc [ 4.377415] [] ? hypercall_page+0x3a7/0x1005 [ 4.377415] [] ? xen_safe_halt+0x12/0x1f [ 4.377415] [] xen_idle+0x27/0x38 [ 4.377415] [] cpu_idle+0x49/0x63 [ 4.377415] [] rest_init+0x53/0x55 [ 4.377415] [] start_kernel+0x2d4/0x2d9 [ 4.377415] [] i386_start_kernel+0x97/0x9e [ 4.377415] [] xen_start_kernel+0x576/0x57e [ 4.377415] ---[ end trace 0bfb98f0ed515cdb ]--- [ 4.377415] ------------[ cut here ]------------ [ 4.377415] WARNING: at /home/jeremy/git/linux/block/blk-core.c:245 blk_remove_plug+0x20/0x7e() [ 4.377415] Modules linked in: xfs exportfs xen_blkfront [last unloaded: scsi_wait_scan] [ 4.377415] Pid: 0, comm: swapper Tainted: G W 2.6.32.21 #32 [ 4.377415] Call Trace: [ 4.377415] [] warn_slowpath_common+0x65/0x7c [ 4.377415] [] ? blk_remove_plug+0x20/0x7e [ 4.377415] [] warn_slowpath_null+0xd/0x10 [ 4.377415] [] blk_remove_plug+0x20/0x7e [ 4.377415] [] __blk_run_queue+0xb/0x5e [ 4.377415] [] blk_start_queue+0x33/0x36 [ 4.377415] [] kick_pending_request_queues+0x1c/0x2a [xen_blkfront] [ 4.377415] [] blkif_do_interrupt+0x176/0x189 [xen_blkfront] [ 4.377415] [] tasklet_action+0x63/0xa8 [ 4.377415] [] __do_softirq+0xac/0x152 [ 4.377415] [] do_softirq+0x31/0x3c [ 4.377415] [] irq_exit+0x29/0x5c [ 4.377415] [] xen_evtchn_do_upcall+0x29/0x34 [ 4.377415] [] xen_do_upcall+0x7/0xc [ 4.377415] [] ? hypercall_page+0x3a7/0x1005 [ 4.377415] [] ? xen_safe_halt+0x12/0x1f [ 4.377415] [] xen_idle+0x27/0x38 [ 4.377415] [] cpu_idle+0x49/0x63 [ 4.377415] [] rest_init+0x53/0x55 [ 4.377415] [] start_kernel+0x2d4/0x2d9 [ 4.377415] [] i386_start_kernel+0x97/0x9e [ 4.377415] [] xen_start_kernel+0x576/0x57e [ 4.377415] ---[ end trace 0bfb98f0ed515cdc ]--- J