Netdev List
 help / color / mirror / Atom feed
* Re: [Bugme-new] [Bug 9224] New: Settings to /proc/sys/net/ipv[46]/conf/all are not propagated
From: Andrew Morton @ 2007-10-25 16:16 UTC (permalink / raw)
  To: netdev; +Cc: bugme-daemon, svdb+linux-kernel-bugs
In-Reply-To: <bug-9224-10286@http.bugzilla.kernel.org/>

On Thu, 25 Oct 2007 04:44:06 -0700 (PDT) bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=9224
> 
>            Summary: Settings to /proc/sys/net/ipv[46]/conf/all are not
>                     propagated
>            Product: Networking
>            Version: 2.5
>      KernelVersion: 2.6.24-rc1
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: normal
>           Priority: P1
>          Component: Other
>         AssignedTo: acme@ghostprotocols.net
>         ReportedBy: svdb+linux-kernel-bugs@stack.nl
> 
> 
> Most recent kernel where this bug did not occur: 2.6.22 (not sure)
> Distribution: custom
> Hardware Environment: See attached files
> Software Environment: See attached files.
> Problem Description: Changing a setting in /proc/sys/net/ipv[46]/conf/all does
> not propagate the setting to the individual network interfaces, for most
> settings.
> 
> Steps to reproduce:
> # cat /proc/sys/net/ipv6/conf/{all,default,lo,eth0}/autoconf
> 1
> 1
> 1
> 1
> # echo 0 > /proc/sys/net/ipv6/conf/all/autoconf
> # echo 0 > /proc/sys/net/ipv6/conf/default/autoconf
> # cat /proc/sys/net/ipv6/conf/{all,default,lo,eth0}/autoconf
> 0
> 0
> 1
> 1
> 
> The problem occurs for other settings than "autoconf", but not for all.
> "forwarding" is one which does work.
> 
> Changing settings for individual interfaces still works.
> 
> The problem is not specific to ipv6.
> 

Apparently a regression.

^ permalink raw reply

* Re: [NETNS] Oops in register_pernet_operations() with CONFIG_NET_NS=n
From: Eric W. Biederman @ 2007-10-25 16:39 UTC (permalink / raw)
  To: Benjamin Thery
  Cc: Denis V. Lunev, Pavel Emelianov, David Miller, Linux Netdev List,
	Cedric Le Goater, Linux Containers, Daniel Lezcano
In-Reply-To: <4720B1EE.8050507@bull.net>

Benjamin Thery <benjamin.thery@bull.net> writes:

> Eric W. Biederman wrote:
>> Benjamin Thery <benjamin.thery@bull.net> writes:
>> 
>>> Denis V. Lunev wrote:
>>>> The patch attached should help. The idea is simple. The "init" should be
>>>> called only once without NETNS. Period. No need for any lists.
>>> This is the kind of idea I had but I didn't think it could be 
>>> that simple. :) 
>>> Thanks Denis.
>> 
>> It isn't.
>> 
>>>> I'll resend it to Dave after the ACK.
>>> Tested on x86_64 with CONFIG_NET_NS=n and y. 
>>> It fixes the issue we observed.
>>>
>>> Acked-by: Benjamin Thery <benjamin.thery@bull.net>
>> 
>> Try rmmod.
>
> rmmod was part of my tests and it does work.
> I did:
>
> $ iptables --list
>
>   modules x_tables, ip_tables & iptable_filter are loaded
>   each calling register_pernet_subsys.
>
> $ rmmod iptable_filter ip_tables x_tables
>
>   No problem here
>
> $ iptables --list
>
>   To be sure I can load the modules again.

You haven't changed those modules to be mark struct
pernet_operations as __net_initdata have you?

If that is the case the symptoms you are seeing make sense.

Not doing the list walks helps when if it is only compiled in
kernel data structures that are removed.  However if it
is potentially modular data structures that are removed
the dereference of exit in unregister_pernet_subsys will also have
problems.

Eric

^ permalink raw reply

* Re: [NETNS] Oops in register_pernet_operations() with CONFIG_NET_NS=n
From: Denis V. Lunev @ 2007-10-25 16:52 UTC (permalink / raw)
  To: Eric W. Biederman
  Cc: Benjamin Thery, Pavel Emelianov, David Miller, Linux Netdev List,
	Cedric Le Goater, Linux Containers, Daniel Lezcano
In-Reply-To: <m1y7dr5esy.fsf@ebiederm.dsl.xmission.com>

Eric W. Biederman wrote:
> Benjamin Thery <benjamin.thery@bull.net> writes:
> 
>> Eric W. Biederman wrote:
>>> Benjamin Thery <benjamin.thery@bull.net> writes:
>>>
>>>> Denis V. Lunev wrote:
>>>>> The patch attached should help. The idea is simple. The "init" should be
>>>>> called only once without NETNS. Period. No need for any lists.
>>>> This is the kind of idea I had but I didn't think it could be 
>>>> that simple. :) 
>>>> Thanks Denis.
>>> It isn't.

this will work due to INIT_LIST_HEAD with circles list to itself and a
del operation will work.

By the way, I think that we can in the case of undefined CONFIG_NET_NS
reduce register to calling ->init method and unregister to calling
->exit method.

This is a correct thing at least for now and will be welcomed by the all
embedded/etc people.

Regards,
	Den

^ permalink raw reply

* Re: [linux-pm] QUESTION: How to fix race between .suspend routine and watchdog timer
From: Alan Stern @ 2007-10-25 17:02 UTC (permalink / raw)
  To: Maxim Levitsky; +Cc: linux-kernel, netdev, linux-pm
In-Reply-To: <200710250612.44296.maximlevitsky@gmail.com>

On Thu, 25 Oct 2007, Maxim Levitsky wrote:

> Hi,
> 
> Recently, trying to fix saa7134 suspend/resume problems I found that there 
> is a race between IRQ handler and .suspend , and that I cant let driver access the device
> while its in D3 since it can lock up some systems.
> 
> Now I am looking to fix those issues in two drivers that have my .suspend/.resume routines.
> the saa7134 capture chip and dmfe, the davicom network driver.
> 
> Looking through the dmfe code, I noticed yet another possible race.
> A race between the .suspend, and a timer that serves both as a watchdog, and link state detector.
> Again I need to prevent it from running during the suspend/resume, but how?
> 
> I can use del_timer in .suspend, and mod_timer in .resume, but that doesn't protect against
> race with already running timer.
> I can use del_timer_sync, but it states that it is useless if timer re-enables itself, and I agree with that.
> In dmfe case the timer does re-enable itself.

That comment isn't right.  del_timer_sync works perfectly well even if
the timer routine re-enables itself, provided it stops doing so after a
small number of iterations.

> I can put checks in the timer for ->insuspend, and don't re enable it if set,
> but that opens a new can of worms with memory barriers, etc...

You don't have to worry about any of that stuff.  Just check the 
insuspend flag and don't re-enable the timer if it is set.  Even 
without any memory barriers, the timer routine won't iterate more than 
once or twice.

Alan Stern

^ permalink raw reply

* Re: [Bugme-new] [Bug 9224] New: Settings to /proc/sys/net/ipv[46]/conf/all are not propagated
From: YOSHIFUJI Hideaki / 吉藤英明 @ 2007-10-25 17:14 UTC (permalink / raw)
  To: akpm; +Cc: netdev, bugme-daemon, svdb+linux-kernel-bugs, yoshfuji
In-Reply-To: <20071025091652.0d7002c1.akpm@linux-foundation.org>

In article <20071025091652.0d7002c1.akpm@linux-foundation.org> (at Thu, 25 Oct 2007 09:16:52 -0700), Andrew Morton <akpm@linux-foundation.org> says:

> > Most recent kernel where this bug did not occur: 2.6.22 (not sure)

> Apparently a regression.

I would say it is a bug, but it is not a regression.
I mean, I believe this "bug" lives since 2.2.

--yoshfuji

^ permalink raw reply

* Re: on the topic of alternate MAC addresses
From: Rick Jones @ 2007-10-25 17:14 UTC (permalink / raw)
  To: Eric W. Biederman; +Cc: David Miller, jeff, netdev, Patrick McHardy
In-Reply-To: <m13avz6ujf.fsf@ebiederm.dsl.xmission.com>

Eric W. Biederman wrote:
> Duplicate mac addresses across interfaces on the same machine
> should generally be a don't care.  Although there may some
> cases we don't mind.

What might the switches think of that?  Outside of the context of a 
link-aggregate I would think that could do some unhappy things when multiple 
interfaces are connected to the same broadcast domain.

That the "all interfaces have one MAC" default behaviour on SPARC systems often 
ran into troubles is probably cautionary here.

rick jones

^ permalink raw reply

* Re: [NETNS] Oops in register_pernet_operations() with CONFIG_NET_NS=n
From: Eric W. Biederman @ 2007-10-25 17:21 UTC (permalink / raw)
  To: Denis V. Lunev
  Cc: Benjamin Thery, Pavel Emelianov, David Miller, Linux Netdev List,
	Cedric Le Goater, Linux Containers, Daniel Lezcano
In-Reply-To: <4720C9B9.80706@gmail.com>

"Denis V. Lunev" <dlunev@gmail.com> writes:

> Eric W. Biederman wrote:
>> Benjamin Thery <benjamin.thery@bull.net> writes:
>> 
>>> Eric W. Biederman wrote:
>>>> Benjamin Thery <benjamin.thery@bull.net> writes:
>>>>
>>>>> Denis V. Lunev wrote:
>>>>>> The patch attached should help. The idea is simple. The "init" should be
>>>>>> called only once without NETNS. Period. No need for any lists.
>>>>> This is the kind of idea I had but I didn't think it could be 
>>>>> that simple. :) 
>>>>> Thanks Denis.
>>>> It isn't.
>
> this will work due to INIT_LIST_HEAD with circles list to itself and a
> del operation will work.

Suppose I have this fragment of code in a module:

> static int __net_init xt_net_init(struct net *net)
> {
>         ...
> }
> 
> static void __net_exit xt_net_exit(struct net *net)
> {
>         ...
> }
> 
> static struct pernet_operations __net_initdata  xt_net_ops = {
> 	.init = xt_net_init,
> 	.exit = xt_net_exit,
> };
> 
> static int __init xt_init(void)
> {
> 	return register_pernet_subsys(&xt_net_ops);
> }
> 
> static void __exit xt_fini(void)
> {
> 	unregister_pernet_subsys(&xt_net_ops);
> }
> 
> module_init(xt_init);
> module_exit(xt_fini);

What happens during module removal when unregister_pernet_subys calls 
xt_net_ops.exit after xt_net_ops has been removed from the kernels
memory?


> By the way, I think that we can in the case of undefined CONFIG_NET_NS
> reduce register to calling ->init method and unregister to calling
> ->exit method.
>
> This is a correct thing at least for now and will be welcomed by the all
> embedded/etc people.

