[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] 3.0.4: Soft lockup in netfront in SMP build
Just run into a (real) soft lockup running 3.0.4 - stack is at the end of this, but basically: . network_open acquires the rx spin lock with spin_lock() and then checks for work on the queue and calls (I think) netif_rx_schedule with the lock still held which can call into the hypervisor. . An interrupt is delivered to the bottom half of netfront which ends up calling netif_poll which blocks attempting to acquire the rx spin lock. Oops! I see from the unstable tree that this code was recently modified to use spin_lock_bh() instead of spin_lock() as part of a mega-merge of IA64 code - clearly we cant merge this changeset into 3.0.4. I haven't looked too closely at all of the code yet, but I'm wondering if a judicious change of spin_lock to spin_lock_bh in netfront would be the best approach? Simon BUG: soft lockup detected on CPU#0! Pid: 2973, comm: ifconfig EIP: 0061:[<c035868a>] CPU: 0 EIP is at _spin_lock+0xa/0x20 EFLAGS: 00000286 Tainted: GF (2.6.16.38-xen #1) EAX: c13b840c EBX: c13b8000 ECX: 00000040 EDX: cf783dc0 ESI: 00000000 EDI: c1233274 EBP: cf783d28 DS: 007b ES: 007b CR0: 8005003b CR2: b7eea198 CR3: 103f2000 CR4: 00000660 [<c010595d>] show_trace+0xd/0x10 [<c010344f>] show_regs+0x18f/0x1c0 [<c01491f4>] softlockup_tick+0xe4/0x100 [<c012c713>] do_timer+0x43/0xf0 [<c010936a>] timer_interrupt+0x1fa/0x670 [<c01494da>] handle_IRQ_event+0x6a/0xb0 [<c01495a9>] __do_IRQ+0x89/0xf0 [<c0106ee8>] do_IRQ+0x38/0x70 [<c028dee0>] evtchn_do_upcall+0x90/0x110 [<c01056a1>] hypervisor_callback+0x3d/0x48 [<c02a5db2>] netif_poll+0x32/0x630 [<c02dace8>] net_rx_action+0x148/0x230 [<c01279d5>] __do_softirq+0x95/0x130 [<c0127af5>] do_softirq+0x85/0xa0 [<c0127bda>] irq_exit+0x3a/0x50 [<c0106eed>] do_IRQ+0x3d/0x70 [<c028dee0>] evtchn_do_upcall+0x90/0x110 [<c01056a1>] hypervisor_callback+0x3d/0x48 [<c02a461b>] network_open+0x13b/0x210 [<c02d9564>] dev_open+0x74/0x90 [<c02db482>] dev_change_flags+0x52/0x110 [<c0320187>] devinet_ioctl+0x4f7/0x5a0 [<c0322174>] inet_ioctl+0x94/0xc0 [<c02cf84d>] sock_ioctl+0xed/0x250 [<c01842d6>] do_ioctl+0x76/0x90 [<c0184479>] vfs_ioctl+0x59/0x1d0 [<c0184657>] sys_ioctl+0x67/0x80 [<c01054cd>] syscall_call+0x7/0xb crash> _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |