* Ingo Molnar wrote: > * Eric Dumazet wrote: > > > We might have a race in napi_schedule(), leaving interrupts > > disabled forever. I cannot test this patch, I dont have the > > hardware... > > I have tested it and the config that failed before works now. (as > do other configs as well) > > I'll have to re-test whether the failing config fails with your > fix reverted - that will have to wait until tomorrow or so. update: that forcedeth system is still working fine. I triggered other networking problems today though, a trylock failure message in netconsole, plus a dma-debug assert from e1000e: [ 1275.442025] Hangcheck: hangcheck value past margin! [ 1451.860024] ------------[ cut here ]------------ [ 1451.860024] BUG: spinlock trylock failure on UP on CPU#0, distcc/32540 [ 1451.860024] lock: f5318760, .magic: dead4ead, .owner: distcc/32540, .owner_cpu: 0 [ 1451.860024] Pid: 32540, comm: distcc Tainted: G W 2.6.31-rc1-tip-01236-gb62d24b-dirty #6631 [ 1451.860024] Call Trace: [ 1451.860024] [] spin_bug+0x98/0x140 [ 1451.860024] [] _raw_spin_trylock+0x71/0xc0 [ 1451.860024] [] _spin_trylock+0x1b/0x80 [ 1451.860024] [] netpoll_send_skb+0x198/0x470 [ 1451.860024] [] netpoll_send_udp+0x240/0x290 [ 1451.860024] [] ? _spin_lock_irqsave+0x64/0x90 [ 1451.860024] [] write_msg+0xeb/0x160 [ 1451.860024] [] __call_console_drivers+0x78/0xa0 [ 1451.860024] [] _call_console_drivers+0xe9/0x120 [ 1451.860024] [] call_console_drivers+0x137/0x260 [ 1451.860024] [] release_console_sem+0x9a/0x1a0 [ 1451.860024] [] vprintk+0x416/0x500 [ 1451.860024] [] ? check_for_illegal_area+0x197/0x340 [ 1451.860024] [] printk+0x1b/0x20 [ 1451.860024] [] warn_slowpath_common+0x1b/0xe0 [ 1451.860024] [] warn_slowpath_fmt+0x29/0x30 [ 1451.860024] [] check_for_illegal_area+0x197/0x340 [ 1451.860024] [] debug_dma_map_page+0x1cc/0x310 [ 1451.860024] [] skb_dma_map+0x219/0x580 [ 1451.860024] [] ? skb_copy_bits+0x126/0x590 [ 1451.860024] [] e1000_tx_map+0x4f/0x2a0 [ 1451.860024] [] e1000_xmit_frame+0x28b/0x5a0 [ 1451.860024] [] dev_hard_start_xmit+0x100/0x570 [ 1451.860024] [] qdisc_restart+0x45a/0x620 [ 1451.860024] [] __qdisc_run+0x27/0xb0 [ 1451.860024] [] dev_queue_xmit+0x6b9/0x7b0 [ 1451.860024] [] ip_finish_output2+0x1aa/0x490 [ 1451.860024] [] ip_finish_output+0xe1/0x110 [ 1451.860024] [] ip_output+0x67/0x140 [ 1451.860024] [] ip_local_out+0x48/0x90 [ 1451.860024] [] ip_queue_xmit+0x36f/0x680 [ 1451.860024] [] ? kmemleak_alloc+0x2c3/0x350 [ 1451.860024] [] ? tcp_options_write+0x19a/0x380 [ 1451.860024] [] tcp_transmit_skb+0x6b7/0xb20 [ 1451.860024] [] tcp_write_xmit+0x206/0x910 [ 1451.860024] [] __tcp_push_pending_frames+0x84/0x1a0 [ 1451.860024] [] do_tcp_sendpages+0x49e/0xd10 [ 1451.860024] [] tcp_sendpage+0x52/0xc0 [ 1451.860024] [] sock_sendpage+0x4c/0x80 [ 1451.860024] [] pipe_to_sendpage+0x6c/0xb0 [ 1451.860024] [] splice_from_pipe_feed+0x39/0x230 [ 1451.860024] [] ? pipe_to_sendpage+0x0/0xb0 [ 1451.860024] [] __splice_from_pipe+0x6c/0xa0 [ 1451.860024] [] ? pipe_to_sendpage+0x0/0xb0 [ 1451.860024] [] splice_from_pipe+0x4e/0x70 [ 1451.860024] [] ? generic_splice_sendpage+0x0/0x20 [ 1451.860024] [] generic_splice_sendpage+0x18/0x20 [ 1451.860024] [] ? pipe_to_sendpage+0x0/0xb0 [ 1451.860024] [] do_splice_from+0x12a/0x170 [ 1451.860024] [] direct_splice_actor+0x1d/0x30 [ 1451.860024] [] splice_direct_to_actor+0x143/0x410 [ 1451.860024] [] ? direct_splice_actor+0x0/0x30 [ 1451.860024] [] do_splice_direct+0x64/0xc0 [ 1451.860024] [] do_sendfile+0x47a/0x620 [ 1451.860024] [] ? poll_select_copy_remaining+0x117/0x290 [ 1451.860024] [] sys_sendfile+0x111/0x1b0 [ 1451.860024] [] sysenter_do_call+0x12/0x32 [ 1451.868792] WARNING: at lib/dma-debug.c:874 check_for_illegal_area+0x197/0x340() [ 1451.868792] Hardware name: 1951A26 [ 1451.869792] e1000e 0000:02:00.0: DMA-API: device driver maps memory from kernel text or rodata [addr=c0fffaa0] [size=1376] [ 1451.869792] Pid: 32540, comm: distcc Tainted: G W 2.6.31-rc1-tip-01236-gb62d24b-dirty #6631 [ 1451.869792] Call Trace: [ 1451.869792] [] warn_slowpath_common+0x75/0xe0 [ 1451.869792] [] warn_slowpath_fmt+0x29/0x30 [ 1451.869792] [] check_for_illegal_area+0x197/0x340 [ 1451.869792] [] debug_dma_map_page+0x1cc/0x310 [ 1451.869792] [] skb_dma_map+0x219/0x580 [ 1451.869792] [] ? skb_copy_bits+0x126/0x590 [ 1451.870056] [] e1000_tx_map+0x4f/0x2a0 [ 1451.870056] [] e1000_xmit_frame+0x28b/0x5a0 [ 1451.870056] [] dev_hard_start_xmit+0x100/0x570 [ 1451.870056] [] qdisc_restart+0x45a/0x620 [ 1451.870056] [] __qdisc_run+0x27/0xb0 [ 1451.870056] [] dev_queue_xmit+0x6b9/0x7b0 [ 1451.870056] [] ip_finish_output2+0x1aa/0x490 [ 1451.870056] [] ip_finish_output+0xe1/0x110 [ 1451.870056] [] ip_output+0x67/0x140 [ 1451.870056] [] ip_local_out+0x48/0x90 [ 1451.871070] [] ip_queue_xmit+0x36f/0x680 [ 1451.871070] [] ? kmemleak_alloc+0x2c3/0x350 [ 1451.871070] [] ? tcp_options_write+0x19a/0x380 [ 1451.871070] [] tcp_transmit_skb+0x6b7/0xb20 [ 1451.871070] [] tcp_write_xmit+0x206/0x910 [ 1451.871070] [] __tcp_push_pending_frames+0x84/0x1a0 [ 1451.871070] [] do_tcp_sendpages+0x49e/0xd10 [ 1451.871070] [] tcp_sendpage+0x52/0xc0 [ 1451.871070] [] sock_sendpage+0x4c/0x80 [ 1451.871070] [] pipe_to_sendpage+0x6c/0xb0 [ 1451.872070] [] splice_from_pipe_feed+0x39/0x230 [ 1451.872070] [] ? pipe_to_sendpage+0x0/0xb0 [ 1451.872070] [] __splice_from_pipe+0x6c/0xa0 [ 1451.872070] [] ? pipe_to_sendpage+0x0/0xb0 [ 1451.872070] [] splice_from_pipe+0x4e/0x70 [ 1451.872070] [] ? generic_splice_sendpage+0x0/0x20 [ 1451.872070] [] generic_splice_sendpage+0x18/0x20 [ 1451.872070] [] ? pipe_to_sendpage+0x0/0xb0 [ 1451.872070] [] do_splice_from+0x12a/0x170 [ 1451.872070] [] direct_splice_actor+0x1d/0x30 [ 1451.873069] [] splice_direct_to_actor+0x143/0x410 [ 1451.873069] [] ? direct_splice_actor+0x0/0x30 [ 1451.873069] [] do_splice_direct+0x64/0xc0 [ 1451.873069] [] do_sendfile+0x47a/0x620 [ 1451.873069] [] ? poll_select_copy_remaining+0x117/0x290 [ 1451.873069] [] sys_sendfile+0x111/0x1b0 [ 1451.873069] [] sysenter_do_call+0x12/0x32 [ 1451.873069] ---[ end trace fdf7679c62c5b84a ]--- [ 1455.442024] Hangcheck: hangcheck value past margin! Config attached. Ingo