I'm not fundamentally opposed.  Earlier versions of my patchset
did that and more.   However I think the pain is greater then the
gain right now.  Especially since this concept seem to require
having quality inspected into it.

Eric

^ permalink raw reply

* Re: on the topic of alternate MAC addresses
From: Eric W. Biederman @ 2007-10-25 17:36 UTC (permalink / raw)
  To: Rick Jones; +Cc: David Miller, jeff, netdev, Patrick McHardy
In-Reply-To: <4720CEE2.1010007@hp.com>

Rick Jones <rick.jones2@hp.com> writes:

> Eric W. Biederman wrote:
>> Duplicate mac addresses across interfaces on the same machine
>> should generally be a don't care.  Although there may some
>> cases we don't mind.
>
> What might the switches think of that?  Outside of the context of a
> link-aggregate I would think that could do some unhappy things when multiple
> interfaces are connected to the same broadcast domain.
>
> That the "all interfaces have one MAC" default behaviour on SPARC systems often
> ran into troubles is probably cautionary here.

Sure we don't want to duplicate mac addresses globally by default.

The case that is always wrong is duplicate mac addresses going
in and out the same interface, and skimming through the code
it looks like we already have the data structures necessary to
prevent duplicate use of unicast mac addresses already.

Eric

^ permalink raw reply

* MD5 signature pool race bug?
From: Stephen Hemminger @ 2007-10-25 18:36 UTC (permalink / raw)
  To: YOSHIFUJI Hideaki / 吉藤英明,
	David S. Miller
  Cc: netdev

Looking at this bug report:
	http://bugzilla.kernel.org/show_bug.cgi?id=9173

> The server is a border router running Quagga for BGP and OSPF, and usually
> forwards 4-500Mbps worth of traffic between around 80 VLAN interfaces.  Four
> network interfaces, bonded pairwise.  It has three BGP sessions with MD5
> signatures enabled.
> 
> The server has an identical twin (for failover) which has also locked up like
> this, although it happens much more frequently on the active one (no matter
> which one is active, unfortunately).  We've got lots of these servers, but only
> the border routers have had these lockups.
> 
> Once in a while (say, once every four to six weeks) it will flood the console
> with BUG: soft lockup detected on CPU#0! and shortly after fail completely.This
> time I had increased the default prink level one notch and got the back traces
> too.  I'm not used to reading those, but the md5sig stuff seems to stand out...
> 
> I'll try to attach the trace somehow (got an error message about the bug being
> to large when attempting to include it here).
> 
> Steps to reproduce:  It happens completely out of the blue, so I don't know
> how.
> 
> Tore


It looks like there may be a race between the tricky allocate per-cpu pool
and free-per-cpu pool logic.  IMHO the pool management code is more complex
than it needs to be and may be the source of the bug. Couldn't the signature
just use normal kmalloc/kfree and slab cache?

Backtrace from bug report:

