Subject: Re: [GIT] Networking

From: Maarten Lankhorst <[email-masked]>
Date: Sun, 05 May 2013 12:24:10 +0200

Hey,

Op 05-05-13 04:42, David Miller schreef:
> 1) Several routines do not use netdev_features_t to hold such bitmasks,
>    fixes from Patrick McHardy and Bjørn Mork.
>
> 2) Update cpsw IRQ software state and the actual HW irq enabling in
>    the correct order.  From Mugunthan V N.
>
> 3) When sending tipc packets to multiple bearers, we have to make copies
>    of the SKB rather than just giving the original SKB directly.  Fix
>    from Gerlando Falauto.
>
> 4) Fix race with bridging topology change timer, from Stephen
>    Hemminger.
>
> 5) Fix TCPv6 segmentation handling in GRE and VXLAN, from Pravin B
>    Shelar.
>
> 6) Endian bug in USB pegasus driver, from Dan Carpenter.
>
> 7) Fix crashes on MTU reduction in USB asix driver, from Holger
>    Eitzenberger.
>
> 8) Don't allow the kernel to BUG() just because the user puts some
>    crap in an AF_PACKET mmap() ring descriptor.  Fix from Daniel
>    Borkmann.
>
> 9) Don't use variable sized arrays on the stack in xen-netback, from
>    Wei Liu.
>
> 10) Fix stats reporting and an unbalanced napi_disable() in be2net
>     driver.  From Somnath Kotur and Ajit Khaparde.
>
I finally decided to try 3.10rc0, but I'm getting a lot of this:

BUG: scheduling while atomic: irq/43-eth1/1465/0x00000102
Modules linked in: adt7475 ebtable_nat ebtables nouveau ipt_MASQUERADE iptable_nat nf_nat_ipv4 nf_nat xt_CHECKSUM iptable_mangle bridge snd_hda_codec_hdmi stp llc ttm drm_kms_helper drm snd_hda_codec_realtek mxm_wmi intel_powerclamp kvm_intel kvm snd_hda_intel snd_hda_codec snd_hwdep e1000e snd_pcm video parport_pc snd_page_alloc ptp ppdev pps_core parport nfsd lockd nfs_acl auth_rpcgss sunrpc oid_registry(P)
CPU: 0 PID: 1465 Comm: irq/43-eth1 Tainted: P        W    3.10.0-rc0-patser+ #70
Hardware name: Acer Aspire M3985/Aspire M3985, BIOS P01-A1 03/12/2012
 0000000000000000 ffff88041dc03cc8 ffffffff8165ea16 ffff88041dc03cd8
 ffffffff8165a84a ffff88041dc03d58 ffffffff8166200d 000000000000c350
 000000000000c350 ffff8803f827a180 ffff8803f8275fd8 ffff8803f8275fd8
Call Trace:
 <IRQ>  [<ffffffff8165ea16>] dump_stack+0x19/0x1b
 [<ffffffff8165a84a>] __schedule_bug+0x48/0x56
 [<ffffffff8166200d>] __schedule+0x7fa/0x832
 [<ffffffff81662154>] schedule+0x29/0x59
 [<ffffffff81660aa0>] schedule_hrtimeout_range_clock+0xeb/0x129
 [<ffffffff81078c5f>] ? update_rmtp+0x65/0x65
 [<ffffffff81660af1>] schedule_hrtimeout_range+0x13/0x15
 [<ffffffff8106140a>] usleep_range+0x40/0x42
 [<ffffffffa012a39a>] e1000_irq_enable+0x18b/0x202 [e1000e]
 [<ffffffffa012e022>] e1000e_poll+0x1d1/0x2e2 [e1000e]
 [<ffffffff81535e1b>] net_rx_action+0xaa/0x1f3
 [<ffffffff8105b055>] __do_softirq+0xcc/0x2a9
 [<ffffffff810d49e1>] ? irq_thread_fn+0x48/0x48
 [<ffffffff8166b3cc>] call_softirq+0x1c/0x30
 <EOI>  [<ffffffff810042d3>] do_softirq+0x4d/0x8a
 [<ffffffff8105ad57>] local_bh_enable+0xa0/0xa2
 [<ffffffff810d4a2a>] irq_forced_thread_fn+0x49/0x5a
 [<ffffffff810d467d>] irq_thread+0x122/0x145
 [<ffffffff810d48e9>] ? irq_finalize_oneshot.part.33+0xe7/0xe7
 [<ffffffff810d455b>] ? wake_threads_waitq+0x44/0x44
 [<ffffffff81075fe5>] kthread+0xc0/0xc5
 [<ffffffff81075f25>] ? flush_kthread_work+0x10c/0x10c
 [<ffffffff8166a16c>] ret_from_fork+0x7c/0xb0
 [<ffffffff81075f25>] ? flush_kthread_work+0x10c/0x10c

BUG: scheduling while atomic: Socket Thread/3163/0x00000402

etc, from various places..

I was using CONFIG_RCU_NOCB_CPU_ALL=y and threadirqs, I'm not sure if it's related or not..
Looking at e1000e there has been a few commits to change everything to usleep_range, maybe
it was a bit too much?

~Maarten