[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH] blkfront: Move blkif_interrupt into a tasklet.



On 09/03/2010 12:46 AM, Jeremy Fitzhardinge wrote:
>  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]  [<c1039f74>] warn_slowpath_common+0x65/0x7c
> [    4.377415]  [<c11b3ae1>] ? blk_start_queue+0x20/0x36
> [    4.377415]  [<c1039f98>] warn_slowpath_null+0xd/0x10
> [    4.377415]  [<c11b3ae1>] blk_start_queue+0x20/0x36
> [    4.377415]  [<edc74712>] kick_pending_request_queues+0x1c/0x2a 
> [xen_blkfront]
> [    4.377415]  [<edc74ec4>] blkif_do_interrupt+0x176/0x189 [xen_blkfront]
> [    4.377415]  [<c103e063>] tasklet_action+0x63/0xa8
> [    4.377415]  [<c103f2d5>] __do_softirq+0xac/0x152
> [    4.377415]  [<c103f3ac>] do_softirq+0x31/0x3c
> [    4.377415]  [<c103f484>] irq_exit+0x29/0x5c
> [    4.377415]  [<c121a1b6>] xen_evtchn_do_upcall+0x29/0x34
> [    4.377415]  [<c100a027>] xen_do_upcall+0x7/0xc
> [    4.377415]  [<c10023a7>] ? hypercall_page+0x3a7/0x1005
> [    4.377415]  [<c10065a9>] ? xen_safe_halt+0x12/0x1f
> [    4.377415]  [<c10042cb>] xen_idle+0x27/0x38
> [    4.377415]  [<c100877e>] cpu_idle+0x49/0x63
> [    4.377415]  [<c14a6427>] rest_init+0x53/0x55
> [    4.377415]  [<c179c814>] start_kernel+0x2d4/0x2d9
> [    4.377415]  [<c179c0a8>] i386_start_kernel+0x97/0x9e
> [    4.377415]  [<c179f478>] 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]  [<c1039f74>] warn_slowpath_common+0x65/0x7c
> [    4.377415]  [<c11b3961>] ? blk_remove_plug+0x20/0x7e
> [    4.377415]  [<c1039f98>] warn_slowpath_null+0xd/0x10
> [    4.377415]  [<c11b3961>] blk_remove_plug+0x20/0x7e
> [    4.377415]  [<c11b39ca>] __blk_run_queue+0xb/0x5e
> [    4.377415]  [<c11b3af4>] blk_start_queue+0x33/0x36
> [    4.377415]  [<edc74712>] kick_pending_request_queues+0x1c/0x2a 
> [xen_blkfront]
> [    4.377415]  [<edc74ec4>] blkif_do_interrupt+0x176/0x189 [xen_blkfront]
> [    4.377415]  [<c103e063>] tasklet_action+0x63/0xa8
> [    4.377415]  [<c103f2d5>] __do_softirq+0xac/0x152
> [    4.377415]  [<c103f3ac>] do_softirq+0x31/0x3c
> [    4.377415]  [<c103f484>] irq_exit+0x29/0x5c
> [    4.377415]  [<c121a1b6>] xen_evtchn_do_upcall+0x29/0x34
> [    4.377415]  [<c100a027>] xen_do_upcall+0x7/0xc
> [    4.377415]  [<c10023a7>] ? hypercall_page+0x3a7/0x1005
> [    4.377415]  [<c10065a9>] ? xen_safe_halt+0x12/0x1f
> [    4.377415]  [<c10042cb>] xen_idle+0x27/0x38
> [    4.377415]  [<c100877e>] cpu_idle+0x49/0x63
> [    4.377415]  [<c14a6427>] rest_init+0x53/0x55
> [    4.377415]  [<c179c814>] start_kernel+0x2d4/0x2d9
> [    4.377415]  [<c179c0a8>] i386_start_kernel+0x97/0x9e
> [    4.377415]  [<c179f478>] xen_start_kernel+0x576/0x57e
> [    4.377415] ---[ end trace 0bfb98f0ed515cdc ]---
> 
>       J
> 

Hi Jeremy,

Any developments with this? I've got a report of the exact same warnings
on RHEL6 guest. See

https://bugzilla.redhat.com/show_bug.cgi?id=632802

RHEL6 doesn't have the 'Move blkif_interrupt into a tasklet' patch, so
that can be ruled out. Unfortunately I don't have this reproducing on a
test machine, so it's difficult to debug.  The report I have showed that
in at least one case it occurred on boot up, right after initting the
block device. I'm trying to get confirmation if that's always the case.

Thanks in advance for any pointers you might have.

Drew

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.