Serial console started.  To stop, type ESC (
[616333.267002] BUG: soft lockup detected on CPU#0!
[616333.276201] 
[616333.276202] Call Trace:
[616333.284407]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616333.297135]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616333.309315]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616333.322359]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616333.335230]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616333.347410]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616333.358896]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616333.371073]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616333.383954]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616333.397006]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616333.411647]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616333.422441]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616333.435488]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616333.446805]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616333.462656]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616333.476742]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616333.487190]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616333.497985]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616333.509817]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616333.519918]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616333.531932]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616333.545332]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616333.557336]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616333.569861]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616333.581003]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616333.591796]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616333.602587]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616333.613036]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616333.622789]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616333.633405]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616333.646813]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616333.658991]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616333.672036]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616333.682484]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616333.694662]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616333.706498]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616333.719887]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616333.730508]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616333.741478]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616333.752970]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616333.764111]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616333.776809]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616333.788469]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616333.799090]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616333.809541]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616333.819815]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616333.830435] 
[616343.252556] BUG: soft lockup detected on CPU#0!
[616343.261784] 
[616343.261785] Call Trace:
[616343.270020]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616343.282731]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616343.294909]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616343.307955]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616343.320825]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616343.333007]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616343.344497]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616343.356676]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616343.369554]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616343.382603]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616343.397238]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616343.408031]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616343.421077]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616343.432394]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616343.448245]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616343.462330]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616343.472778]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616343.483573]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616343.495405]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616343.505505]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616343.517515]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616343.530915]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616343.542920]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616343.555445]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616343.566585]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616343.577378]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616343.588169]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616343.598614]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616343.608366]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616343.618982]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616343.632390]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616343.644570]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616343.657615]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616343.668063]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616343.680242]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616343.692078]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616343.705467]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616343.716090]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616343.727059]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616343.738551]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616343.749692]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616343.762393]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616343.774051]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616343.784673]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616343.795119]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616343.805392]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616343.816012] 
[616353.238112] BUG: soft lockup detected on CPU#0!
[616353.247343] 
[616353.247343] Call Trace:
[616353.255579]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616353.268290]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616353.280467]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616353.293511]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616353.306387]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616353.318567]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616353.330053]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616353.342230]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616353.355108]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616353.368157]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616353.382792]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616353.393585]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616353.406631]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616353.417948]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616353.433798]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616353.447883]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616353.458331]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616353.469127]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616353.480958]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616353.491058]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616353.503068]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616353.516468]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616353.528472]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616353.540997]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616353.552138]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616353.562931]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616353.573724]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616353.584169]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616353.593921]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616353.604536]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616353.617944]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616353.630124]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616353.643168]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616353.653616]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616353.665797]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616353.677632]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616353.691021]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616353.701643]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616353.712612]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616353.724104]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616353.735248]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616353.747948]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616353.759606]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616353.770226]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616353.780670]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616353.790943]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616353.801563] 
[616363.223667] BUG: soft lockup detected on CPU#0!
[616363.232899] 
[616363.232899] Call Trace:
[616363.241133]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616363.253845]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616363.266023]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616363.279066]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616363.291937]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616363.304120]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616363.315606]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616363.327785]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616363.340662]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616363.353711]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616363.368346]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616363.379137]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616363.392183]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616363.403501]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616363.419350]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616363.433432]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616363.443878]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616363.454672]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616363.466504]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616363.476605]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616363.488620]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616363.503705]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616363.515709]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616363.528234]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616363.539375]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616363.550168]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616363.560962]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616363.571410]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616363.581162]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616363.591778]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616363.605186]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616363.617363]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616363.630407]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616363.640855]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616363.653035]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616363.664871]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616363.678260]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616363.688882]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616363.699851]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616363.711342]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616363.722483]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616363.735181]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616363.746838]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616363.757461]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616363.767911]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616363.778185]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616363.788805] 
[616373.209223] BUG: soft lockup detected on CPU#0!
[616373.218454] 
[616373.218455] Call Trace:
[616373.226689]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616373.239400]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616373.251580]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616373.264623]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616373.277493]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616373.289673]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616373.301158]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616373.313335]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616373.326212]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616373.339261]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616373.353899]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616373.364696]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616373.377741]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616373.389057]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616373.404907]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616373.418992]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616373.429440]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616373.440235]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616373.452068]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616373.462168]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616373.474178]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616373.487578]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616373.499582]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616373.512107]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616373.523248]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616373.534039]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616373.544830]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616373.555275]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616373.565027]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616373.575643]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616373.589051]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616373.601229]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616373.614273]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616373.624720]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616373.636901]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616373.648735]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616373.662124]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616373.672746]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616373.683715]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616373.695206]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616373.706346]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616373.719043]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616373.730703]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616373.741325]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616373.751771]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616373.762044]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616373.772664] 
[616383.194779] BUG: soft lockup detected on CPU#0!
[616383.204008] 
[616383.204008] Call Trace:
[616383.212240]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616383.224949]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616383.237128]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616383.250172]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616383.263043]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616383.275225]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616383.286712]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616383.298888]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616383.311764]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616383.324813]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616383.339450]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616383.350244]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616383.363289]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616383.374606]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616383.390457]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616383.404540]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616383.414986]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616383.425782]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616383.437613]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616383.447713]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616383.459725]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616383.473124]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616383.485143]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616383.497670]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616383.508810]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616383.519603]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616383.530396]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616383.540841]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616383.550593]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616383.561208]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616383.574616]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616383.586793]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616383.599842]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616383.610290]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616383.622468]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616383.634303]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616383.647696]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616383.658319]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616383.669288]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616383.680780]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616383.691922]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616383.704621]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616383.716281]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616383.726903]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616383.737349]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616383.747622]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616383.758242] 
[616393.180335] BUG: soft lockup detected on CPU#0!
[616393.189563] 
[616393.189564] Call Trace:
[616393.197798]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616393.210509]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616393.222687]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616393.235730]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616393.248603]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616393.260785]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616393.272272]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616393.284451]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616393.297328]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616393.310381]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616393.325019]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616393.335812]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616393.348859]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616393.360176]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616393.376025]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616393.390110]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616393.400557]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616393.411349]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616393.423182]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616393.433282]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616393.445292]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616393.458691]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616393.470696]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616393.483223]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616393.494363]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616393.505156]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616393.515949]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616393.526394]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616393.536147]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616393.546765]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616393.560174]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616393.572352]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616393.585399]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616393.595848]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616393.608038]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616393.619872]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616393.633261]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616393.643883]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616393.654852]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616393.666344]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616393.677484]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616393.690183]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616393.701843]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616393.712466]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616393.722912]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616393.734870]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616393.745489] 
[616403.165890] BUG: soft lockup detected on CPU#0!
[616403.175119] 
[616403.175120] Call Trace:
[616403.183353]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616403.196062]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616403.208240]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616403.221283]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616403.234156]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616403.246335]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616403.257821]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616403.270000]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616403.282877]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616403.295926]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616403.310561]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616403.321353]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616403.334399]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616403.345716]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616403.361564]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616403.375647]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616403.386094]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616403.396892]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616403.408726]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616403.418830]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616403.430840]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616403.444239]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616403.456242]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616403.468768]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616403.479907]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616403.490700]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616403.501493]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616403.511938]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616403.521692]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616403.532306]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616403.545715]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616403.557894]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616403.570938]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616403.581390]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616403.593568]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616403.605403]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616403.618792]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616403.629415]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616403.640384]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616403.651875]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616403.663014]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616403.675713]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616403.687373]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616403.697994]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616403.708440]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616403.718714]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616403.729334] 
[616413.151446] BUG: soft lockup detected on CPU#0!
[616413.160677] 
[616413.160678] Call Trace:
[616413.168911]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616413.181620]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616413.193798]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616413.206841]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616413.219712]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616413.231893]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616413.243378]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616413.255557]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616413.268433]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616413.281482]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616413.296118]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616413.306911]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616413.319957]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616413.331274]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616413.347124]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616413.361210]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616413.371657]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616413.382449]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616413.394282]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616413.404382]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616413.416392]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616413.429791]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616413.441796]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616413.454323]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616413.465469]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616413.476262]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616413.487056]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616413.497501]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616413.507252]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616413.517867]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616413.531279]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616413.543457]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616413.556501]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616413.566950]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616413.579135]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616413.590970]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616413.604358]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616413.614980]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616413.625948]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616413.637441]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616413.648581]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616413.661278]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616413.672936]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616413.683557]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616413.694003]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616413.704276]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616413.714896] 
[616423.137002] BUG: soft lockup detected on CPU#0!
[616423.146231] 
[616423.146231] Call Trace:
[616423.154466]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616423.167178]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616423.179357]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616423.192400]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616423.205270]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616423.217452]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616423.228937]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616423.241116]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616423.253993]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616423.267044]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616423.281684]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616423.292477]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616423.305523]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616423.316840]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616423.332689]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616423.346774]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616423.357222]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616423.368016]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616423.379850]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616423.389950]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616423.401961]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616423.415365]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616423.427370]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616423.439895]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616423.451034]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616423.461825]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616423.472616]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616423.483061]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616423.492813]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616423.503428]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616423.516836]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616423.529020]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616423.542064]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616423.552513]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616423.564693]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616423.576529]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616423.589918]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616423.600540]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616423.611509]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616423.623001]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616423.634141]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616423.646840]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616423.658497]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616423.669119]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616423.679565]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616423.689840]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616423.700460] 
[616433.122558] BUG: soft lockup detected on CPU#0!
[616433.131787] 
[616433.131787] Call Trace:
[616433.140022]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616433.152733]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616433.164913]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616433.177956]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616433.190829]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616433.203008]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616433.214494]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616433.226672]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616433.239554]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616433.252605]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616433.267241]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616433.278035]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616433.291079]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616433.302400]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616433.318251]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616433.332334]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616433.342780]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616433.355262]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616433.367095]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616433.377199]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616433.389209]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616433.402609]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616433.414614]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616433.427139]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616433.438279]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616433.449073]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616433.459866]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616433.470310]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616433.480063]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616433.490678]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616433.504085]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616433.516264]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616433.529309]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616433.539761]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616433.551939]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616433.563775]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616433.577164]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616433.587786]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616433.598755]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616433.610247]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616433.621390]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616433.634089]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616433.645749]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616433.656369]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616433.666815]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616433.677088]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616433.687710] 
[616443.108113] BUG: soft lockup detected on CPU#0!
[616443.117342] 
[616443.117343] Call Trace:
[616443.125582]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616443.138293]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616443.150473]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616443.163520]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616443.176391]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616443.188571]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616443.200057]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616443.212234]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616443.225110]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616443.238159]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616443.252795]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616443.263588]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616443.276633]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616443.287947]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616443.303798]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616443.317881]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616443.328330]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616443.339124]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616443.350957]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616443.361057]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616443.373067]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616443.386466]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616443.398470]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616443.410995]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616443.422135]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616443.432928]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616443.443721]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616443.454167]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616443.463918]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616443.474534]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616443.487942]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616443.500119]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616443.513164]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616443.523613]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616443.535792]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616443.547627]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616443.561016]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616443.571638]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616443.582606]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616443.594099]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616443.605239]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616443.617938]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616443.629598]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616443.640226]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616443.650672]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616443.660944]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616443.671564] 
[616453.093669] BUG: soft lockup detected on CPU#0!
[616453.102898] 
[616453.102899] Call Trace:
[616453.111131]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616453.123842]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616453.136020]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616453.149063]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616453.161936]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616453.174115]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616453.185600]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616453.197778]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616453.210655]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616453.223704]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616453.238340]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616453.249134]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616453.262180]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616453.273497]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616453.289345]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616453.303428]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616453.313876]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616453.324671]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616453.336504]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616453.346605]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616453.358616]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616453.372016]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616453.384021]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616453.396546]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616453.407688]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616453.418481]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616453.429272]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616453.439717]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616453.449473]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616453.460089]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616453.473497]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616453.485676]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616453.498720]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616453.509169]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616453.521349]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616453.533186]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616453.546575]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616453.557211]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616453.568184]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616453.579675]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616453.590815]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616453.603513]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616453.615170]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616453.625792]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616453.636238]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616453.646511]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616453.657130] 
[616463.079225] BUG: soft lockup detected on CPU#0!
[616463.088454] 
[616463.088455] Call Trace:
[616463.096689]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616463.109400]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616463.121578]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616463.134621]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616463.147493]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616463.159672]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616463.171157]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616463.183333]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616463.196210]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616463.209259]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616463.223898]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616463.234691]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616463.247738]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616463.259054]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616463.274904]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616463.288989]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616463.299437]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616463.310231]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616463.322064]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616463.332164]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616463.344175]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616463.357574]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616463.369579]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616463.382104]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616463.393243]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616463.404037]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616463.414829]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616463.425273]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616463.435026]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616463.445642]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616463.459050]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616463.471228]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616463.484272]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616463.494719]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616463.506900]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616463.518733]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616463.532123]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616463.542745]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616463.553714]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616463.565205]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616463.576346]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616463.590729]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616463.602390]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616463.613011]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616463.623456]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616463.633730]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616463.644350] 
[616473.064781] BUG: soft lockup detected on CPU#0!
[616473.074010] 
[616473.074011] Call Trace:
[616473.082245]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616473.094956]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616473.107135]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616473.120180]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616473.133050]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616473.145230]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616473.156715]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616473.168894]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616473.181770]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616473.194821]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616473.209457]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616473.220250]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616473.233295]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616473.244612]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616473.260465]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616473.274548]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616473.284994]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616473.295789]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616473.307621]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616473.317723]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616473.329735]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616473.343134]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616473.355140]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616473.367665]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616473.378806]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616473.389599]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616473.400392]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616473.410837]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616473.420588]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616473.431203]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616473.444611]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616473.456787]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616473.469832]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616473.480280]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616473.492457]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616473.504292]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616473.517680]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616473.528301]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616473.539270]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616473.550764]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616473.561904]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616473.574603]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616473.586261]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616473.596884]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616473.607330]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616473.617604]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616473.628224] 
[616483.050336] BUG: soft lockup detected on CPU#0!
[616483.059565] 
[616483.059566] Call Trace:
[616483.067801]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616483.080511]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616483.092692]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616483.105735]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616483.118612]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616483.130791]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616483.142278]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616483.154454]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616483.167332]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616483.180381]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616483.195016]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616483.205807]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616483.218853]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616483.230170]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616483.246020]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616483.260106]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616483.270552]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616483.281347]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616483.293178]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616483.303279]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616483.315290]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616483.328689]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616483.340694]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616483.353220]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616483.364359]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616483.375153]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616483.385944]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616483.396388]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616483.406141]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616483.416756]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616483.430165]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616483.442343]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616483.455388]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616483.465837]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616483.478017]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616483.489853]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616483.503242]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616483.513864]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616483.524833]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616483.536324]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616483.547469]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616483.560168]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616483.571828]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616483.582450]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616483.592897]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616483.603169]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616483.613788] 
[616493.035892] BUG: soft lockup detected on CPU#0!
[616493.045121] 
[616493.045122] Call Trace:
[616493.053357]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616493.066068]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616493.078247]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616493.091289]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616493.104160]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616493.116342]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616493.127827]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616493.140004]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616493.152882]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616493.165931]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616493.180568]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616493.191361]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616493.204408]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616493.215726]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616493.231575]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616493.245660]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616493.256109]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616493.266903]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616493.278736]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616493.288837]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616493.300847]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616493.314246]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616493.326249]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616493.338778]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616493.349919]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616493.360717]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616493.371509]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616493.381954]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616493.391707]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616493.402325]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616493.415730]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616493.427910]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616493.440957]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616493.451404]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616493.463582]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616493.475422]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616493.488811]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616493.499434]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616493.510402]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616493.521894]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616493.533034]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616493.545733]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616493.557390]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616493.568012]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616493.578459]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616493.588732]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616493.599351] 
[616503.021448] BUG: soft lockup detected on CPU#0!
[616503.030677] 
[616503.030677] Call Trace:
[616503.038912]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616503.051624]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616503.063803]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616503.076847]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616503.089719]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616503.101900]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616503.113385]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616503.125561]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616503.138439]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616503.151488]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616503.166123]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616503.176917]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616503.189963]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616503.201280]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616503.218817]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616503.232902]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616503.243348]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616503.254142]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616503.265974]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616503.276074]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616503.288084]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616503.301483]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616503.313487]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616503.326012]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616503.337152]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616503.347945]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616503.358737]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616503.369181]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616503.378934]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616503.389549]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616503.402958]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616503.415135]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616503.428180]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616503.438627]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616503.450808]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616503.462642]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616503.476030]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616503.486652]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616503.497621]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616503.509117]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616503.520259]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616503.532959]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616503.544616]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616503.555237]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616503.565683]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616503.575957]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616503.586577] 
[616513.007004] BUG: soft lockup detected on CPU#0!
[616513.016235] 
[616513.016236] Call Trace:
[616513.024470]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616513.037179]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616513.049357]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616513.062400]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616513.075274]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616513.087453]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616513.098941]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616513.111120]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616513.123995]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616513.137044]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616513.151679]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616513.162473]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616513.175519]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616513.186836]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616513.202688]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616513.216771]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616513.227218]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616513.238012]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616513.249845]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616513.259945]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616513.271954]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616513.285354]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616513.297357]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616513.309882]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616513.321023]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616513.331817]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616513.342608]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616513.353053]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616513.362806]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616513.373422]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616513.386829]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616513.399007]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616513.412052]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616513.422501]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616513.434681]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616513.446516]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616513.459905]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616513.470528]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616513.481496]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616513.492989]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616513.504129]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616513.516831]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616513.528490]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616513.539111]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616513.549557]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616513.559829]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616513.570449] 
[616522.992560] BUG: soft lockup detected on CPU#0!
[616523.001791] 
[616523.001791] Call Trace:
[616523.010023]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616523.022736]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616523.034915]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616523.047958]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616523.060828]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616523.073007]  [<ffffffff80266be5>] __lock_text_start+0x5/0x10
[616523.084492]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616523.096672]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616523.109549]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616523.122605]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616523.137242]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616523.148035]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616523.161080]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616523.172397]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616523.188247]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616523.202332]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616523.212779]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616523.223573]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616523.235406]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616523.245507]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616523.257518]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616523.270917]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616523.282921]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616523.295446]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616523.306586]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616523.317379]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616523.328172]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616523.338617]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616523.348370]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616523.358990]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616523.372398]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616523.384576]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616523.397621]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616523.408069]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616523.420247]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616523.432082]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616523.445472]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616523.456094]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616523.467063]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616523.478554]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616523.489694]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616523.502393]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616523.514053]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616523.524674]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616523.535120]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616523.545393]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616523.556013] 
[616532.978115] BUG: soft lockup detected on CPU#0!
[616532.987344] 
[616532.987345] Call Trace:
[616532.995576]  <IRQ>  [<ffffffff802bbacb>] softlockup_tick+0xfb/0x120
[616533.008288]  [<ffffffff80298107>] update_process_times+0x57/0x90
[616533.020465]  [<ffffffff802798f4>] smp_local_timer_interrupt+0x34/0x60
[616533.033508]  [<ffffffff8027a1c9>] smp_apic_timer_interrupt+0x59/0x80
[616533.046378]  [<ffffffff80260ce6>] apic_timer_interrupt+0x66/0x70
[616533.058560]  [<ffffffff80266be7>] __lock_text_start+0x7/0x10
[616533.070045]  [<ffffffff803f3eff>] __tcp_get_md5sig_pool+0xf/0x50
[616533.082223]  [<ffffffff803fd899>] tcp_v4_do_calc_md5_hash+0x59/0x2e0
[616533.095099]  [<ffffffff881b4479>] :nf_conntrack:tcp_error+0x159/0x200
[616533.108149]  [<ffffffff881b16e9>] :nf_conntrack:__nf_conntrack_find+0x19/0x120
[616533.122786]  [<ffffffff80266c39>] _read_lock_bh+0x9/0x20
[616533.133576]  [<ffffffff882c2d15>] :ip_tables:ipt_do_table+0x305/0x370
[616533.146622]  [<ffffffff8023d4bb>] tcp_v4_do_rcv+0x10b/0x520
[616533.157939]  [<ffffffff881b5ab1>] :nf_conntrack:nf_ct_deliver_cached_events+0x61/0xb0
[616533.173788]  [<ffffffff881c51c8>] :nf_conntrack_ipv4:ipv4_confirm+0x48/0x60
[616533.187873]  [<ffffffff8023586c>] nf_iterate+0x5c/0xa0
[616533.198320]  [<ffffffff8022887e>] tcp_v4_rcv+0xa0e/0xa80
[616533.209117]  [<ffffffff80235f72>] ip_local_deliver+0x1b2/0x280
[616533.220949]  [<ffffffff802370b7>] ip_rcv+0x4d7/0x540
[616533.231053]  [<ffffffff80220d7a>] netif_receive_skb+0x2fa/0x330
[616533.243066]  [<ffffffff88152641>] :e1000:e1000_clean_rx_irq+0x451/0x520
[616533.256466]  [<ffffffff8815652f>] :e1000:e1000_clean+0x7f/0x250
[616533.268471]  [<ffffffff8028d936>] run_rebalance_domains+0xe6/0x3c0
[616533.280996]  [<ffffffff8020c29e>] net_rx_action+0xbe/0x1f0
[616533.292137]  [<ffffffff80211c53>] __do_softirq+0x63/0xd0
[616533.302930]  [<ffffffff8026123c>] call_softirq+0x1c/0x28
[616533.313723]  [<ffffffff8026f32c>] do_softirq+0x2c/0x90
[616533.324168]  [<ffffffff8026f516>] do_IRQ+0xc6/0xf0
[616533.333919]  [<ffffffff80260631>] ret_from_intr+0x0/0xa
[616533.344535]  <EOI>  [<ffffffff803f4037>] tcp_free_md5sig_pool+0x17/0x60
[616533.357942]  [<ffffffff803f4030>] tcp_free_md5sig_pool+0x10/0x60
[616533.370119]  [<ffffffff803fdab1>] tcp_v4_do_calc_md5_hash+0x271/0x2e0
[616533.383166]  [<ffffffff8021f290>] __pollwait+0x0/0x130
[616533.393614]  [<ffffffff8028d820>] default_wake_function+0x0/0x10
[616533.405792]  [<ffffffff802228fc>] tcp_transmit_skb+0x55c/0x790
[616533.417628]  [<ffffffff802348ad>] __tcp_push_pending_frames+0x80d/0x950
[616533.431017]  [<ffffffff80227190>] tcp_sendmsg+0x0/0xb00
[616533.443328]  [<ffffffff80227b39>] tcp_sendmsg+0x9a9/0xb00
[616533.454296]  [<ffffffff802492df>] sock_aio_write+0x13f/0x180
[616533.465787]  [<ffffffff80217ecf>] do_sync_write+0xcf/0x120
[616533.476928]  [<ffffffff802a2a40>] autoremove_wake_function+0x0/0x30
[616533.489625]  [<ffffffff80298fda>] lock_task_sighand+0x3a/0x80
[616533.501285]  [<ffffffff8029cb6e>] getrusage+0x23e/0x260
[616533.511906]  [<ffffffff80216668>] vfs_write+0xf8/0x1b0
[616533.522353]  [<ffffffff802171a3>] sys_write+0x53/0x90
[616533.532626]  [<ffffffff8026011e>] system_call+0x7e/0x83
[616533.543253] 

^ permalink raw reply

* Re: BUG in sys_socketpair
From: Chuck Ebbert @ 2007-10-25 18:44 UTC (permalink / raw)
  To: Rich Paul; +Cc: netdev, linux-kernel, Al Viro
In-Reply-To: <20071025141107.GA19437@dragon.rich-paul.net>

On 10/25/2007 10:11 AM, Rich Paul wrote:
> In 2.6.23, there seems to be a minor bug in sys_socketpair.  When the
> calls to sock_alloc_fd fail, it aborts the routine, but it returns the
> variable err, which is not set in this case.
> 
> The result is a silent failure if you have too many files open and call
> socketpair.
> 
> Here is a simple UNTESTED patch (not even compiled) which should resolve the
> issue.
> 
> 
> --- net/socket.c.orig   2007-10-25 10:03:56.000000000 -0400
> +++ net/socket.c        2007-10-25 10:04:00.000000000 -0400
> @@ -1245,11 +1245,14 @@
>                 goto out_release_both;
> 
>         fd1 = sock_alloc_fd(&newfile1);
> -       if (unlikely(fd1 < 0))
> +       if (unlikely(fd1 < 0)) {
> +               err=fd1;
>                 goto out_release_both;
> +       }
> 
>         fd2 = sock_alloc_fd(&newfile2);
>         if (unlikely(fd2 < 0)) {
> +               err=fd2;
>                 put_filp(newfile1);
>                 put_unused_fd(fd1);
>                 goto out_release_both;
> 

Should be "err = fd1" (spaces), otherwise looks good.

Original did:

	err = sock_map_fd(sock1);
	if (err < 0)
		goto out_release_both;
	fd1 = err;

^ permalink raw reply

* Re: [PATCH v4] FEC - fast ethernet controller for mpc52xx
From: Dale Farnsworth @ 2007-10-25 18:57 UTC (permalink / raw)
  To: domen.puncer; +Cc: netdev, linuxppc-dev
In-Reply-To: <20071025141035.GG3369@nd47.coderock.org>

Domen wrote:
> > use your platform's dma mapping functions, rather than virt_to_phys()
> > 
> > it might be the exact same implementation, inside the platform 
> > internals, but drivers should not be using this directly.
> 
> I've replaced this with dma_map_single(), unmatched with
> dma_unmap_single(), since bestcomm doesn't have a way to do that
> and it's blank on ppc32 anyway.
> 
> Is this OK? PPC guys?

Even though dma_unmap_single() may be a no-op, calls to
dma_map_single() must be matched with calls to dma_unmap_single().

Perhaps with the additions below:

> +static void mpc52xx_fec_free_rx_buffers(struct bcom_task *s)
> +{
> +	struct sk_buff *skb;
> +
> +	while (!bcom_queue_empty(s)) {
> +		skb = bcom_retrieve_buffer(s, NULL, NULL);

		dma_unmap_single(&skb->dev->dev, skb-data,
				 FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);

> +		kfree_skb(skb);
> +	}
> +}
> +
> +static int mpc52xx_fec_alloc_rx_buffers(struct net_device *dev, struct
> bcom_task *rxtsk)
> +{
> +	while (!bcom_queue_full(rxtsk)) {
> +		struct sk_buff *skb;
> +		struct bcom_fec_bd *bd;
> +
> +		skb = dev_alloc_skb(FEC_RX_BUFFER_SIZE);
> +		if (skb == NULL)
> +			return -EAGAIN;

		skb->dev = dev;

> +
> +		/* zero out the initial receive buffers to aid debugging */
> +		memset(skb->data, 0, FEC_RX_BUFFER_SIZE);
> +
> +		bd = (struct bcom_fec_bd *)bcom_prepare_next_buffer(rxtsk);
> +
> +		bd->status = FEC_RX_BUFFER_SIZE;
> +		bd->skb_pa = dma_map_single(&dev->dev, skb->data,
> +				FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);
> +
> +		bcom_submit_next_buffer(rxtsk, skb);
> +	}
> +
> +	return 0;
> +}

[...]

> +static int mpc52xx_fec_hard_start_xmit(struct sk_buff *skb, struct
> net_device *dev)
> +{
> +	struct mpc52xx_fec_priv *priv = netdev_priv(dev);
> +	struct bcom_fec_bd *bd;
> +
> +	if (bcom_queue_full(priv->tx_dmatsk)) {
> +		if (net_ratelimit())
> +			dev_err(&dev->dev, "transmit queue overrun\n");
> +		return 1;
> +	}
> +
> +	spin_lock_irq(&priv->lock);
> +	dev->trans_start = jiffies;
> +
> +	bd = (struct bcom_fec_bd *)
> +		bcom_prepare_next_buffer(priv->tx_dmatsk);
> +
> +	bd->status = skb->len | BCOM_FEC_TX_BD_TFD | BCOM_FEC_TX_BD_TC;
> +	bd->skb_pa = dma_map_single(&dev->dev, skb->data, skb->len, DMA_TO_DEVICE);
> +
> +	bcom_submit_next_buffer(priv->tx_dmatsk, skb);
> +
> +	if (bcom_queue_full(priv->tx_dmatsk)) {
> +		netif_stop_queue(dev);
> +	}
> +
> +	spin_unlock_irq(&priv->lock);
> +
> +	return 0;
> +}
> +
> +/* This handles BestComm transmit task interrupts
> + */
> +static irqreturn_t mpc52xx_fec_tx_interrupt(int irq, void *dev_id)
> +{
> +	struct net_device *dev = dev_id;
> +	struct mpc52xx_fec_priv *priv = netdev_priv(dev);
> +
> +	spin_lock(&priv->lock);
> +
> +	while (bcom_buffer_done(priv->tx_dmatsk)) {
> +		struct sk_buff *skb;
> +		skb = bcom_retrieve_buffer(priv->tx_dmatsk, NULL, NULL);
> +		/* Here (and in rx routines) would be a good place for
> +		 * dma_unmap_single(), but bcom doesn't return bcom_bd of the
> +		 * finished transfer, and _unmap is empty on this platfrom.
> +		 */

Replace the above comment with:

		dma_unmap_single(&dev->dev, skb->data,
				 skb->len, DMA_TO_DEVICE);

> +
> +		dev_kfree_skb_irq(skb);
> +	}
> +
> +	netif_wake_queue(dev);
> +
> +	spin_unlock(&priv->lock);
> +
> +	return IRQ_HANDLED;
> +}
> +
> +static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id)
> +{
> +	struct net_device *dev = dev_id;
> +	struct mpc52xx_fec_priv *priv = netdev_priv(dev);
> +
> +	while (bcom_buffer_done(priv->rx_dmatsk)) {
> +		struct sk_buff *skb;
> +		struct sk_buff *rskb;
> +		struct bcom_fec_bd *bd;
> +		u32 status;
> +
> +		rskb = bcom_retrieve_buffer(priv->rx_dmatsk, &status, NULL);

		dma_unmap_single(&dev->dev, rskb->data,
				 FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);

> +
> +		/* Test for errors in received frame */
> +		if (status & BCOM_FEC_RX_BD_ERRORS) {
> +			/* Drop packet and reuse the buffer */
> +			bd = (struct bcom_fec_bd *)
> +				bcom_prepare_next_buffer(priv->rx_dmatsk);
> +
> +			bd->status = FEC_RX_BUFFER_SIZE;
> +			bd->skb_pa = dma_map_single(&dev->dev, rskb->data,
> +					FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);
> +
> +			bcom_submit_next_buffer(priv->rx_dmatsk, rskb);
> +
> +			dev->stats.rx_dropped++;
> +
> +			continue;
> +		}
> +
> +		/* skbs are allocated on open, so now we allocate a new one,
> +		 * and remove the old (with the packet) */
> +		skb = dev_alloc_skb(FEC_RX_BUFFER_SIZE);
> +		if (skb) {
> +			/* Process the received skb */
> +			int length = status & BCOM_FEC_RX_BD_LEN_MASK;

			skb->dev = dev;

> +
> +			skb_put(rskb, length - 4);	/* length without CRC32 */
> +
> +			rskb->dev = dev;

Above line is no longer needed since we set rskb->dev on skb allocation.

> +			rskb->protocol = eth_type_trans(rskb, dev);
> +
> +			netif_rx(rskb);
> +			dev->last_rx = jiffies;
> +		} else {
> +			/* Can't get a new one : reuse the same & drop pkt */
> +			dev_notice(&dev->dev, "Memory squeeze, dropping packet.\n");
> +			dev->stats.rx_dropped++;
> +
> +			skb = rskb;
> +		}
> +
> +		bd = (struct bcom_fec_bd *)
> +			bcom_prepare_next_buffer(priv->rx_dmatsk);
> +
> +		bd->status = FEC_RX_BUFFER_SIZE;
> +		bd->skb_pa = dma_map_single(&dev->dev, rskb->data,
> +				FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);
> +
> +		bcom_submit_next_buffer(priv->rx_dmatsk, skb);
> +	}
> +
> +	return IRQ_HANDLED;
> +}

-Dale Farnsworth

^ permalink raw reply

* Re: [PATCH v4] FEC - fast ethernet controller for mpc52xx
From: Domen Puncer @ 2007-10-25 19:41 UTC (permalink / raw)
  To: Dale Farnsworth; +Cc: netdev, linuxppc-dev
In-Reply-To: <20071025185706.29496.qmail@farnsworth.org>

On 25/10/07 11:57 -0700, Dale Farnsworth wrote:
> Domen wrote:
> > > use your platform's dma mapping functions, rather than virt_to_phys()
> > > 
> > > it might be the exact same implementation, inside the platform 
> > > internals, but drivers should not be using this directly.
> > 
> > I've replaced this with dma_map_single(), unmatched with
> > dma_unmap_single(), since bestcomm doesn't have a way to do that
> > and it's blank on ppc32 anyway.
> > 
> > Is this OK? PPC guys?
> 
> Even though dma_unmap_single() may be a no-op, calls to
> dma_map_single() must be matched with calls to dma_unmap_single().
> 
> Perhaps with the additions below:
> 
> > +static void mpc52xx_fec_free_rx_buffers(struct bcom_task *s)
> > +{
> > +	struct sk_buff *skb;
> > +
> > +	while (!bcom_queue_empty(s)) {
> > +		skb = bcom_retrieve_buffer(s, NULL, NULL);
> 
> 		dma_unmap_single(&skb->dev->dev, skb-data,
> 				 FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);

It looks to me like dma_unmap_single takes the mapped address
(what dma_map_single returned), and not the address we're mapping
(skb->data).


	Domen

^ permalink raw reply

* Re: [Bugme-new] [Bug 9225] New: typhoon : "no descs for cmd, had (needed) 0 (1) cmd, 31 (7) resp"
From: Andrew Morton @ 2007-10-25 20:20 UTC (permalink / raw)
  To: netdev; +Cc: bugme-daemon, sanarin
In-Reply-To: <bug-9225-10286@http.bugzilla.kernel.org/>

On Thu, 25 Oct 2007 06:45:42 -0700 (PDT)
bugme-daemon@bugzilla.kernel.org wrote:

> http://bugzilla.kernel.org/show_bug.cgi?id=9225
> 
>            Summary: typhoon : "no descs for cmd, had (needed) 0 (1) cmd, 31
>                     (7) resp"
>            Product: Drivers
>            Version: 2.5
>      KernelVersion: 2.6.23.1 SMP PREEMPT
>           Platform: All
>         OS/Version: Linux
>               Tree: Mainline
>             Status: NEW
>           Severity: high
>           Priority: P1
>          Component: Network
>         AssignedTo: jgarzik@pobox.com
>         ReportedBy: sanarin@nikiet.ru
> 
> 
> Most recent kernel where this bug did not occur: none
> Distribution: Fedora Core 4
> Hardware Environment: Intel 845 chipset, 3 x 3C990-FX-97 NICs
> Software Environment:
> Problem Description:
>  Our dmesg buffer fill of these messages
> 
> eth1: no descs for cmd, had (needed) 0 (1) cmd, 31 (7) resp
> eth1: error getting stats
> eth1: no descs for cmd, had (needed) 0 (1) cmd, 31 (7) resp
> eth1: error getting stats
> eth1: no descs for cmd, had (needed) 0 (1) cmd, 31 (7) resp
> eth1: error getting stats
> 
> and so one.
> 
>  After for days of working we got kernel panic.
> 
> Steps to reproduce:

(switching to email - please respond via reply-to-all, not via the bugzilla
web interface)

typhoon.c doesn't appear to have a maintainer.  

It oopsed in typhoon_rx - there's a jpg attached to the bugzilla report.

^ permalink raw reply

* Re: [PATCH v4] FEC - fast ethernet controller for mpc52xx
From: Dale Farnsworth @ 2007-10-25 20:29 UTC (permalink / raw)
  To: Domen Puncer; +Cc: netdev, linuxppc-dev
In-Reply-To: <20071025194114.GH3369@nd47.coderock.org>

On Thu, Oct 25, 2007 at 09:41:14PM +0200, Domen Puncer wrote:
> On 25/10/07 11:57 -0700, Dale Farnsworth wrote:
> > Domen wrote:
> > > > use your platform's dma mapping functions, rather than virt_to_phys()
> > > > 
> > > > it might be the exact same implementation, inside the platform 
> > > > internals, but drivers should not be using this directly.
> > > 
> > > I've replaced this with dma_map_single(), unmatched with
> > > dma_unmap_single(), since bestcomm doesn't have a way to do that
> > > and it's blank on ppc32 anyway.
> > > 
> > > Is this OK? PPC guys?
> > 
> > Even though dma_unmap_single() may be a no-op, calls to
> > dma_map_single() must be matched with calls to dma_unmap_single().
> > 
> > Perhaps with the additions below:
> > 
> > > +static void mpc52xx_fec_free_rx_buffers(struct bcom_task *s)
> > > +{
> > > +	struct sk_buff *skb;
> > > +
> > > +	while (!bcom_queue_empty(s)) {
> > > +		skb = bcom_retrieve_buffer(s, NULL, NULL);
> > 
> > 		dma_unmap_single(&skb->dev->dev, skb-data,
> > 				 FEC_RX_BUFFER_SIZE, DMA_FROM_DEVICE);
> 
> It looks to me like dma_unmap_single takes the mapped address
> (what dma_map_single returned), and not the address we're mapping
> (skb->data).

Yeah.  Sorry.  That won't be so easy.  We'll either need to
squirrel away the mapped address, or change the interface to
bcom_retrieve_buffers() so we can get the address.

IMO, it's still a requirement that we call dma_unmap_single() for
each call to dma_map_single().

-Dale

^ permalink raw reply

* Re: [2.6.25 patch] the planned eepro100 removal
From: Bill Davidsen @ 2007-10-25 20:42 UTC (permalink / raw)
  To: linux-kernel; +Cc: netdev, linux-kernel
In-Reply-To: <20071024162440.GN30533@stusta.de>

Adrian Bunk wrote:
> This patch contains the planned removal of the eepro100 driver.
> 
Are the e100 people satisfied that e100 now handles all known cases? I 
remember that there were corner cases e100 didn't handle, have they all 
been fixed?

-- 
Bill Davidsen <davidsen@tmr.com>
   "We have more to fear from the bungling of the incompetent than from
the machinations of the wicked."  - from Slashdot

^ permalink raw reply

* [PATCH 1/4] e1000e: Fix jumbo frame receive code.
From: Auke Kok @ 2007-10-25 20:57 UTC (permalink / raw)
  To: jeff; +Cc: netdev, auke-jan.h.kok

Fix allocation and freeing of jumbo frames where several bugs
were recently introduced by cleanups after we forked this code
from e1000. This moves ps_pages to buffer_info where it really
belongs and makes it a dynamically allocated array. The penalty
is not that high since it's allocated outside of the buffer_info
struct anyway.

Without this patch all jumbo frames are completely broken and the
driver panics.

Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
---

 drivers/net/e1000e/e1000.h  |    4 +-
 drivers/net/e1000e/netdev.c |  102 ++++++++++++++++++++++---------------------
 2 files changed, 54 insertions(+), 52 deletions(-)

diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index d2499bb..811eada 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -123,6 +123,8 @@ struct e1000_buffer {
 		};
 		/* RX */
 		struct page *page;
+		/* arrays of page information for packet split */
+		struct e1000_ps_page *ps_pages;
 	};
 
 };
@@ -142,8 +144,6 @@ struct e1000_ring {
 	/* array of buffer information structs */
 	struct e1000_buffer *buffer_info;
 
-	/* arrays of page information for packet split */
-	struct e1000_ps_page *ps_pages;
 	struct sk_buff *rx_skb_top;
 
 	struct e1000_queue_stats stats;
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 033e124..46c5ac6 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -245,37 +245,36 @@ static void e1000_alloc_rx_buffers_ps(struct e1000_adapter *adapter,
 		rx_desc = E1000_RX_DESC_PS(*rx_ring, i);
 
 		for (j = 0; j < PS_PAGE_BUFFERS; j++) {
-			ps_page = &rx_ring->ps_pages[(i * PS_PAGE_BUFFERS)
-						     + j];
-			if (j < adapter->rx_ps_pages) {
+			ps_page = &buffer_info->ps_pages[j];
+			if (j >= adapter->rx_ps_pages) {
+				/* all unused desc entries get hw null ptr */
+				rx_desc->read.buffer_addr[j+1] = ~0;
+				continue;
+			}
+			if (!ps_page->page) {
+				ps_page->page = alloc_page(GFP_ATOMIC);
 				if (!ps_page->page) {
-					ps_page->page = alloc_page(GFP_ATOMIC);
-					if (!ps_page->page) {
-						adapter->alloc_rx_buff_failed++;
-						goto no_buffers;
-					}
-					ps_page->dma = pci_map_page(pdev,
-							   ps_page->page,
-							   0, PAGE_SIZE,
-							   PCI_DMA_FROMDEVICE);
-					if (pci_dma_mapping_error(
-							ps_page->dma)) {
-						dev_err(&adapter->pdev->dev,
-						  "RX DMA page map failed\n");
-						adapter->rx_dma_failed++;
-						goto no_buffers;
-					}
+					adapter->alloc_rx_buff_failed++;
+					goto no_buffers;
+				}
+				ps_page->dma = pci_map_page(pdev,
+						   ps_page->page,
+						   0, PAGE_SIZE,
+						   PCI_DMA_FROMDEVICE);
+				if (pci_dma_mapping_error(ps_page->dma)) {
+					dev_err(&adapter->pdev->dev,
+					  "RX DMA page map failed\n");
+					adapter->rx_dma_failed++;
+					goto no_buffers;
 				}
-				/*
-				 * Refresh the desc even if buffer_addrs
-				 * didn't change because each write-back
-				 * erases this info.
-				 */
-				rx_desc->read.buffer_addr[j+1] =
-				     cpu_to_le64(ps_page->dma);
-			} else {
-				rx_desc->read.buffer_addr[j+1] = ~0;
 			}
+			/*
+			 * Refresh the desc even if buffer_addrs
+			 * didn't change because each write-back
+			 * erases this info.
+			 */
+			rx_desc->read.buffer_addr[j+1] =
+			     cpu_to_le64(ps_page->dma);
 		}
 
 		skb = netdev_alloc_skb(netdev,
@@ -953,7 +952,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
 		    ((length + l1) <= adapter->rx_ps_bsize0)) {
 			u8 *vaddr;
 
-			ps_page = &rx_ring->ps_pages[i * PS_PAGE_BUFFERS];
+			ps_page = &buffer_info->ps_pages[0];
 
 			/* there is no documentation about how to call
 			 * kmap_atomic, so we can't hold the mapping
@@ -977,7 +976,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
 			if (!length)
 				break;
 
-			ps_page = &rx_ring->ps_pages[(i * PS_PAGE_BUFFERS) + j];
+			ps_page = &buffer_info->ps_pages[j];
 			pci_unmap_page(pdev, ps_page->dma, PAGE_SIZE,
 				       PCI_DMA_FROMDEVICE);
 			ps_page->dma = 0;
@@ -1043,7 +1042,6 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter)
 	struct e1000_buffer *buffer_info;
 	struct e1000_ps_page *ps_page;
 	struct pci_dev *pdev = adapter->pdev;
-	unsigned long size;
 	unsigned int i, j;
 
 	/* Free all the Rx ring sk_buffs */
@@ -1075,8 +1073,7 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter)
 		}
 
 		for (j = 0; j < PS_PAGE_BUFFERS; j++) {
-			ps_page = &rx_ring->ps_pages[(i * PS_PAGE_BUFFERS)
-						     + j];
+			ps_page = &buffer_info->ps_pages[j];
 			if (!ps_page->page)
 				break;
 			pci_unmap_page(pdev, ps_page->dma, PAGE_SIZE,
@@ -1093,12 +1090,6 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter)
 		rx_ring->rx_skb_top = NULL;
 	}
 
-	size = sizeof(struct e1000_buffer) * rx_ring->count;
-	memset(rx_ring->buffer_info, 0, size);
-	size = sizeof(struct e1000_ps_page)
-	       * (rx_ring->count * PS_PAGE_BUFFERS);
-	memset(rx_ring->ps_pages, 0, size);
-
 	/* Zero out the descriptor ring */
 	memset(rx_ring->desc, 0, rx_ring->size);
 
@@ -1421,7 +1412,8 @@ err:
 int e1000e_setup_rx_resources(struct e1000_adapter *adapter)
 {
 	struct e1000_ring *rx_ring = adapter->rx_ring;
-	int size, desc_len, err = -ENOMEM;
+	struct e1000_buffer *buffer_info;
+	int i, size, desc_len, err = -ENOMEM;
 
 	size = sizeof(struct e1000_buffer) * rx_ring->count;
 	rx_ring->buffer_info = vmalloc(size);
@@ -1429,11 +1421,14 @@ int e1000e_setup_rx_resources(struct e1000_adapter *adapter)
 		goto err;
 	memset(rx_ring->buffer_info, 0, size);
 
-	rx_ring->ps_pages = kcalloc(rx_ring->count * PS_PAGE_BUFFERS,
-				    sizeof(struct e1000_ps_page),
-				    GFP_KERNEL);
-	if (!rx_ring->ps_pages)
-		goto err;
+	for (i = 0; i < rx_ring->count; i++) {
+		buffer_info = &rx_ring->buffer_info[i];
+		buffer_info->ps_pages = kcalloc(PS_PAGE_BUFFERS,
+						sizeof(struct e1000_ps_page),
+						GFP_KERNEL);
+		if (!buffer_info->ps_pages)
+			goto err_pages;
+	}
 
 	desc_len = sizeof(union e1000_rx_desc_packet_split);
 
@@ -1443,16 +1438,21 @@ int e1000e_setup_rx_resources(struct e1000_adapter *adapter)
 
 	err = e1000_alloc_ring_dma(adapter, rx_ring);
 	if (err)
-		goto err;
+		goto err_pages;
 
 	rx_ring->next_to_clean = 0;
 	rx_ring->next_to_use = 0;
 	rx_ring->rx_skb_top = NULL;
 
 	return 0;
+
+err_pages:
+	for (i = 0; i < rx_ring->count; i++) {
+		buffer_info = &rx_ring->buffer_info[i];
+		kfree(buffer_info->ps_pages);
+	}
 err:
 	vfree(rx_ring->buffer_info);
-	kfree(rx_ring->ps_pages);
 	ndev_err(adapter->netdev,
 	"Unable to allocate memory for the transmit descriptor ring\n");
 	return err;
@@ -1518,15 +1518,17 @@ void e1000e_free_rx_resources(struct e1000_adapter *adapter)
 {
 	struct pci_dev *pdev = adapter->pdev;
 	struct e1000_ring *rx_ring = adapter->rx_ring;
+	int i;
 
 	e1000_clean_rx_ring(adapter);
 
+	for (i = 0; i < rx_ring->count; i++) {
+		kfree(rx_ring->buffer_info[i].ps_pages);
+	}
+
 	vfree(rx_ring->buffer_info);
 	rx_ring->buffer_info = NULL;
 
-	kfree(rx_ring->ps_pages);
-	rx_ring->ps_pages = NULL;
-
 	dma_free_coherent(&pdev->dev, rx_ring->size, rx_ring->desc,
 			  rx_ring->dma);
 	rx_ring->desc = NULL;

^ permalink raw reply related

* [PATCH 2/4] e1000e: Fix PBA calculation for jumbo frame packets
From: Auke Kok @ 2007-10-25 20:57 UTC (permalink / raw)
  To: jeff; +Cc: netdev, auke-jan.h.kok
In-Reply-To: <20071025205744.32645.59503.stgit@localhost.localdomain>

Upon inspection the rx FIFO size calculation code was found to have
2 significant flaws: A superfluous minus sign resulting in the
wrong size to be used for jumbo frames on 82573 and ich9, as well
as that this code rewrote the read-only adapter->pba variable
resulting in different values at each run.

Without this patch jumbo's will work but performance will be
awkward since the TX size is not adequate for two whole frames.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
---

 drivers/net/e1000e/netdev.c |   22 +++++++++++++---------
 1 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 46c5ac6..e87ed31 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -2328,8 +2328,11 @@ void e1000e_reset(struct e1000_adapter *adapter)
 	struct e1000_mac_info *mac = &adapter->hw.mac;
 	struct e1000_hw *hw = &adapter->hw;
 	u32 tx_space, min_tx_space, min_rx_space;
+	u32 pba;
 	u16 hwm;
 
+	ew32(PBA, adapter->pba);
+
 	if (mac->max_frame_size > ETH_FRAME_LEN + ETH_FCS_LEN ) {
 		/* To maintain wire speed transmits, the Tx FIFO should be
 		 * large enough to accommodate two full transmit packets,
@@ -2337,11 +2340,11 @@ void e1000e_reset(struct e1000_adapter *adapter)
 		 * the Rx FIFO should be large enough to accommodate at least
 		 * one full receive packet and is similarly rounded up and
 		 * expressed in KB. */
-		adapter->pba = er32(PBA);
+		pba = er32(PBA);
 		/* upper 16 bits has Tx packet buffer allocation size in KB */
-		tx_space = adapter->pba >> 16;
+		tx_space = pba >> 16;
 		/* lower 16 bits has Rx packet buffer allocation size in KB */
-		adapter->pba &= 0xffff;
+		pba &= 0xffff;
 		/* the tx fifo also stores 16 bytes of information about the tx
 		 * but don't include ethernet FCS because hardware appends it */
 		min_tx_space = (mac->max_frame_size +
@@ -2357,20 +2360,21 @@ void e1000e_reset(struct e1000_adapter *adapter)
 		/* If current Tx allocation is less than the min Tx FIFO size,
 		 * and the min Tx FIFO size is less than the current Rx FIFO
 		 * allocation, take space away from current Rx allocation */
-		if (tx_space < min_tx_space &&
-		    ((min_tx_space - tx_space) < adapter->pba)) {
-			adapter->pba -= - (min_tx_space - tx_space);
+		if ((tx_space < min_tx_space) &&
+		    ((min_tx_space - tx_space) < pba)) {
+			pba -= min_tx_space - tx_space;
 
 			/* if short on rx space, rx wins and must trump tx
 			 * adjustment or use Early Receive if available */
-			if ((adapter->pba < min_rx_space) &&
+			if ((pba < min_rx_space) &&
 			    (!(adapter->flags & FLAG_HAS_ERT)))
 				/* ERT enabled in e1000_configure_rx */
-				adapter->pba = min_rx_space;
+				pba = min_rx_space;
 		}
+
+		ew32(PBA, pba);
 	}
 
-	ew32(PBA, adapter->pba);
 
 	/* flow control settings */
 	/* The high water mark must be low enough to fit one full frame

^ permalink raw reply related

* [PATCH 4/4] e1000e: Remove legacy jumbo frame receive code
From: Auke Kok @ 2007-10-25 20:58 UTC (permalink / raw)
  To: jeff; +Cc: netdev, auke-jan.h.kok
In-Reply-To: <20071025205744.32645.59503.stgit@localhost.localdomain>

The legacy jumbo frame receive code is no longer needed since all
hardware can do packet split and we're no longer offering a bypass
kernel config option to disable packet split. Remove the unused code.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
---

 drivers/net/e1000e/e1000.h  |    1 
 drivers/net/e1000e/netdev.c |  282 -------------------------------------------
 2 files changed, 1 insertions(+), 282 deletions(-)

diff --git a/drivers/net/e1000e/e1000.h b/drivers/net/e1000e/e1000.h
index 811eada..473f78d 100644
--- a/drivers/net/e1000e/e1000.h
+++ b/drivers/net/e1000e/e1000.h
@@ -122,7 +122,6 @@ struct e1000_buffer {
 			u16 next_to_watch;
 		};
 		/* RX */
-		struct page *page;
 		/* arrays of page information for packet split */
 		struct e1000_ps_page *ps_pages;
 	};
diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index 03fcc70..4fd2e23 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -333,94 +333,6 @@ no_buffers:
 }
 
 /**
- * e1000_alloc_rx_buffers_jumbo - Replace used jumbo receive buffers
- *
- * @adapter: address of board private structure
- * @cleaned_count: number of buffers to allocate this pass
- **/
-static void e1000_alloc_rx_buffers_jumbo(struct e1000_adapter *adapter,
-					 int cleaned_count)
-{
-	struct net_device *netdev = adapter->netdev;
-	struct pci_dev *pdev = adapter->pdev;
-	struct e1000_ring *rx_ring = adapter->rx_ring;
-	struct e1000_rx_desc *rx_desc;
-	struct e1000_buffer *buffer_info;
-	struct sk_buff *skb;
-	unsigned int i;
-	unsigned int bufsz = 256 -
-			     16 /*for skb_reserve */ -
-			     NET_IP_ALIGN;
-
-	i = rx_ring->next_to_use;
-	buffer_info = &rx_ring->buffer_info[i];
-
-	while (cleaned_count--) {
-		skb = buffer_info->skb;
-		if (skb) {
-			skb_trim(skb, 0);
-			goto check_page;
-		}
-
-		skb = netdev_alloc_skb(netdev, bufsz);
-		if (!skb) {
-			/* Better luck next round */
-			adapter->alloc_rx_buff_failed++;
-			break;
-		}
-
-		/* Make buffer alignment 2 beyond a 16 byte boundary
-		 * this will result in a 16 byte aligned IP header after
-		 * the 14 byte MAC header is removed
-		 */
-		skb_reserve(skb, NET_IP_ALIGN);
-
-		buffer_info->skb = skb;
-check_page:
-		/* allocate a new page if necessary */
-		if (!buffer_info->page) {
-			buffer_info->page = alloc_page(GFP_ATOMIC);
-			if (!buffer_info->page) {
-				adapter->alloc_rx_buff_failed++;
-				break;
-			}
-		}
-
-		if (!buffer_info->dma)
-			buffer_info->dma = pci_map_page(pdev,
-							buffer_info->page, 0,
-							PAGE_SIZE,
-							PCI_DMA_FROMDEVICE);
-		if (pci_dma_mapping_error(buffer_info->dma)) {
-			dev_err(&adapter->pdev->dev, "RX DMA page map failed\n");
-			adapter->rx_dma_failed++;
-			break;
-		}
-
-		rx_desc = E1000_RX_DESC(*rx_ring, i);
-		rx_desc->buffer_addr = cpu_to_le64(buffer_info->dma);
-
-		i++;
-		if (i == rx_ring->count)
-			i = 0;
-		buffer_info = &rx_ring->buffer_info[i];
-	}
-
-	if (rx_ring->next_to_use != i) {
-		rx_ring->next_to_use = i;
-		if (i-- == 0)
-			i = (rx_ring->count - 1);
-
-		/* Force memory writes to complete before letting h/w
-		 * know there are new descriptors to fetch.  (Only
-		 * applicable for weak-ordered memory model archs,
-		 * such as IA-64). */
-		wmb();
-		writel(i, adapter->hw.hw_addr + rx_ring->tail);
-	}
-}
-
-/**
  * e1000_clean_rx_irq - Send received data up the network stack; legacy
  * @adapter: board private structure
  *
@@ -549,15 +461,6 @@ next_desc:
 	return cleaned;
 }
 
-static void e1000_consume_page(struct e1000_buffer *bi, struct sk_buff *skb,
-			       u16 length)
-{
-	bi->page = NULL;
-	skb->len += length;
-	skb->data_len += length;
-	skb->truesize += length;
-}
-
 static void e1000_put_txbuf(struct e1000_adapter *adapter,
 			     struct e1000_buffer *buffer_info)
 {
@@ -694,174 +597,6 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
 }
 
 /**
- * e1000_clean_rx_irq_jumbo - Send received data up the network stack; legacy
- * @adapter: board private structure
- *
- * the return value indicates whether actual cleaning was done, there
- * is no guarantee that everything was cleaned
- **/
-static bool e1000_clean_rx_irq_jumbo(struct e1000_adapter *adapter,
-				     int *work_done, int work_to_do)
-{
-	struct net_device *netdev = adapter->netdev;
-	struct pci_dev *pdev = adapter->pdev;
-	struct e1000_ring *rx_ring = adapter->rx_ring;
-	struct e1000_rx_desc *rx_desc, *next_rxd;
-	struct e1000_buffer *buffer_info, *next_buffer;
-	u32 length;
-	unsigned int i;
-	int cleaned_count = 0;
-	bool cleaned = 0;
-	unsigned int total_rx_bytes = 0, total_rx_packets = 0;
-
-	i = rx_ring->next_to_clean;
-	rx_desc = E1000_RX_DESC(*rx_ring, i);
-	buffer_info = &rx_ring->buffer_info[i];
-
-	while (rx_desc->status & E1000_RXD_STAT_DD) {
-		struct sk_buff *skb;
-		u8 status;
-
-		if (*work_done >= work_to_do)
-			break;
-		(*work_done)++;
-
-		status = rx_desc->status;
-		skb = buffer_info->skb;
-		buffer_info->skb = NULL;
-
-		i++;
-		if (i == rx_ring->count)
-			i = 0;
-		next_rxd = E1000_RX_DESC(*rx_ring, i);
-		prefetch(next_rxd);
-
-		next_buffer = &rx_ring->buffer_info[i];
-
-		cleaned = 1;
-		cleaned_count++;
-		pci_unmap_page(pdev,
-			       buffer_info->dma,
-			       PAGE_SIZE,
-			       PCI_DMA_FROMDEVICE);
-		buffer_info->dma = 0;
-
-		length = le16_to_cpu(rx_desc->length);
-
-		/* errors is only valid for DD + EOP descriptors */
-		if ((status & E1000_RXD_STAT_EOP) &&
-		    (rx_desc->errors & E1000_RXD_ERR_FRAME_ERR_MASK)) {
-			/* recycle both page and skb */
-			buffer_info->skb = skb;
-			/* an error means any chain goes out the window too */
-			if (rx_ring->rx_skb_top)
-				dev_kfree_skb(rx_ring->rx_skb_top);
-			rx_ring->rx_skb_top = NULL;
-			goto next_desc;
-		}
-
-#define rxtop rx_ring->rx_skb_top
-		if (!(status & E1000_RXD_STAT_EOP)) {
-			/* this descriptor is only the beginning (or middle) */
-			if (!rxtop) {
-				/* this is the beginning of a chain */
-				rxtop = skb;
-				skb_fill_page_desc(rxtop, 0, buffer_info->page,
-						   0, length);
-			} else {
-				/* this is the middle of a chain */
-				skb_fill_page_desc(rxtop,
-						   skb_shinfo(rxtop)->nr_frags,
-						   buffer_info->page, 0,
-						   length);
-				/* re-use the skb, only consumed the page */
-				buffer_info->skb = skb;
-			}
-			e1000_consume_page(buffer_info, rxtop, length);
-			goto next_desc;
-		} else {
-			if (rxtop) {
-				/* end of the chain */
-				skb_fill_page_desc(rxtop,
-				    skb_shinfo(rxtop)->nr_frags,
-				    buffer_info->page, 0, length);
-				/* re-use the current skb, we only consumed the
-				 * page */
-				buffer_info->skb = skb;
-				skb = rxtop;
-				rxtop = NULL;
-				e1000_consume_page(buffer_info, skb, length);
-			} else {
-				/* no chain, got EOP, this buf is the packet
-				 * copybreak to save the put_page/alloc_page */
-				if (length <= copybreak &&
-				    skb_tailroom(skb) >= length) {
-					u8 *vaddr;
-					vaddr = kmap_atomic(buffer_info->page,
-							   KM_SKB_DATA_SOFTIRQ);
-					memcpy(skb_tail_pointer(skb),
-					       vaddr, length);
-					kunmap_atomic(vaddr,
-						      KM_SKB_DATA_SOFTIRQ);
-					/* re-use the page, so don't erase
-					 * buffer_info->page */
-					skb_put(skb, length);
-				} else {
-					skb_fill_page_desc(skb, 0,
-							   buffer_info->page, 0,
-							   length);
-					e1000_consume_page(buffer_info, skb,
-							   length);
-				}
-			}
-		}
-
-		/* Receive Checksum Offload XXX recompute due to CRC strip? */
-		e1000_rx_checksum(adapter,
-				  (u32)(status) |
-				  ((u32)(rx_desc->errors) << 24),
-				  le16_to_cpu(rx_desc->csum), skb);
-
-		pskb_trim(skb, skb->len - 4);
-
-		/* probably a little skewed due to removing CRC */
-		total_rx_bytes += skb->len;
-		total_rx_packets++;
-
-		/* eth type trans needs skb->data to point to something */
-		if (!pskb_may_pull(skb, ETH_HLEN)) {
-			ndev_err(netdev, "__pskb_pull_tail failed.\n");
-			dev_kfree_skb(skb);
-			goto next_desc;
-		}
-
-		e1000_receive_skb(adapter, netdev, skb,status,rx_desc->special);
-
-next_desc:
-		rx_desc->status = 0;
-
-		/* return some buffers to hardware, one at a time is too slow */
-		if (cleaned_count >= E1000_RX_BUFFER_WRITE) {
-			adapter->alloc_rx_buf(adapter, cleaned_count);
-			cleaned_count = 0;
-		}
-
-		/* use prefetched values */
-		rx_desc = next_rxd;
-		buffer_info = next_buffer;
-	}
-	rx_ring->next_to_clean = i;
-
-	cleaned_count = e1000_desc_unused(rx_ring);
-	if (cleaned_count)
-		adapter->alloc_rx_buf(adapter, cleaned_count);
-
-	adapter->total_rx_packets += total_rx_packets;
-	adapter->total_rx_bytes += total_rx_bytes;
-	return cleaned;
-}
-
-/**
  * e1000_clean_rx_irq_ps - Send received data up the network stack; packet split
  * @adapter: board private structure
  *
@@ -1043,9 +778,6 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter)
 				pci_unmap_single(pdev, buffer_info->dma,
 						 adapter->rx_buffer_len,
 						 PCI_DMA_FROMDEVICE);
-			else if (adapter->clean_rx == e1000_clean_rx_irq_jumbo)
-				pci_unmap_page(pdev, buffer_info->dma,
-					       PAGE_SIZE, PCI_DMA_FROMDEVICE);
 			else if (adapter->clean_rx == e1000_clean_rx_irq_ps)
 				pci_unmap_single(pdev, buffer_info->dma,
 						 adapter->rx_ps_bsize0,
@@ -1053,11 +785,6 @@ static void e1000_clean_rx_ring(struct e1000_adapter *adapter)
 			buffer_info->dma = 0;
 		}
 
-		if (buffer_info->page) {
-			put_page(buffer_info->page);
-			buffer_info->page = NULL;
-		}
-
 		if (buffer_info->skb) {
 			dev_kfree_skb(buffer_info->skb);
 			buffer_info->skb = NULL;
@@ -2072,11 +1799,6 @@ static void e1000_configure_rx(struct e1000_adapter *adapter)
 			sizeof(union e1000_rx_desc_packet_split);
 		adapter->clean_rx = e1000_clean_rx_irq_ps;
 		adapter->alloc_rx_buf = e1000_alloc_rx_buffers_ps;
-	} else if (adapter->netdev->mtu > ETH_FRAME_LEN + VLAN_HLEN + 4) {
-		rdlen = rx_ring->count *
-			sizeof(struct e1000_rx_desc);
-		adapter->clean_rx = e1000_clean_rx_irq_jumbo;
-		adapter->alloc_rx_buf = e1000_alloc_rx_buffers_jumbo;
 	} else {
 		rdlen = rx_ring->count *
 			sizeof(struct e1000_rx_desc);
@@ -3623,9 +3345,7 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
 	/* NOTE: netdev_alloc_skb reserves 16 bytes, and typically NET_IP_ALIGN
 	 * means we reserve 2 more, this pushes us to allocate from the next
 	 * larger slab size.
-	 * i.e. RXBUFFER_2048 --> size-4096 slab
-	 *  however with the new *_jumbo* routines, jumbo receives will use
-	 *  fragmented skbs */
+	 * i.e. RXBUFFER_2048 --> size-4096 slab */
 
 	if (max_frame <= 256)
 		adapter->rx_buffer_len = 256;

^ permalink raw reply related

* [PATCH 3/4] e1000e: Re-enable SECRC - crc stripping
From: Auke Kok @ 2007-10-25 20:57 UTC (permalink / raw)
  To: jeff; +Cc: netdev, auke-jan.h.kok
In-Reply-To: <20071025205744.32645.59503.stgit@localhost.localdomain>

This workaround code performed software stripping instead of the
hardware which can do it much faster. None of the e1000e target
hardware has issues with this feature and should work fine. This
gives us some performance back on receive, and removes some
kludging stripping the 4 bytes.

Signed-off-by: Auke Kok <auke-jan.h.kok@intel.com>
---

 drivers/net/e1000e/netdev.c |   19 ++++++-------------
 1 files changed, 6 insertions(+), 13 deletions(-)

diff --git a/drivers/net/e1000e/netdev.c b/drivers/net/e1000e/netdev.c
index e87ed31..03fcc70 100644
--- a/drivers/net/e1000e/netdev.c
+++ b/drivers/net/e1000e/netdev.c
@@ -494,10 +494,6 @@ static bool e1000_clean_rx_irq(struct e1000_adapter *adapter,
 			goto next_desc;
 		}
 
-		/* adjust length to remove Ethernet CRC */
-		length -= 4;
-
-		/* probably a little skewed due to removing CRC */
 		total_rx_bytes += length;
 		total_rx_packets++;
 
@@ -964,8 +960,7 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
 			kunmap_atomic(vaddr, KM_SKB_DATA_SOFTIRQ);
 			pci_dma_sync_single_for_device(pdev, ps_page->dma,
 				PAGE_SIZE, PCI_DMA_FROMDEVICE);
-			/* remove the CRC */
-			l1 -= 4;
+
 			skb_put(skb, l1);
 			goto copydone;
 		} /* if */
@@ -987,10 +982,6 @@ static bool e1000_clean_rx_irq_ps(struct e1000_adapter *adapter,
 			skb->truesize += length;
 		}
 
-		/* strip the ethernet crc, problem is we're using pages now so
-		 * this whole operation can get a little cpu intensive */
-		pskb_trim(skb, skb->len - 4);
-
 copydone:
 		total_rx_bytes += skb->len;
 		total_rx_packets++;
@@ -2034,9 +2025,11 @@ static void e1000_setup_rctl(struct e1000_adapter *adapter)
 
 		ew32(RFCTL, rfctl);
 
-		/* disable the stripping of CRC because it breaks
-		 * BMC firmware connected over SMBUS */
-		rctl |= E1000_RCTL_DTYP_PS /* | E1000_RCTL_SECRC */;
+		/* Enable Packet split descriptors */
+		rctl |= E1000_RCTL_DTYP_PS;
+		
+		/* Enable hardware CRC frame stripping */
+		rctl |= E1000_RCTL_SECRC;
 
 		psrctl |= adapter->rx_ps_bsize0 >>
 			E1000_PSRCTL_BSIZE0_SHIFT;

^ permalink raw reply related

* Re: [PATCH 1/4] e1000e: Fix jumbo frame receive code.
From: Kok, Auke @ 2007-10-25 21:05 UTC (permalink / raw)
  To: jeff; +Cc: netdev
In-Reply-To: <20071025205744.32645.59503.stgit@localhost.localdomain>

Auke Kok wrote:
> Fix allocation and freeing of jumbo frames where several bugs
> were recently introduced by cleanups after we forked this code
> from e1000. This moves ps_pages to buffer_info where it really
> belongs and makes it a dynamically allocated array. The penalty
> is not that high since it's allocated outside of the buffer_info
> struct anyway.
> 
> Without this patch all jumbo frames are completely broken and the
> driver panics.


Jeff,

I strongly suggest that you apply patches #1 and #2 (but preferably all) to
#upstream-fixes since these patches fix the -absolutely- broken jumbo frames code
in e1000e. On top of that patches #1 and #2 only touch the jumbo frame codepath,
so the impact is zero to the normal way people use these cards.

patch #3 is an optimization, patch #4 is mostly cosmetical.

Cheers,

Auke

^ permalink raw reply

* Re: Fried r8169.
From: Francois Romieu @ 2007-10-25 21:36 UTC (permalink / raw)
  To: Tom Prince; +Cc: netdev, Edward Hsu
In-Reply-To: <20071025154438.GA2673@hermes.priv>

Tom Prince <tom.prince@ualberta.net> :
> While testing Linux v2.6.24-rc1, I noticed that my onboard r8169 had
> disappeared, and the it remained gone when I rebooted to v2.6.23 and v2.6.22,
> where it had previously worked.

[...]
> I am running x86_64 ASUS Z92T laptop (an OEM version of the A6T).
> 
> I have posted dmesg/lspci/config from v2.6.23 (and soon v2.6.24) at 
>  www.math.uwo.ca/~rprince5/r8169/
> 
> Also these appear to be the relevant log messages from when the device was
> working. Unfortunately, I didn't have the foresight to save dmesg/lspci from
> before the device disappeared.

Can you try an older/vendor kernel and power-off the host before restarting ?

I have experienced something similar. My 8168b returns but the magic spell
is still not clear.

[...]
> kernel: r8169 Gigabit Ethernet driver 2.2LK-NAPI loaded
> kernel: ACPI: PCI Interrupt Link [LNEA] enabled at IRQ 16
> kernel: ACPI: PCI Interrupt 0000:01:00.0[A] -> Link [LNEA] -> GSI 16 (level, low) -> IRQ 16
> kernel: PCI: Setting latency timer of device 0000:01:00.0 to 64
> kernel: eth1: RTL8168b/8111b at 0xffffc200020e2000, 00:18:f3:87:0b:bb, XID 38000000 IRQ 16

8168b as well. Okay...

-- 
Ueimor

^ permalink raw reply

* Re: [PATCH] UDP: Make use of inet_iif() when doing socket lookups.
From: David Stevens @ 2007-10-25 21:58 UTC (permalink / raw)
  To: Vlad Yasevich, davem; +Cc: netdev, netdev-owner
In-Reply-To: <471E403A.7040705@hp.com>

I don't see any problem with this. If you're using IP_MULTICAST_IF with
a bound socket, it forces you to use that interface, anyway.

I'm not sure multicasting works as expected in some other cases with
bound sockets (looks like there may be some holes to evade the
binding), but that's in old code. I don't see any problems from this
patch.

                                        +-DLS

Acked-by: David L Stevens <dlstevens@us.ibm.com>


^ permalink raw reply

* Re: [PATCH] NET: Mark snmp4_icmp_list[] as being unused
From: David Stevens @ 2007-10-25 22:10 UTC (permalink / raw)
  To: David Howells; +Cc: dhowells, netdev, netdev-owner
In-Reply-To: <20071025133617.31556.6211.stgit@warthog.procyon.org.uk>

What about just removing it, or do you think it's
useful for documentation of the order? Either way,

Acked-by: David L Stevens <dlstevens@us.ibm.com>

                                +-DLS


^ permalink raw reply

* Re: [PATCH] UDP: Make use of inet_iif() when doing socket lookups.
From: David Miller @ 2007-10-25 22:36 UTC (permalink / raw)
  To: dlstevens; +Cc: vladislav.yasevich, netdev, netdev-owner
In-Reply-To: <OFD4C47A22.AA67398C-ON8825737F.0077CEF6-8825737F.00789CCE@us.ibm.com>

From: David Stevens <dlstevens@us.ibm.com>
Date: Thu, 25 Oct 2007 14:58:29 -0700

> I don't see any problem with this. If you're using IP_MULTICAST_IF with
> a bound socket, it forces you to use that interface, anyway.
> 
> I'm not sure multicasting works as expected in some other cases with
> bound sockets (looks like there may be some holes to evade the
> binding), but that's in old code. I don't see any problems from this
> patch.
> 
>                                         +-DLS
> 
> Acked-by: David L Stevens <dlstevens@us.ibm.com>

Thanks for reviewing David.

^ permalink raw reply

* Re: [2.6.25 patch] the planned eepro100 removal
From: Jeff Garzik @ 2007-10-25 22:36 UTC (permalink / raw)
  To: Bill Davidsen; +Cc: Adrian Bunk, netdev, linux-kernel, saw, Kok, Auke
In-Reply-To: <4720FFAA.9080709@tmr.com>

Bill Davidsen wrote:
> Adrian Bunk wrote:
>> This patch contains the planned removal of the eepro100 driver.
>>
> Are the e100 people satisfied that e100 now handles all known cases? I 

Nope.  There are still e100 work outstanding that means we cannot kill 
eepro100.

	Jeff



^ permalink raw reply


This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox