Netdev List
 help / color / mirror / Atom feed
* Re: igb + balance-rr + bridge + IPv6 = no go without promiscuous mode
From: Chris Boot @ 2011-12-27 21:53 UTC (permalink / raw)
  To: Nicolas de Pesloüan; +Cc: netdev
In-Reply-To: <4EF45E79.6020803@bootc.net>

On 23/12/2011 10:56, Chris Boot wrote:
> On 23/12/2011 10:48, Nicolas de Pesloüan wrote:
>> [ Forwarded to netdev, because two previous e-mail erroneously sent in
>> HTML ]
>>
>> Le 23/12/2011 11:15, Chris Boot a écrit :
>>> On 23/12/2011 09:52, Nicolas de Pesloüan wrote:
>>>>
>>>>
>>>> Le 23 déc. 2011 10:42, "Chris Boot" <bootc@bootc.net
>>>> <mailto:bootc@bootc.net>> a écrit :
>>>> >
>>>> > Hi folks,
>>>> >
>>>> > As per Eric Dumazet and Dave Miller, I'm opening up a separate
>>>> thread on this issue.
>>>> >
>>>> > I have two identical servers in a cluster for running KVM virtual
>>>> machines. They each have a
>>>> single connection to the Internet (irrelevant for this) and two
>>>> gigabit connections between each
>>>> other for cluster replication, etc... These two connections are in a
>>>> balance-rr bonded connection,
>>>> which is itself member of a bridge that the VMs attach to. I'm
>>>> running v3.2-rc6-140-gb9e26df on
>>>> Debian Wheezy.
>>>> >
>>>> > When the bridge is brought up, IPv4 works fine but IPv6 does not.
>>>> I can use neither the
>>>> automatic link-local on the brid ge nor the static global address I
>>>> assign. Neither machine can
>>>> perform neighbour discovery over the link until I put the bond
>>>> members (eth0 and eth1) into
>>>> promiscuous mode. I can do this either with tcpdump or 'ip link set
>>>> dev ethX promisc on' and this
>>>> is enough to make the link spring to life.
>>>>
>>>> For as far as I remember, setting bond0 to promisc should set the
>>>> bonding member to promisc too.
>>>> And inserting bond0 into br0 should set bond0 to promisc... So
>>>> everything should be in promisc
>>>> mode anyway... but you shoudn't have to do it by hand.
>>>>
>>>
>>> Sorry, I should have added that I tried this. Setting bond0 or br0 to
>>> promisc has no effect. I
>>> discovered this by running tcpdump on br0 first, then bond0, then
>>> eventually each bond member in
>>> turn. Only at the last stage did things jump to life.
>>>
>>>> >
>>>> > This cluster is not currently live so I can easily test patches
>>>> and various configurations.
>>>>
>>>> Can you try to remove the bonding part, connecting eth0 and eth1
>>>> directly to br0 and see if it
>>>> works better? (This is a test ony. I perfectly understand that you
>>>> would loose balance-rr in this
>>>> setup.)
>>>>
>>>
>>> Good call. Let's see.
>>>
>>> I took br0 and bond0 apart, took eth0 and eth1 out of enforced
>>> promisc mode, then manually built a
>>> br0 with eth0 in only so I didn't cause a network loop. Adding eth0
>>> to br0 did not make it go into
>>> promisc mode, but IPv6 does work over this setup. I also made sure ip
>>> -6 neigh was empty on both
>>> machines before I started.
>>>
>>> I then decided to try the test with just the bond0 in balance-rr
>>> mode. Once again I took everything
>>> down and ensured no promisc mode and no ip -6 neigh. I noticed bond0
>>> wasn't getting a link-local and
>>> I found out for some reason
>>> /proc/sys/net/ipv6/conf/bond0/disable_ipv6 was set on both servers so I
>>> set it to 0. That brought things to life.
>>>
>>> So then I put it all back together again and it didn't work. I once
>>> again noticed disable_ipv6 was
>>> set on the bond0 interfaces, now part of the bridge. Toggling this on
>>> the _bond_ interface made
>>> things work again.
>>>
>>> What's setting disable_ipv6? Should this be having an impact if the
>>> port is part of a bridge?
>
> Hmm, as a further update... I brought up my VMs on the bridge with
> disable_ipv6 turned off. The VMs on one host couldn't see what was on
> the other side of the bridge (on the other server) until I turned
> promisc back on manually. So it's not entirely disable_ipv6's fault.

Hi,

I don't want this to get lost around the Christmas break, so I'm just 
resending it. I'm still seeing the same behaviour as before.

 From above:

>>>> For as far as I remember, setting bond0 to promisc should set the
>>>> bonding member to promisc too.
>>>> And inserting bond0 into br0 should set bond0 to promisc... So
>>>> everything should be in promisc
>>>> mode anyway... but you shoudn't have to do it by hand.

This definitely doesn't happen, at least according to 'ip link show | 
grep PROMISC'.

Chris

-- 
Chris Boot
bootc@bootc.net

^ permalink raw reply

* e1000e interface hang on 82574L
From: Chris Boot @ 2011-12-27 22:01 UTC (permalink / raw)
  To: netdev, lkml

Hi folks,

Another networking issue I've run into, this time with e1000e (Intel 
Corporation 82574L Gigabit). My new VM cluster appears to drop a NIC - 
the port stops responding within Linux and shows the link as being down 
with ethtool. My ISP says 'Ports running Half Duplex or reduced speed' 
on the port.

When the port stops working I see this in dmesg:

[35481.659629] ------------[ cut here ]------------
[35481.667837] WARNING: at net/sched/sch_generic.c:255 
dev_watchdog+0xe9/0x148()
[35481.676370] Hardware name: X9SCL/X9SCM
[35481.684793] NETDEV WATCHDOG: eth2 (e1000e): transmit queue 0 timed out
[35481.684795] Modules linked in: hmac sha256_generic dlm configfs 
ebtable_nat ebtables acpi_cpufreq mperf cpufreq_stats 
cpufreq_conservative cpufreq_userspace cpufreq_powersave microcode 
xt_NOTRACK ip_set_hash_net act_police cls_basic cls_flow cls_fw cls_u32 
sch_tbf sch_prio sch_htb sch_hfsc sch_ingress sch_sfq xt_connlimit 
xt_realm xt_addrtype ip_set_hash_ip iptable_raw xt_comment xt_recent 
ipt_ULOG ipt_REJECT ipt_REDIRECT ipt_NETMAP ipt_MASQUERADE ipt_ECN 
ipt_ecn ipt_CLUSTERIP ipt_ah nf_nat_tftp nf_nat_snmp_basic 
nf_conntrack_snmp nf_nat_sip nf_nat_pptp nf_nat_proto_gre nf_nat_irc 
nf_nat_h323 nf_nat_ftp ip6_queue nf_nat_amanda xt_set ip_set 
nf_conntrack_tftp nf_conntrack_sip nf_conntrack_sane 
nf_conntrack_proto_udplite nf_conntrack_proto_sctp nf_conntrack_pptp 
nf_conntrack_proto_gre nf_conntrack_netlink nf_conntrack_netbios_ns 
nf_conntrack_broadcast nf_conntrack_irc nf_conntrack_h323 
nf_conntrack_ftp ts_kmp nf_conntrack_amanda xt_TPROXY xt_NFLOG 
nfnetlink_log nf_tproxy_core xt_time xt_TCPMSS xt_tcpmss xt_sctp 
xt_policy xt_pkttype xt_physdev xt_owner xt_NFQUEUE xt_multiport xt_mark 
xt_mac xt_limit xt_length xt_iprange xt_helper xt_hashlimit xt_DSCP 
xt_dscp xt_dccp xt_connmark xt_CLASSIFY xt_AUDIT ip6t_LOG ip6t_REJECT 
nf_conntrack_ipv6 nf_defrag_ipv6 xt_conntrack ip6table_raw ipt_LOG 
xt_tcpudp ip6table_mangle xt_state iptable_nat nf_nat nf_conntrack_ipv4 
nf_defrag_ipv4 nf_conntrack iptable_mangle nfnetlink iptable_filter 
ip_tables ip6table_filter ip6_tables x_tables bridge stp bonding 
w83627ehf hwmon_vid coretemp sha1_ssse3 sha1_generic crc32c_intel 
aesni_intel cryptd aes_x86_64 aes_generic ipmi_poweroff ipmi_devintf 
ipmi_si ipmi_msghandler vhost_net macvtap macvlan tun drbd lru_cache cn 
loop kvm_intel kvm snd_pcm snd_timer snd iTCO_wdt soundcore psmouse 
snd_page_alloc i2c_i801 i2c_core cdc_acm iTCO_vendor_support joydev 
evdev serio_raw processor button pcspkr thermal_sys ext4 mbcache jbd2 
crc16 dm_mod raid1 md_mod sd_mod crc_t10dif usb_storage uas usbhid hid 
ahci libahci libata igb ehci_hcd scsi_mod usbcore e1000e dca usb_common 
[last unloaded: scsi_wait_scan]
[35481.685740] Pid: 0, comm: swapper/4 Not tainted 3.2.0-rc6+ #4
[35481.685744] Call Trace:
[35481.685746]  <IRQ>  [<ffffffff810467ed>] ? warn_slowpath_common+0x78/0x8c
[35481.685849]  [<ffffffff81046899>] ? warn_slowpath_fmt+0x45/0x4a
[35481.685875]  [<ffffffff810aeaa0>] ? perf_event_task_tick+0x166/0x1ab
[35481.686018]  [<ffffffff81294219>] ? netif_tx_lock+0x40/0x72
[35481.686090]  [<ffffffff8129437a>] ? dev_watchdog+0xe9/0x148
[35481.686136]  [<ffffffff81051e58>] ? run_timer_softirq+0x19a/0x261
[35481.686176]  [<ffffffff81294291>] ? netif_tx_unlock+0x46/0x46
[35481.686215]  [<ffffffff810659bb>] ? timekeeping_get_ns+0xd/0x2a
[35481.686286]  [<ffffffff8104bdd4>] ? __do_softirq+0xb9/0x177
[35481.686365]  [<ffffffff81341d6c>] ? call_softirq+0x1c/0x30
[35481.686530]  [<ffffffff8100f841>] ? do_softirq+0x3c/0x7b
[35481.686580]  [<ffffffff8104c03c>] ? irq_exit+0x3c/0x9a
[35481.686742]  [<ffffffff81023e58>] ? smp_apic_timer_interrupt+0x74/0x82
[35481.686820]  [<ffffffff813405de>] ? apic_timer_interrupt+0x6e/0x80
[35481.686826]  <EOI>  [<ffffffff811ddf49>] ? intel_idle+0xea/0x119
[35481.686991]  [<ffffffff811ddf28>] ? intel_idle+0xc9/0x119
[35481.687051]  [<ffffffff8125dce3>] ? cpuidle_idle_call+0xec/0x179
[35481.687089]  [<ffffffff8100d255>] ? cpu_idle+0xa1/0xe8
[35481.687143]  [<ffffffff810706ee>] ? arch_local_irq_restore+0x2/0x8
[35481.687189]  [<ffffffff8132d191>] ? start_secondary+0x1d5/0x1db
[35481.687234] ---[ end trace 01e9907674757948 ]---
[35481.687817] e1000e 0000:05:00.0: eth2: Reset adapter

To try to regain connectivity I bring down the bond and the interface 
(eth2), then unload e1000e. Upon loading the module again:

[36021.888962] e1000e: Intel(R) PRO/1000 Network Driver - 1.5.1-k
[36021.900258] e1000e: Copyright(c) 1999 - 2011 Intel Corporation.
[36021.911446] e1000e 0000:00:19.0: PCI INT A -> GSI 20 (level, low) -> 
IRQ 20
[36021.923204] e1000e 0000:00:19.0: setting latency timer to 64
[36021.923372] e1000e 0000:00:19.0: irq 45 for MSI/MSI-X
[36022.202737] e1000e 0000:00:19.0: eth2: (PCI Express:2.5GT/s:Width x1) 
00:25:90:56:ac:75
[36022.214480] e1000e 0000:00:19.0: eth3: Intel(R) PRO/1000 Network 
Connection
[36022.227506] e1000e 0000:00:19.0: eth3: MAC: 10, PHY: 11, PBA No: 
FFFFFF-0FF
[36022.239789] e1000e 0000:05:00.0: Disabling ASPM L0s
[36022.239805] e1000e 0000:05:00.0: enabling device (0000 -> 0002)
[36022.239829] e1000e 0000:05:00.0: PCI INT A -> GSI 16 (level, low) -> 
IRQ 16
[36022.239921] e1000e 0000:05:00.0: setting latency timer to 64
[36022.240963] e1000e 0000:05:00.0: irq 64 for MSI/MSI-X
[36022.240995] e1000e 0000:05:00.0: irq 65 for MSI/MSI-X
[36022.241028] e1000e 0000:05:00.0: irq 66 for MSI/MSI-X
[36022.241596] e1000e 0000:05:00.0: PCI INT A disabled
[36022.241606] e1000e: probe of 0000:05:00.0 failed with error -2
[36022.304706] udevd[3634]: renamed network interface eth2 to eth3

I then don't get an eth2 interface. Only a reboot brings the interface 
back. This has happened twice so far on this server in the past week, 
both times using v3.2-rc7-3-g4962516.

lspci -vnn shows:

05:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit 
Network Connection [8086:10d3]
         Subsystem: Super Micro Computer Inc Device [15d9:0000]
         Flags: bus master, fast devsel, latency 0, IRQ 16
         Memory at fbd00000 (32-bit, non-prefetchable) [size=128K]
         I/O ports at e000 [size=32]
         Memory at fbd20000 (32-bit, non-prefetchable) [size=16K]
         Capabilities: [c8] Power Management version 2
         Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
         Capabilities: [e0] Express Endpoint, MSI 00
         Capabilities: [a0] MSI-X: Enable+ Count=5 Masked-
         Capabilities: [100] Advanced Error Reporting
         Capabilities: [140] Device Serial Number 00-25-90-ff-ff-56-ac-74
         Kernel driver in use: e1000e

Thanks,
Chris

-- 
Chris Boot
bootc@bootc.net

^ permalink raw reply

* Re: e1000e interface hang on 82574L
From: Dave Taht @ 2011-12-27 22:33 UTC (permalink / raw)
  To: Chris Boot; +Cc: netdev, lkml
In-Reply-To: <4EFA4024.5000909@bootc.net>

On Tue, Dec 27, 2011 at 11:01 PM, Chris Boot <bootc@bootc.net> wrote:
> Hi folks,
>
> Another networking issue I've run into, this time with e1000e (Intel
> Corporation 82574L Gigabit). My new VM cluster appears to drop a NIC - the
> port stops responding within Linux and shows the link as being down with
> ethtool. My ISP says 'Ports running Half Duplex or reduced speed' on the
> port.
>
> When the port stops working I see this in dmesg:
>
> [35481.659629] ------------[ cut here ]------------
> [35481.667837] WARNING: at net/sched/sch_generic.c:255
> dev_watchdog+0xe9/0x148()
> [35481.676370] Hardware name: X9SCL/X9SCM
> [35481.684793] NETDEV WATCHDOG: eth2 (e1000e): transmit queue 0 timed out
> [35481.684795] Modules linked in: hmac sha256_generic dlm configfs
> ebtable_nat ebtables acpi_cpufreq mperf cpufreq_stats cpufreq_conservative
> cpufreq_userspace cpufreq_powersave microcode xt_NOTRACK ip_set_hash_net
> act_police cls_basic cls_flow cls_fw cls_u32 sch_tbf sch_prio sch_htb
> sch_hfsc sch_ingress sch_sfq xt_connlimit xt_realm xt_addrtype
> ip_set_hash_ip iptable_raw xt_comment xt_recent ipt_ULOG ipt_REJECT
> ipt_REDIRECT ipt_NETMAP ipt_MASQUERADE ipt_ECN ipt_ecn ipt_CLUSTERIP ipt_ah
> nf_nat_tftp nf_nat_snmp_basic nf_conntrack_snmp nf_nat_sip nf_nat_pptp
> nf_nat_proto_gre nf_nat_irc nf_nat_h323 nf_nat_ftp ip6_queue nf_nat_amanda
> xt_set ip_set nf_conntrack_tftp nf_conntrack_sip nf_conntrack_sane
> nf_conntrack_proto_udplite nf_conntrack_proto_sctp nf_conntrack_pptp
> nf_conntrack_proto_gre nf_conntrack_netlink nf_conntrack_netbios_ns
> nf_conntrack_broadcast nf_conntrack_irc nf_conntrack_h323 nf_conntrack_ftp
> ts_kmp nf_conntrack_amanda xt_TPROXY xt_NFLOG nfnetlink_log nf_tproxy_core
> xt_time xt_TCPMSS xt_tcpmss xt_sctp xt_policy xt_pkttype xt_physdev xt_owner
> xt_NFQUEUE xt_multiport xt_mark xt_mac xt_limit xt_length xt_iprange
> xt_helper xt_hashlimit xt_DSCP xt_dscp xt_dccp xt_connmark xt_CLASSIFY
> xt_AUDIT ip6t_LOG ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 xt_conntrack
> ip6table_raw ipt_LOG xt_tcpudp ip6table_mangle xt_state iptable_nat nf_nat
> nf_conntrack_ipv4 nf_defrag_ipv4 nf_conntrack iptable_mangle nfnetlink
> iptable_filter ip_tables ip6table_filter ip6_tables x_tables bridge stp
> bonding w83627ehf hwmon_vid coretemp sha1_ssse3 sha1_generic crc32c_intel
> aesni_intel cryptd aes_x86_64 aes_generic ipmi_poweroff ipmi_devintf ipmi_si
> ipmi_msghandler vhost_net macvtap macvlan tun drbd lru_cache cn loop
> kvm_intel kvm snd_pcm snd_timer snd iTCO_wdt soundcore psmouse
> snd_page_alloc i2c_i801 i2c_core cdc_acm iTCO_vendor_support joydev evdev
> serio_raw processor button pcspkr thermal_sys ext4 mbcache jbd2 crc16 dm_mod
> raid1 md_mod sd_mod crc_t10dif usb_storage uas usbhid hid ahci libahci
> libata igb ehci_hcd scsi_mod usbcore e1000e dca usb_common [last unloaded:
> scsi_wait_scan]
> [35481.685740] Pid: 0, comm: swapper/4 Not tainted 3.2.0-rc6+ #4
> [35481.685744] Call Trace:
> [35481.685746]  <IRQ>  [<ffffffff810467ed>] ? warn_slowpath_common+0x78/0x8c
> [35481.685849]  [<ffffffff81046899>] ? warn_slowpath_fmt+0x45/0x4a
> [35481.685875]  [<ffffffff810aeaa0>] ? perf_event_task_tick+0x166/0x1ab
> [35481.686018]  [<ffffffff81294219>] ? netif_tx_lock+0x40/0x72
> [35481.686090]  [<ffffffff8129437a>] ? dev_watchdog+0xe9/0x148
> [35481.686136]  [<ffffffff81051e58>] ? run_timer_softirq+0x19a/0x261
> [35481.686176]  [<ffffffff81294291>] ? netif_tx_unlock+0x46/0x46
> [35481.686215]  [<ffffffff810659bb>] ? timekeeping_get_ns+0xd/0x2a
> [35481.686286]  [<ffffffff8104bdd4>] ? __do_softirq+0xb9/0x177
> [35481.686365]  [<ffffffff81341d6c>] ? call_softirq+0x1c/0x30
> [35481.686530]  [<ffffffff8100f841>] ? do_softirq+0x3c/0x7b
> [35481.686580]  [<ffffffff8104c03c>] ? irq_exit+0x3c/0x9a
> [35481.686742]  [<ffffffff81023e58>] ? smp_apic_timer_interrupt+0x74/0x82
> [35481.686820]  [<ffffffff813405de>] ? apic_timer_interrupt+0x6e/0x80
> [35481.686826]  <EOI>  [<ffffffff811ddf49>] ? intel_idle+0xea/0x119
> [35481.686991]  [<ffffffff811ddf28>] ? intel_idle+0xc9/0x119
> [35481.687051]  [<ffffffff8125dce3>] ? cpuidle_idle_call+0xec/0x179
> [35481.687089]  [<ffffffff8100d255>] ? cpu_idle+0xa1/0xe8
> [35481.687143]  [<ffffffff810706ee>] ? arch_local_irq_restore+0x2/0x8
> [35481.687189]  [<ffffffff8132d191>] ? start_secondary+0x1d5/0x1db
> [35481.687234] ---[ end trace 01e9907674757948 ]---
> [35481.687817] e1000e 0000:05:00.0: eth2: Reset adapter
>
> To try to regain connectivity I bring down the bond and the interface
> (eth2), then unload e1000e. Upon loading the module again:
>
> [36021.888962] e1000e: Intel(R) PRO/1000 Network Driver - 1.5.1-k
> [36021.900258] e1000e: Copyright(c) 1999 - 2011 Intel Corporation.
> [36021.911446] e1000e 0000:00:19.0: PCI INT A -> GSI 20 (level, low) -> IRQ
> 20
> [36021.923204] e1000e 0000:00:19.0: setting latency timer to 64
> [36021.923372] e1000e 0000:00:19.0: irq 45 for MSI/MSI-X
> [36022.202737] e1000e 0000:00:19.0: eth2: (PCI Express:2.5GT/s:Width x1)
> 00:25:90:56:ac:75
> [36022.214480] e1000e 0000:00:19.0: eth3: Intel(R) PRO/1000 Network
> Connection
> [36022.227506] e1000e 0000:00:19.0: eth3: MAC: 10, PHY: 11, PBA No:
> FFFFFF-0FF
> [36022.239789] e1000e 0000:05:00.0: Disabling ASPM L0s
> [36022.239805] e1000e 0000:05:00.0: enabling device (0000 -> 0002)
> [36022.239829] e1000e 0000:05:00.0: PCI INT A -> GSI 16 (level, low) -> IRQ
> 16
> [36022.239921] e1000e 0000:05:00.0: setting latency timer to 64
> [36022.240963] e1000e 0000:05:00.0: irq 64 for MSI/MSI-X
> [36022.240995] e1000e 0000:05:00.0: irq 65 for MSI/MSI-X
> [36022.241028] e1000e 0000:05:00.0: irq 66 for MSI/MSI-X
> [36022.241596] e1000e 0000:05:00.0: PCI INT A disabled
> [36022.241606] e1000e: probe of 0000:05:00.0 failed with error -2
> [36022.304706] udevd[3634]: renamed network interface eth2 to eth3
>
> I then don't get an eth2 interface. Only a reboot brings the interface back.
> This has happened twice so far on this server in the past week, both times
> using v3.2-rc7-3-g4962516.
>
> lspci -vnn shows:
>
> 05:00.0 Ethernet controller [0200]: Intel Corporation 82574L Gigabit Network
> Connection [8086:10d3]
>        Subsystem: Super Micro Computer Inc Device [15d9:0000]
>        Flags: bus master, fast devsel, latency 0, IRQ 16
>        Memory at fbd00000 (32-bit, non-prefetchable) [size=128K]
>        I/O ports at e000 [size=32]
>        Memory at fbd20000 (32-bit, non-prefetchable) [size=16K]
>        Capabilities: [c8] Power Management version 2
>        Capabilities: [d0] MSI: Enable- Count=1/1 Maskable- 64bit+
>        Capabilities: [e0] Express Endpoint, MSI 00
>        Capabilities: [a0] MSI-X: Enable+ Count=5 Masked-
>        Capabilities: [100] Advanced Error Reporting
>        Capabilities: [140] Device Serial Number 00-25-90-ff-ff-56-ac-74
>        Kernel driver in use: e1000e
>
> Thanks,
> Chris
>
> --
> Chris Boot
> bootc@bootc.net

I too am experiencing problems with  the e1000e. It takes hours to happen,
sometimes days, under a sustained, heavy load (10 iperfs, 1 netperf RR, ping)

while :
do
for i in `seq 1 10`
do
iperf -w254k -t 60 -c MY_SERVER &
done
netperf -H MY_SERVER -t TCP_RR &
wait
sleep2
done

but eventually...
ifconfig will show the e1000e receiving packets, but none will be
transmitted. I kill off the qdisc
(tc del dev eth0 root) and sometimes it comes back (so I was assuming
it was a problem with qfq) - but
this morning I managed to get a full on kernel panic from it and
scribble it down.

This is with net-next as of c5e1fd8ccae09f574d6f978c90c2b968ee29030c -
but I have
been experiencing lockups since I started fiddling with BQL last
month. That said,
I wouldn't consider my environment terribly normal as I'm running with
no tso, no
gso,  tx rings of 64, at 100Mbit, BQL's limit at 4500 bytes, and the QFQ qdisc,

and I was willing to write it off
to being too early to jump on net-next until now.

The super duper new fair QFQ based shaping script I've been testing is at:

https://github.com/dtaht/deBloat/blob/master/src/staqfq.lua

and my scribbled down morning's panic was:

__schedule_bug
_shedule
atomic_notifier_call_chain
__cond_resched
_cond_resched
__kmalloc
[drm_ks_helper]
[drm_kms_help]
drm_crtc_helper_set_config
drm_fb_helper_restore_fb_mode
drm_fb_helper_force_kernel_mode
drm_fb_helper_panic
notifier_call_chain
atomic_notifier_call_chain
panic
oops_end
no_context
__bad_area_nosemeaphore
_do_page_Fault
? T something
qfq_deactivate_class
qfq_deactivate_class
qfq_reset_qdisc
m@cruithne:~$ more trace.txt
__schedule_bug
_shedule
atomic_notifier_call_chain
__cond_resched
_cond_resched
__kmalloc
[drm_ks_helper]
[drm_kms_help]
drm_crtc_helper_set_config
drm_fb_helper_restore_fb_mode
drm_fb_helper_force_kernel_mode
drm_fb_helper_panic
notifier_call_chain
atomic_notifier_call_chain
panic
oops_end
no_context
__bad_area_nosemeaphore
_do_page_Fault
? T something
qfq_deactivate_class
qfq_deactivate_class
qfq_reset_qdisc
qdisc_reset
dev_deactivate_queue
dev_deativate_many
qdic_graft
tc_get_qdisc
zone_statistics
rtnetlink_rcv_msg
rtnetlink_rcv
netlink_rcu_sb
rtnetlink_rcv
netlink_unicast
netlink_sendmsg
sock_sendmsg
unlock_page
__do_fault
move_addr_to_kernel
verify_iovec
__sys_sendmsg
handle_mm_fault
do_page_fault
sys_sendmsg
system_call_fastpath


-- 
Dave Täht
SKYPE: davetaht
http://www.bufferbloat.net

^ permalink raw reply

* Re: [PATCH] net: meth: Add set_rx_mode hook to fix ICMPv6 neighbor discovery
From: Stephen Hemminger @ 2011-12-27 22:34 UTC (permalink / raw)
  To: Joshua Kinard; +Cc: netdev, Linux MIPS List
In-Reply-To: <4EFA38D5.1000602@gentoo.org>

On Tue, 27 Dec 2011 16:29:57 -0500
Joshua Kinard <kumba@gentoo.org> wrote:

> MIPS I/O registers are always memory-mapped, and to prevent the compiler
> from trying to over-optimize, volatile is used to make sure we always read a
> value from the hardware and not from some cached value.

Almost every other network driver had memory mapped register.
The problem is volatile is that the compiler is stupid and wrong.
Using explicit barriers is preferred and ensures correct and fast
code.

^ permalink raw reply

* Re: [PATCH] net: meth: Add set_rx_mode hook to fix ICMPv6 neighbor discovery
From: Joshua Kinard @ 2011-12-27 22:48 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: netdev, Linux MIPS List
In-Reply-To: <20111227143441.30d2c42f@nehalam.linuxnetplumber.net>

On 12/27/2011 17:34, Stephen Hemminger wrote:

> On Tue, 27 Dec 2011 16:29:57 -0500
> Joshua Kinard <kumba@gentoo.org> wrote:
> 
>> MIPS I/O registers are always memory-mapped, and to prevent the compiler
>> from trying to over-optimize, volatile is used to make sure we always read a
>> value from the hardware and not from some cached value.
> 
> Almost every other network driver had memory mapped register.
> The problem is volatile is that the compiler is stupid and wrong.
> Using explicit barriers is preferred and ensures correct and fast
> code.


I am somewhat new to driver development, so I do not know all the tricks of
the trade just yet.  Do you have references to doing explicit barriers that
I can look at?  Might be worth trying on the RTC driver I have to get the
hang of them.

-- 
Joshua Kinard
Gentoo/MIPS
kumba@gentoo.org
4096R/D25D95E3 2011-03-28

"The past tempts us, the present confuses us, the future frightens us.  And
our lives slip away, moment by moment, lost in that vast, terrible in-between."

--Emperor Turhan, Centauri Republic

^ permalink raw reply

* Re: [PATCH] net: meth: Add set_rx_mode hook to fix ICMPv6 neighbor discovery
From: Stephen Hemminger @ 2011-12-28  0:29 UTC (permalink / raw)
  To: Joshua Kinard; +Cc: netdev, Linux MIPS List
In-Reply-To: <4EFA4B40.8090502@gentoo.org>

On Tue, 27 Dec 2011 17:48:32 -0500
Joshua Kinard <kumba@gentoo.org> wrote:

> On 12/27/2011 17:34, Stephen Hemminger wrote:
> 
> > On Tue, 27 Dec 2011 16:29:57 -0500
> > Joshua Kinard <kumba@gentoo.org> wrote:
> > 
> >> MIPS I/O registers are always memory-mapped, and to prevent the compiler
> >> from trying to over-optimize, volatile is used to make sure we always read a
> >> value from the hardware and not from some cached value.
> > 
> > Almost every other network driver had memory mapped register.
> > The problem is volatile is that the compiler is stupid and wrong.
> > Using explicit barriers is preferred and ensures correct and fast
> > code.
> 
> 
> I am somewhat new to driver development, so I do not know all the tricks of
> the trade just yet.  Do you have references to doing explicit barriers that
> I can look at?  Might be worth trying on the RTC driver I have to get the
> hang of them.
> 

Start by reading volatile considered harmful and memory barriers in kernel
Documentation directory. Paul does a better job of explaining it than
I could ever do :-)

^ permalink raw reply

* [PATCH] tcp: detect loss above high_seq in recovery
From: Yuchung Cheng @ 2011-12-28  0:46 UTC (permalink / raw)
  To: davem, ilpo.jarvinen; +Cc: ncardwell, nanditad, netdev, Yuchung Cheng

Correctly implement a loss detection heuristic: New sequences (above
high_seq) sent during the fast recovery are deemed lost when higher
sequences are SACKed.

Current code does not catch these losses, because tcp_mark_head_lost()
does not check packets beyond high_seq. The fix is straight-forward by
checking packets until the highest sacked packet. In addition, all the
FLAG_DATA_LOST logic are in-effective and redundant and can be removed.

The new sequences sent during fast-recovery maybe marked as lost
and/or retransmitted. It is possible these (new) losses are recovered
within the current fast recovery and the state moves back to CA_Open
without entering another fast recovery / cwnd redunction. This is
especially possible for light losses.  Note RFC 3517 (implicitly)
allows this as well.

Update the loss heuristic comments. The algorithm above is documented
as heuristic B, but it is redundant too because heuristic A already
covers B.

Signed-off-by: Yuchung Cheng <ycheng@google.com>
---
 include/linux/snmp.h |    1 -
 net/ipv4/proc.c      |    1 -
 net/ipv4/tcp_input.c |   41 +++++++++++++++--------------------------
 3 files changed, 15 insertions(+), 28 deletions(-)

diff --git a/include/linux/snmp.h b/include/linux/snmp.h
index e16557a..c1241c42 100644
--- a/include/linux/snmp.h
+++ b/include/linux/snmp.h
@@ -192,7 +192,6 @@ enum
 	LINUX_MIB_TCPPARTIALUNDO,		/* TCPPartialUndo */
 	LINUX_MIB_TCPDSACKUNDO,			/* TCPDSACKUndo */
 	LINUX_MIB_TCPLOSSUNDO,			/* TCPLossUndo */
-	LINUX_MIB_TCPLOSS,			/* TCPLoss */
 	LINUX_MIB_TCPLOSTRETRANSMIT,		/* TCPLostRetransmit */
 	LINUX_MIB_TCPRENOFAILURES,		/* TCPRenoFailures */
 	LINUX_MIB_TCPSACKFAILURES,		/* TCPSackFailures */
diff --git a/net/ipv4/proc.c b/net/ipv4/proc.c
index 3569d8e..6afc807 100644
--- a/net/ipv4/proc.c
+++ b/net/ipv4/proc.c
@@ -216,7 +216,6 @@ static const struct snmp_mib snmp4_net_list[] = {
 	SNMP_MIB_ITEM("TCPPartialUndo", LINUX_MIB_TCPPARTIALUNDO),
 	SNMP_MIB_ITEM("TCPDSACKUndo", LINUX_MIB_TCPDSACKUNDO),
 	SNMP_MIB_ITEM("TCPLossUndo", LINUX_MIB_TCPLOSSUNDO),
-	SNMP_MIB_ITEM("TCPLoss", LINUX_MIB_TCPLOSS),
 	SNMP_MIB_ITEM("TCPLostRetransmit", LINUX_MIB_TCPLOSTRETRANSMIT),
 	SNMP_MIB_ITEM("TCPRenoFailures", LINUX_MIB_TCPRENOFAILURES),
 	SNMP_MIB_ITEM("TCPSackFailures", LINUX_MIB_TCPSACKFAILURES),
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
index 2877c3e..976034f 100644
--- a/net/ipv4/tcp_input.c
+++ b/net/ipv4/tcp_input.c
@@ -105,7 +105,6 @@ int sysctl_tcp_abc __read_mostly;
 #define FLAG_SYN_ACKED		0x10 /* This ACK acknowledged SYN.		*/
 #define FLAG_DATA_SACKED	0x20 /* New SACK.				*/
 #define FLAG_ECE		0x40 /* ECE in this ACK				*/
-#define FLAG_DATA_LOST		0x80 /* SACK detected data lossage.		*/
 #define FLAG_SLOWPATH		0x100 /* Do not skip RFC checks for window update.*/
 #define FLAG_ONLY_ORIG_SACKED	0x200 /* SACKs only non-rexmit sent before RTO */
 #define FLAG_SND_UNA_ADVANCED	0x400 /* Snd_una was changed (!= FLAG_DATA_ACKED) */
@@ -1040,13 +1039,11 @@ static void tcp_skb_mark_lost_uncond_verify(struct tcp_sock *tp,
  * These 6 states form finite state machine, controlled by the following events:
  * 1. New ACK (+SACK) arrives. (tcp_sacktag_write_queue())
  * 2. Retransmission. (tcp_retransmit_skb(), tcp_xmit_retransmit_queue())
- * 3. Loss detection event of one of three flavors:
+ * 3. Loss detection event of two flavors:
  *	A. Scoreboard estimator decided the packet is lost.
  *	   A'. Reno "three dupacks" marks head of queue lost.
- *	   A''. Its FACK modfication, head until snd.fack is lost.
- *	B. SACK arrives sacking data transmitted after never retransmitted
- *	   hole was sent out.
- *	C. SACK arrives sacking SND.NXT at the moment, when the
+ *	   A''. Its FACK modification, head until snd.fack is lost.
+ *	B. SACK arrives sacking SND.NXT at the moment, when the
  *	   segment was retransmitted.
  * 4. D-SACK added new rule: D-SACK changes any tag to S.
  *
@@ -1153,7 +1150,7 @@ static int tcp_is_sackblock_valid(struct tcp_sock *tp, int is_dsack,
 }
 
 /* Check for lost retransmit. This superb idea is borrowed from "ratehalving".
- * Event "C". Later note: FACK people cheated me again 8), we have to account
+ * Event "B". Later note: FACK people cheated me again 8), we have to account
  * for reordering! Ugly, but should help.
  *
  * Search retransmitted skbs from write_queue that were sent when snd_nxt was
@@ -1844,10 +1841,6 @@ tcp_sacktag_write_queue(struct sock *sk, const struct sk_buff *ack_skb,
 		if (found_dup_sack && ((i + 1) == first_sack_index))
 			next_dup = &sp[i + 1];
 
-		/* Event "B" in the comment above. */
-		if (after(end_seq, tp->high_seq))
-			state.flag |= FLAG_DATA_LOST;
-
 		/* Skip too early cached blocks */
 		while (tcp_sack_cache_ok(tp, cache) &&
 		       !before(start_seq, cache->end_seq))
@@ -2515,8 +2508,11 @@ static void tcp_timeout_skbs(struct sock *sk)
 	tcp_verify_left_out(tp);
 }
 
-/* Mark head of queue up as lost. With RFC3517 SACK, the packets is
- * is against sacked "cnt", otherwise it's against facked "cnt"
+/* Detect loss in event "A" above by marking head of queue up as lost.
+ * For FACK or non-SACK(Reno) senders, the first "packets" number of segments
+ * are considered lost. For RFC3517 SACK, a segment is considered lost if it
+ * has at least tp->reordering SACKed seqments above it; "packets" refers to
+ * the maximum SACKed segments to pass before reaching this limit.
  */
 static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head)
 {
@@ -2525,6 +2521,8 @@ static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head)
 	int cnt, oldcnt;
 	int err;
 	unsigned int mss;
+	/* Use SACK to deduce losses of new sequences sent during recovery */
+	const u32 loss_high = tcp_is_sack(tp) ?  tp->snd_nxt : tp->high_seq;
 
 	WARN_ON(packets > tp->packets_out);
 	if (tp->lost_skb_hint) {
@@ -2546,7 +2544,7 @@ static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head)
 		tp->lost_skb_hint = skb;
 		tp->lost_cnt_hint = cnt;
 
-		if (after(TCP_SKB_CB(skb)->end_seq, tp->high_seq))
+		if (after(TCP_SKB_CB(skb)->end_seq, loss_high))
 			break;
 
 		oldcnt = cnt;
@@ -3033,19 +3031,10 @@ static void tcp_fastretrans_alert(struct sock *sk, int pkts_acked,
 	if (tcp_check_sack_reneging(sk, flag))
 		return;
 
-	/* C. Process data loss notification, provided it is valid. */
-	if (tcp_is_fack(tp) && (flag & FLAG_DATA_LOST) &&
-	    before(tp->snd_una, tp->high_seq) &&
-	    icsk->icsk_ca_state != TCP_CA_Open &&
-	    tp->fackets_out > tp->reordering) {
-		tcp_mark_head_lost(sk, tp->fackets_out - tp->reordering, 0);
-		NET_INC_STATS_BH(sock_net(sk), LINUX_MIB_TCPLOSS);
-	}
-
-	/* D. Check consistency of the current state. */
+	/* C. Check consistency of the current state. */
 	tcp_verify_left_out(tp);
 
-	/* E. Check state exit conditions. State can be terminated
+	/* D. Check state exit conditions. State can be terminated
 	 *    when high_seq is ACKed. */
 	if (icsk->icsk_ca_state == TCP_CA_Open) {
 		WARN_ON(tp->retrans_out != 0);
@@ -3077,7 +3066,7 @@ static void tcp_fastretrans_alert(struct sock *sk, int pkts_acked,
 		}
 	}
 
-	/* F. Process state. */
+	/* E. Process state. */
 	switch (icsk->icsk_ca_state) {
 	case TCP_CA_Recovery:
 		if (!(flag & FLAG_SND_UNA_ADVANCED)) {
-- 
1.7.3.1

^ permalink raw reply related

* Re: [PATCH net-next 00/23] TIPC: Updates for what will be v3.3
From: Paul Gortmaker @ 2011-12-28  2:16 UTC (permalink / raw)
  To: David Miller; +Cc: netdev, allan.stephens, ying.xue
In-Reply-To: <20111227.130807.1680254459456306555.davem@davemloft.net>

On Tue, Dec 27, 2011 at 1:08 PM, David Miller <davem@davemloft.net> wrote:
> From: Paul Gortmaker <paul.gortmaker@windriver.com>
> Date: Tue, 27 Dec 2011 12:39:19 -0500
>
>> Here are some more updates for TIPC, based on the backlog of stuff
>> that was unfortunately stacked away in sourceforge a while ago.
>>
>> Given the timing, please feel free to defer these to the for-3.4
>> net-next if there isn't a convenient opportunity to process it
>> before 3.2 is officially released.  I can easily resend later.
>>
>> Fortunately, the SF backlog will finally be 100% gone with the
>> pending stuff that will be sent in the next year for the 3.4
>> net-next, so that will be nice to have that task closed out.
>>
>> I just finished testing this over the wire between an x86-32 and
>> an x86-64 box, with both taking turns being server and client.
>
> Pulled, thanks Paul.
>
> Two suggestions:
>
> 1) Please rename things like "struct media" to something more global
>   namespace friendly like "struct tipc_media"

Yep, I can do that easily, and probably send that out this week,
since a change like this won't invalidate any prev. testing etc.

>
> 2) We really should get rid of the ad-hoc debug logging facility tipc
>   uses.  It's not like there aren't tons of generic, well maintained,
>   feature-full logging facilities available.  There is no reason for
>   tipc to have it's own special, private, logginc facility.

Sounds like the right thing to do; I will take a look at this to see
how involved it is.  I don't think there should be any problem
getting it in with the remaining SF changes for 3.4 content in
the new year.

Thanks,
Paul.

>
>   If the generic facilities lack some feature, add it and submit
>   it for inclusion to linux-kernel so everyone can use it, not just
>   TIPC.
> --
> To unsubscribe from this list: send the line "unsubscribe netdev" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html

^ permalink raw reply

* [PATCH v2] packet: fix possible dev refcnt leak when bind fail
From: Wei Yongjun @ 2011-12-28  2:53 UTC (permalink / raw)
  To: davem; +Cc: netdev

From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

If bind is fail when bind is called after set PACKET_FANOUT
sock option, the dev refcnt will leak.

Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
---
 net/packet/af_packet.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
index 3891702..d9d4970 100644
--- a/net/packet/af_packet.c
+++ b/net/packet/af_packet.c
@@ -2448,8 +2448,12 @@ static int packet_do_bind(struct sock *sk, struct net_device *dev, __be16 protoc
 {
 	struct packet_sock *po = pkt_sk(sk);
 
-	if (po->fanout)
+	if (po->fanout) {
+		if (dev)
+			dev_put(dev);
+
 		return -EINVAL;
+	}
 
 	lock_sock(sk);
 
-- 
1.7.7

^ permalink raw reply related

* Crash in ip_expire/icmp_send - 2.6.38.2 (Ubuntu 11.04 natty)
From: Tim Hartrick @ 2011-12-28  3:32 UTC (permalink / raw)
  To: netdev


netdev,

We have observed the crash cited below on a number of our load-balancing
systems recently.  The systems in question are running LVS in DR mode on
two pairs of bonded (ifenslave) 1G Intel interfaces.  There is very
little else running on the systems.  This particular instance occurred
within seconds of using "ip route add a.b.c.d/x dev bond1" but we have
observed it on other occasions.

Using crash the problem has been isolated to this section of code:

void icmp_send(struct sk_buff *skb_in, int type, int code, __be32 info)
{
        struct iphdr *iph;
        int room;
        struct icmp_bxm icmp_param;
        struct rtable *rt = skb_rtable(skb_in);
        struct ipcm_cookie ipc;
        __be32 saddr;
        u8  tos;
        struct net *net;
        struct sock *sk;

        if (!rt)
                goto out;
        net = dev_net(rt->dst.dev);

        /*
         *      Find the original header. It is expected to be valid, of course.
         *      Check this, icmp_send is called from the most obscure devices
         *      sometimes.
         */
        iph = ip_hdr(skb_in);

The crash occurs because the rt->dst.dev is NULL.  The crash occurs at
icmp_send+95.  I will be happy to furnish the dump for further
inspection upon request.

0xffffffff81541e50 <icmp_send>: push   %rbp
0xffffffff81541e51 <icmp_send+1>:       mov    %rsp,%rbp
0xffffffff81541e54 <icmp_send+4>:       sub    $0x190,%rsp
0xffffffff81541e5b <icmp_send+11>:      mov    %rbx,-0x28(%rbp)
0xffffffff81541e5f <icmp_send+15>:      mov    %r12,-0x20(%rbp)
0xffffffff81541e63 <icmp_send+19>:      mov    %r13,-0x18(%rbp)
0xffffffff81541e67 <icmp_send+23>:      mov    %r14,-0x10(%rbp)
0xffffffff81541e6b <icmp_send+27>:      mov    %r15,-0x8(%rbp)
0xffffffff81541e6f <icmp_send+31>:      nopl   0x0(%rax,%rax,1)
0xffffffff81541e74 <icmp_send+36>:      mov    %gs:0x28,%rax
0xffffffff81541e7d <icmp_send+45>:      mov    %rax,-0x38(%rbp)
0xffffffff81541e81 <icmp_send+49>:      xor    %eax,%eax
0xffffffff81541e83 <icmp_send+51>:      mov    %edx,%r15d
0xffffffff81541e86 <icmp_send+54>:      mov    0x58(%rdi),%rdx
0xffffffff81541e8a <icmp_send+58>:      mov    %rdi,%rbx
0xffffffff81541e8d <icmp_send+61>:      mov    %esi,%r12d
0xffffffff81541e90 <icmp_send+64>:      mov    %ecx,%r14d
0xffffffff81541e93 <icmp_send+67>:      and    $0xfffffffffffffffe,%rdx
0xffffffff81541e97 <icmp_send+71>:      je     0xffffffff81542200 <icmp_send+944>
0xffffffff81541e9d <icmp_send+77>:      mov    %rdx,-0x128(%rbp)
0xffffffff81541ea4 <icmp_send+84>:      mov    0x18(%rdx),%rax
0xffffffff81541ea8 <icmp_send+88>:      mov    0xd8(%rdi),%r13
0xffffffff81541eaf <icmp_send+95>:      mov    0x3e0(%rax),%r10
0xffffffff81541eb6 <icmp_send+102>:     mov    0xc4(%rdi),%eax
0xffffffff81541ebc <icmp_send+108>:     add    %rax,%r13


Here is the dmesg:

[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 2.6.38-8ec95-server (root@boudreau) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) ) #42 SMP Wed Nov 30 17:23:06 PST 2011 (Ubuntu 2.6.38-8ec95.42-server 2.6.38.2)
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-2.6.38-8ec95-server root=UUID=76c006c2-9fca-4474-ab11-161a4615e508 ro crashkernel=384M-2G:64M,2G-:128M quiet
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000cf379000 (usable)
[    0.000000]  BIOS-e820: 00000000cf379000 - 00000000cf38f000 (reserved)
[    0.000000]  BIOS-e820: 00000000cf38f000 - 00000000cf3ce000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000cf3ce000 - 00000000d0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fe000000 - 0000000100000000 (reserved)
[    0.000000]  BIOS-e820: 0000000100000000 - 00000001b0000000 (usable)
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] DMI 2.6 present.
[    0.000000] DMI: Dell Inc. PowerEdge R410/01V648, BIOS 1.8.2 08/19/2011
[    0.000000] e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
[    0.000000] e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
[    0.000000] No AGP bridge found
[    0.000000] last_pfn = 0x1b0000 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-C7FFF write-protect
[    0.000000]   C8000-CFFFF write-back
[    0.000000]   D0000-D3FFF write-protect
[    0.000000]   D4000-EBFFF uncachable
[    0.000000]   EC000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 0000000000 mask FF80000000 write-back
[    0.000000]   1 base 0080000000 mask FFC0000000 write-back
[    0.000000]   2 base 00C0000000 mask FFF0000000 write-back
[    0.000000]   3 base 0100000000 mask FF80000000 write-back
[    0.000000]   4 base 0180000000 mask FFE0000000 write-back
[    0.000000]   5 base 01A0000000 mask FFF0000000 write-back
[    0.000000]   6 disabled
[    0.000000]   7 disabled
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] e820 update range: 00000000d0000000 - 0000000100000000 (usable) ==> (reserved)
[    0.000000] last_pfn = 0xcf379 max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [ffff8800000fe710] fe710
[    0.000000] initial memory mapped : 0 - 20000000
[    0.000000] Using GB pages for direct mapping
[    0.000000] init_memory_mapping: 0000000000000000-00000000cf379000
[    0.000000]  0000000000 - 00c0000000 page 1G
[    0.000000]  00c0000000 - 00cf200000 page 2M
[    0.000000]  00cf200000 - 00cf379000 page 4k
[    0.000000] kernel direct mapping tables up to cf379000 @ 1fffd000-20000000
[    0.000000] init_memory_mapping: 0000000100000000-00000001b0000000
[    0.000000]  0100000000 - 0180000000 page 1G
[    0.000000]  0180000000 - 01b0000000 page 2M
[    0.000000] kernel direct mapping tables up to 1b0000000 @ cf377000-cf379000
[    0.000000] RAMDISK: 37703000 - 37ff0000
[    0.000000] Reserving 128MB of memory at 752MB for crashkernel (System RAM: 6912MB)
[    0.000000] ACPI: RSDP 00000000000f1090 00024 (v02 DELL  )
[    0.000000] ACPI: XSDT 00000000000f1194 0009C (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: FACP 00000000cf3b3f9c 000F4 (v03 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: DSDT 00000000cf38f000 03B51 (v01 DELL   PE_SC3   00000001 INTL 20050624)
[    0.000000] ACPI: FACS 00000000cf3b6000 00040
[    0.000000] ACPI: APIC 00000000cf3b3478 0015E (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: SPCR 00000000cf3b35d8 00050 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: HPET 00000000cf3b362c 00038 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: DM__ 00000000cf3b3668 001C0 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: MCFG 00000000cf3b38c4 0003C (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: WD__ 00000000cf3b3904 00134 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: SLIC 00000000cf3b3a3c 00024 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: ERST 00000000cf392cd4 00270 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: HEST 00000000cf392f44 003A8 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: BERT 00000000cf392b54 00030 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: EINJ 00000000cf392b84 00150 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: SRAT 00000000cf3b3bc0 00370 (v01 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: TCPA 00000000cf3b3f34 00064 (v02 DELL   PE_SC3   00000001 DELL 00000001)
[    0.000000] ACPI: SSDT 00000000cf3b7000 06C0C (v01  INTEL PPM RCM  80000001 INTL 20061109)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] SRAT: PXM 1 -> APIC 0x20 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x00 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x22 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x02 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x24 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x04 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x30 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x10 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x32 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x12 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x34 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x14 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x21 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x01 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x23 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x03 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x25 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x05 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x31 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x11 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x33 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x13 -> Node 1
[    0.000000] SRAT: PXM 1 -> APIC 0x35 -> Node 0
[    0.000000] SRAT: PXM 2 -> APIC 0x15 -> Node 1
[    0.000000] SRAT: Node 1 PXM 2 0-c0000000
[    0.000000] SRAT: Node 0 PXM 1 c0000000-d0000000
[    0.000000] SRAT: Node 0 PXM 1 100000000-1b0000000
[    0.000000] SRAT: Node 0 [c0000000,d0000000) + [100000000,1b0000000) -> [c0000000,1b0000000)
[    0.000000] NUMA: Using 30 for the hash shift.
[    0.000000] Initmem setup node 0 00000000c0000000-00000001b0000000
[    0.000000]   NODE_DATA [00000001afffb000 - 00000001afffffff]
[    0.000000] Initmem setup node 1 0000000000000000-00000000c0000000
[    0.000000]   NODE_DATA [00000000bfffb000 - 00000000bfffffff]
[    0.000000]  [ffffea0000000000-ffffea00029fffff] PMD -> [ffff8800bc600000-ffff8800beffffff] on node 1
[    0.000000]  [ffffea0002a00000-ffffea0005ffffff] PMD -> [ffff8801ace00000-ffff8801af9fffff] on node 0
[    0.000000] Zone PFN ranges:
[    0.000000]   DMA      0x00000010 -> 0x00001000
[    0.000000]   DMA32    0x00001000 -> 0x00100000
[    0.000000]   Normal   0x00100000 -> 0x001b0000
[    0.000000] Movable zone start PFN for each node
[    0.000000] early_node_map[4] active PFN ranges
[    0.000000]     1: 0x00000010 -> 0x000000a0
[    0.000000]     1: 0x00000100 -> 0x000c0000
[    0.000000]     0: 0x000c0000 -> 0x000cf379
[    0.000000]     0: 0x00100000 -> 0x001b0000
[    0.000000] On node 0 totalpages: 783225
[    0.000000]   DMA32 zone: 3584 pages used for memmap
[    0.000000]   DMA32 zone: 58745 pages, LIFO batch:15
[    0.000000]   Normal zone: 9856 pages used for memmap
[    0.000000]   Normal zone: 711040 pages, LIFO batch:31
[    0.000000] On node 1 totalpages: 786320
[    0.000000]   DMA zone: 56 pages used for memmap
[    0.000000]   DMA zone: 8 pages reserved
[    0.000000]   DMA zone: 3920 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 10696 pages used for memmap
[    0.000000]   DMA32 zone: 771640 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x808
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x20] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x22] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x24] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x04] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x30] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x10] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x32] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x12] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x34] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x14] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x21] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x23] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x10] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x11] lapic_id[0x25] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x12] lapic_id[0x05] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x13] lapic_id[0x31] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x14] lapic_id[0x11] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x15] lapic_id[0x33] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x16] lapic_id[0x13] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x17] lapic_id[0x35] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x18] lapic_id[0x15] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x19] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x1a] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x1b] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x1c] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x1d] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x1e] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x1f] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x20] lapic_id[0xff] disabled)
[    0.000000] ACPI: LAPIC_NMI (acpi_id[0xff] high edge lint[0x1])
[    0.000000] ACPI: IOAPIC (id[0x00] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec80000] gsi_base[32])
[    0.000000] IOAPIC[1]: apic_id 1, version 32, address 0xfec80000, GSI 32-55
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a301 base: 0xfed00000
[    0.000000] SMP: Allowing 32 CPUs, 8 hotplug CPUs
[    0.000000] nr_irqs_gsi: 72
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 00000000cf379000 - 00000000cf38f000
[    0.000000] PM: Registered nosave memory: 00000000cf38f000 - 00000000cf3ce000
[    0.000000] PM: Registered nosave memory: 00000000cf3ce000 - 00000000d0000000
[    0.000000] PM: Registered nosave memory: 00000000d0000000 - 00000000e0000000
[    0.000000] PM: Registered nosave memory: 00000000e0000000 - 00000000f0000000
[    0.000000] PM: Registered nosave memory: 00000000f0000000 - 00000000fe000000
[    0.000000] PM: Registered nosave memory: 00000000fe000000 - 0000000100000000
[    0.000000] Allocating PCI resources starting at d0000000 (gap: d0000000:10000000)
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:32 nr_node_ids:2
[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff8800bfc00000 s84352 r8192 d22144 u131072
[    0.000000] pcpu-alloc: s84352 r8192 d22144 u131072 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 00 02 04 06 08 10 12 14 16 18 20 22 24 26 28 30 
[    0.000000] pcpu-alloc: [1] 01 03 05 07 09 11 13 15 17 19 21 23 25 27 29 31 
[    0.000000] Built 2 zonelists in Node order, mobility grouping on.  Total pages: 1545345
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-2.6.38-8ec95-server root=UUID=76c006c2-9fca-4474-ab11-161a4615e508 ro crashkernel=384M-2G:64M,2G-:128M quiet
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Calgary: detecting Calgary via BIOS EBDA area
[    0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[    0.000000] Memory: 5966492k/7077888k available (6013k kernel code, 799708k absent, 311688k reserved, 5042k data, 888k init)
[    0.000000] SLUB: Genslabs=15, HWalign=64, Order=0-3, MinObjects=0, CPUs=32, Nodes=2
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000]  RCU-based detection of stalled CPUs is disabled.
[    0.000000] NR_IRQS:16640 nr_irqs:1480 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 62914560 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] hpet clockevent registered
[    0.000000] Fast TSC calibration using PIT
[    0.010000] Detected 2660.096 MHz processor.
[    0.000009] Calibrating delay loop (skipped), value calculated using timer frequency.. 5320.19 BogoMIPS (lpj=26600960)
[    0.000012] pid_max: default: 32768 minimum: 301
[    0.000044] Security Framework initialized
[    0.000056] AppArmor: AppArmor initialized
[    0.000057] Yama: becoming mindful.
[    0.000622] Dentry cache hash table entries: 1048576 (order: 11, 8388608 bytes)
[    0.002198] Inode-cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.002866] Mount-cache hash table entries: 256
[    0.003027] Initializing cgroup subsys ns
[    0.003030] ns_cgroup deprecated: consider using the 'clone_children' flag without the ns_cgroup.
[    0.003032] Initializing cgroup subsys cpuacct
[    0.003037] Initializing cgroup subsys memory
[    0.003057] Initializing cgroup subsys devices
[    0.003059] Initializing cgroup subsys freezer
[    0.003060] Initializing cgroup subsys net_cls
[    0.003062] Initializing cgroup subsys blkio
[    0.003094] CPU: Physical Processor ID: 1
[    0.003095] CPU: Processor Core ID: 0
[    0.003100] mce: CPU supports 9 MCE banks
[    0.003109] CPU0: Thermal monitoring enabled (TM1)
[    0.003116] using mwait in idle threads.
[    0.004884] ACPI: Core revision 20110112
[    0.006687] ftrace: allocating 24023 entries in 95 pages
[    0.012861] Setting APIC routing to physical flat
[    0.013283] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.113042] CPU0: Intel(R) Xeon(R) CPU           X5650  @ 2.67GHz stepping 02
[    0.228452] Performance Events: PEBS fmt1+, Westmere events, Intel PMU driver.
[    0.228457] ... version:                3
[    0.228458] ... bit width:              48
[    0.228459] ... generic registers:      4
[    0.228460] ... value mask:             0000ffffffffffff
[    0.228461] ... max period:             000000007fffffff
[    0.228462] ... fixed-purpose events:   3
[    0.228463] ... event mask:             000000070000000f
[    0.228721] Booting Node   1, Processors  #1 Ok.
[    0.408198] Booting Node   0, Processors  #2 Ok.
[    0.587733] Booting Node   1, Processors  #3 Ok.
[    0.767213] Booting Node   0, Processors  #4 Ok.
[    0.946846] Booting Node   1, Processors  #5 Ok.
[    1.126313] Booting Node   0, Processors  #6 Ok.
[    1.305903] Booting Node   1, Processors  #7 Ok.
[    1.485484] Booting Node   0, Processors  #8 Ok.
[    1.665014] Booting Node   1, Processors  #9 Ok.
[    1.844572] Booting Node   0, Processors  #10 Ok.
[    2.024105] Booting Node   1, Processors  #11 Ok.
[    2.203582] Booting Node   0, Processors  #12 Ok.
[    2.383245] Booting Node   1, Processors  #13 Ok.
[    2.562728] Booting Node   0, Processors  #14 Ok.
[    2.742268] Booting Node   1, Processors  #15 Ok.
[    2.921850] Booting Node   0, Processors  #16 Ok.
[    3.101446] Booting Node   1, Processors  #17 Ok.
[    3.280939] Booting Node   0, Processors  #18 Ok.
[    3.460470] Booting Node   1, Processors  #19 Ok.
[    3.640060] Booting Node   0, Processors  #20 Ok.
[    3.819608] Booting Node   1, Processors  #21 Ok.
[    3.999089] Booting Node   0, Processors  #22 Ok.
[    4.178647] Booting Node   1, Processors  #23
[    4.358178] Brought up 24 CPUs
[    4.358180] Total of 24 processors activated (127681.05 BogoMIPS).
[    4.378980] devtmpfs: initialized
[    4.382662] print_constraints: dummy: 
[    4.382687] Time: 18:15:06  Date: 12/06/11
[    4.382732] NET: Registered protocol family 16
[    4.382839] Trying to unpack rootfs image as initramfs...
[    4.382859] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    4.382862] ACPI: bus type pci registered
[    4.382949] PCI: MMCONFIG for domain 0000 [bus 00-ff] at [mem 0xe0000000-0xefffffff] (base 0xe0000000)
[    4.382953] PCI: MMCONFIG at [mem 0xe0000000-0xefffffff] reserved in E820
[    4.410763] PCI: Using configuration type 1 for base access
[    4.412101] bio: create slab <bio-0> at 0
[    4.413180] ACPI: EC: Look up EC in DSDT
[    4.414535] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    4.418222] ACPI: Interpreter enabled
[    4.418226] ACPI: (supports S0 S4 S5)
[    4.418240] ACPI: Using IOAPIC for interrupt routing
[    4.422476] ACPI: No dock devices found.
[    4.422591] HEST: Table parsing has been initialized.
[    4.422595] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    4.422835] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff])
[    4.423039] pci_root PNP0A08:00: host bridge window [io  0x0000-0x0cf7]
[    4.423043] pci_root PNP0A08:00: host bridge window [io  0x0d00-0xffff]
[    4.423045] pci_root PNP0A08:00: host bridge window [mem 0x000a0000-0x000bffff]
[    4.423048] pci_root PNP0A08:00: host bridge window [mem 0xd0000000-0xfdffffff]
[    4.423051] pci_root PNP0A08:00: host bridge window [mem 0xfed40000-0xfed44fff]
[    4.423068] pci 0000:00:00.0: [8086:3403] type 0 class 0x000600
[    4.423113] pci 0000:00:00.0: PME# supported from D0 D3hot D3cold
[    4.423117] pci 0000:00:00.0: PME# disabled
[    4.423138] pci 0000:00:01.0: [8086:3408] type 1 class 0x000604
[    4.423180] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    4.423183] pci 0000:00:01.0: PME# disabled
[    4.423204] pci 0000:00:03.0: [8086:340a] type 1 class 0x000604
[    4.423245] pci 0000:00:03.0: PME# supported from D0 D3hot D3cold
[    4.423249] pci 0000:00:03.0: PME# disabled
[    4.423271] pci 0000:00:07.0: [8086:340e] type 1 class 0x000604
[    4.423313] pci 0000:00:07.0: PME# supported from D0 D3hot D3cold
[    4.423317] pci 0000:00:07.0: PME# disabled
[    4.423342] pci 0000:00:14.0: [8086:342e] type 0 class 0x000800
[    4.423400] pci 0000:00:14.1: [8086:3422] type 0 class 0x000800
[    4.423455] pci 0000:00:14.2: [8086:3423] type 0 class 0x000800
[    4.423520] pci 0000:00:1a.0: [8086:3a37] type 0 class 0x000c03
[    4.423561] pci 0000:00:1a.0: reg 20: [io  0xcc40-0xcc5f]
[    4.423607] pci 0000:00:1a.1: [8086:3a38] type 0 class 0x000c03
[    4.423649] pci 0000:00:1a.1: reg 20: [io  0xcc60-0xcc7f]
[    4.423701] pci 0000:00:1a.7: [8086:3a3c] type 0 class 0x000c03
[    4.423722] pci 0000:00:1a.7: reg 10: [mem 0xdf0fe000-0xdf0fe3ff]
[    4.423793] pci 0000:00:1a.7: PME# supported from D0 D3hot D3cold
[    4.423798] pci 0000:00:1a.7: PME# disabled
[    4.423819] pci 0000:00:1d.0: [8086:3a34] type 0 class 0x000c03
[    4.423860] pci 0000:00:1d.0: reg 20: [io  0xcc80-0xcc9f]
[    4.423905] pci 0000:00:1d.1: [8086:3a35] type 0 class 0x000c03
[    4.423946] pci 0000:00:1d.1: reg 20: [io  0xcca0-0xccbf]
[    4.423989] pci 0000:00:1d.2: [8086:3a36] type 0 class 0x000c03
[    4.424030] pci 0000:00:1d.2: reg 20: [io  0xccc0-0xccdf]
[    4.424073] pci 0000:00:1d.3: [8086:3a39] type 0 class 0x000c03
[    4.424114] pci 0000:00:1d.3: reg 20: [io  0xcce0-0xccff]
[    4.424165] pci 0000:00:1d.7: [8086:3a3a] type 0 class 0x000c03
[    4.424186] pci 0000:00:1d.7: reg 10: [mem 0xdf0ff000-0xdf0ff3ff]
[    4.424256] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold
[    4.424261] pci 0000:00:1d.7: PME# disabled
[    4.424280] pci 0000:00:1e.0: [8086:244e] type 1 class 0x000604
[    4.424336] pci 0000:00:1f.0: [8086:3a16] type 0 class 0x000601
[    4.424416] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 1 PIO at 0c00 (mask 007f)
[    4.424420] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 2 PIO at 0ca0 (mask 000f)
[    4.424424] pci 0000:00:1f.0: ICH7 LPC Generic IO decode 3 PIO at 00e0 (mask 000f)
[    4.424460] pci 0000:00:1f.2: [8086:3a20] type 0 class 0x000101
[    4.424475] pci 0000:00:1f.2: reg 10: [io  0xc8e0-0xc8e7]
[    4.424483] pci 0000:00:1f.2: reg 14: [io  0xc8d0-0xc8d3]
[    4.424491] pci 0000:00:1f.2: reg 18: [io  0xc8e8-0xc8ef]
[    4.424499] pci 0000:00:1f.2: reg 1c: [io  0xc8d4-0xc8d7]
[    4.424507] pci 0000:00:1f.2: reg 20: [io  0xcc00-0xcc0f]
[    4.424516] pci 0000:00:1f.2: reg 24: [io  0xcc10-0xcc1f]
[    4.424557] pci 0000:00:1f.5: [8086:3a26] type 0 class 0x000101
[    4.424573] pci 0000:00:1f.5: reg 10: [io  0xc8f0-0xc8f7]
[    4.424581] pci 0000:00:1f.5: reg 14: [io  0xc8d8-0xc8db]
[    4.424589] pci 0000:00:1f.5: reg 18: [io  0xc8f8-0xc8ff]
[    4.424597] pci 0000:00:1f.5: reg 1c: [io  0xc8dc-0xc8df]
[    4.424605] pci 0000:00:1f.5: reg 20: [io  0xcc20-0xcc2f]
[    4.424613] pci 0000:00:1f.5: reg 24: [io  0xcc30-0xcc3f]
[    4.424693] pci 0000:01:00.0: [14e4:163b] type 0 class 0x000200
[    4.424709] pci 0000:01:00.0: reg 10: [mem 0xd8000000-0xd9ffffff 64bit]
[    4.424772] pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
[    4.424776] pci 0000:01:00.0: PME# disabled
[    4.424805] pci 0000:01:00.1: [14e4:163b] type 0 class 0x000200
[    4.424821] pci 0000:01:00.1: reg 10: [mem 0xda000000-0xdbffffff 64bit]
[    4.424884] pci 0000:01:00.1: PME# supported from D0 D3hot D3cold
[    4.424888] pci 0000:01:00.1: PME# disabled
[    4.424913] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[    4.424917] pci 0000:00:01.0:   bridge window [io  0xf000-0x0000] (disabled)
[    4.424921] pci 0000:00:01.0:   bridge window [mem 0xd8000000-0xdbffffff]
[    4.424926] pci 0000:00:01.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    4.424969] pci 0000:02:00.0: [1000:0058] type 0 class 0x000100
[    4.424981] pci 0000:02:00.0: reg 10: [io  0xfc00-0xfcff]
[    4.424993] pci 0000:02:00.0: reg 14: [mem 0xdf2ec000-0xdf2effff 64bit]
[    4.425006] pci 0000:02:00.0: reg 1c: [mem 0xdf2f0000-0xdf2fffff 64bit]
[    4.425021] pci 0000:02:00.0: reg 30: [mem 0xdf100000-0xdf1fffff pref]
[    4.425043] pci 0000:02:00.0: supports D1 D2
[    4.425060] pci 0000:00:03.0: PCI bridge to [bus 02-02]
[    4.425064] pci 0000:00:03.0:   bridge window [io  0xf000-0xffff]
[    4.425067] pci 0000:00:03.0:   bridge window [mem 0xdf100000-0xdf2fffff]
[    4.425073] pci 0000:00:03.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    4.425116] pci 0000:03:00.0: [111d:8018] type 1 class 0x000604
[    4.425173] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold
[    4.425178] pci 0000:03:00.0: PME# disabled
[    4.425196] pci 0000:00:07.0: PCI bridge to [bus 03-06]
[    4.425200] pci 0000:00:07.0:   bridge window [io  0xd000-0xefff]
[    4.425204] pci 0000:00:07.0:   bridge window [mem 0xdd000000-0xdeffffff]
[    4.425209] pci 0000:00:07.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    4.425256] pci 0000:04:02.0: [111d:8018] type 1 class 0x000604
[    4.425315] pci 0000:04:02.0: PME# supported from D0 D3hot D3cold
[    4.425319] pci 0000:04:02.0: PME# disabled
[    4.425346] pci 0000:04:04.0: [111d:8018] type 1 class 0x000604
[    4.425406] pci 0000:04:04.0: PME# supported from D0 D3hot D3cold
[    4.425411] pci 0000:04:04.0: PME# disabled
[    4.425450] pci 0000:03:00.0: PCI bridge to [bus 04-06]
[    4.425458] pci 0000:03:00.0:   bridge window [io  0xd000-0xefff]
[    4.425463] pci 0000:03:00.0:   bridge window [mem 0xdd000000-0xdeffffff]
[    4.425470] pci 0000:03:00.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    4.425530] pci 0000:05:00.0: [8086:10e8] type 0 class 0x000200
[    4.425547] pci 0000:05:00.0: reg 10: [mem 0xde7c0000-0xde7dffff]
[    4.425559] pci 0000:05:00.0: reg 14: [mem 0xde800000-0xdebfffff]
[    4.425571] pci 0000:05:00.0: reg 18: [io  0xecc0-0xecdf]
[    4.425583] pci 0000:05:00.0: reg 1c: [mem 0xde7b8000-0xde7bbfff]
[    4.425615] pci 0000:05:00.0: reg 30: [mem 0xde000000-0xde3fffff pref]
[    4.425653] pci 0000:05:00.0: PME# supported from D0 D3hot D3cold
[    4.425658] pci 0000:05:00.0: PME# disabled
[    4.425707] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.425732] pci 0000:05:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.425766] pci 0000:05:00.1: [8086:10e8] type 0 class 0x000200
[    4.425782] pci 0000:05:00.1: reg 10: [mem 0xde7e0000-0xde7fffff]
[    4.425795] pci 0000:05:00.1: reg 14: [mem 0xdec00000-0xdeffffff]
[    4.425807] pci 0000:05:00.1: reg 18: [io  0xece0-0xecff]
[    4.425819] pci 0000:05:00.1: reg 1c: [mem 0xde7bc000-0xde7bffff]
[    4.425850] pci 0000:05:00.1: reg 30: [mem 0xde000000-0xde3fffff pref]
[    4.425888] pci 0000:05:00.1: PME# supported from D0 D3hot D3cold
[    4.425893] pci 0000:05:00.1: PME# disabled
[    4.425936] pci 0000:05:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.425961] pci 0000:05:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.425994] pci 0000:04:02.0: PCI bridge to [bus 05-05]
[    4.426001] pci 0000:04:02.0:   bridge window [io  0xe000-0xefff]
[    4.426006] pci 0000:04:02.0:   bridge window [mem 0xde000000-0xdeffffff]
[    4.426013] pci 0000:04:02.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    4.426075] pci 0000:06:00.0: [8086:10e8] type 0 class 0x000200
[    4.426092] pci 0000:06:00.0: reg 10: [mem 0xdd7c0000-0xdd7dffff]
[    4.426104] pci 0000:06:00.0: reg 14: [mem 0xdd800000-0xddbfffff]
[    4.426117] pci 0000:06:00.0: reg 18: [io  0xdcc0-0xdcdf]
[    4.426129] pci 0000:06:00.0: reg 1c: [mem 0xdd7b8000-0xdd7bbfff]
[    4.426160] pci 0000:06:00.0: reg 30: [mem 0xdd000000-0xdd3fffff pref]
[    4.426199] pci 0000:06:00.0: PME# supported from D0 D3hot
[    4.426204] pci 0000:06:00.0: PME# disabled
[    4.426252] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.426277] pci 0000:06:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.426313] pci 0000:06:00.1: [8086:10e8] type 0 class 0x000200
[    4.426329] pci 0000:06:00.1: reg 10: [mem 0xdd7e0000-0xdd7fffff]
[    4.426342] pci 0000:06:00.1: reg 14: [mem 0xddc00000-0xddffffff]
[    4.426354] pci 0000:06:00.1: reg 18: [io  0xdce0-0xdcff]
[    4.426366] pci 0000:06:00.1: reg 1c: [mem 0xdd7bc000-0xdd7bffff]
[    4.426397] pci 0000:06:00.1: reg 30: [mem 0xdd000000-0xdd3fffff pref]
[    4.426436] pci 0000:06:00.1: PME# supported from D0 D3hot
[    4.426441] pci 0000:06:00.1: PME# disabled
[    4.426485] pci 0000:06:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.426509] pci 0000:06:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.426542] pci 0000:04:04.0: PCI bridge to [bus 06-06]
[    4.426549] pci 0000:04:04.0:   bridge window [io  0xd000-0xdfff]
[    4.426554] pci 0000:04:04.0:   bridge window [mem 0xdd000000-0xddffffff]
[    4.426561] pci 0000:04:04.0:   bridge window [mem 0xfff00000-0x000fffff pref] (disabled)
[    4.426614] pci 0000:07:03.0: [102b:0532] type 0 class 0x000300
[    4.426631] pci 0000:07:03.0: reg 10: [mem 0xd7800000-0xd7ffffff pref]
[    4.426641] pci 0000:07:03.0: reg 14: [mem 0xdc7fc000-0xdc7fffff]
[    4.426651] pci 0000:07:03.0: reg 18: [mem 0xdc800000-0xdcffffff]
[    4.426683] pci 0000:07:03.0: reg 30: [mem 0x00000000-0x0000ffff pref]
[    4.426740] pci 0000:00:1e.0: PCI bridge to [bus 07-07] (subtractive decode)
[    4.426744] pci 0000:00:1e.0:   bridge window [io  0xf000-0x0000] (disabled)
[    4.426749] pci 0000:00:1e.0:   bridge window [mem 0xdc000000-0xdcffffff]
[    4.426755] pci 0000:00:1e.0:   bridge window [mem 0xd7800000-0xd7ffffff 64bit pref]
[    4.426758] pci 0000:00:1e.0:   bridge window [io  0x0000-0x0cf7] (subtractive decode)
[    4.426762] pci 0000:00:1e.0:   bridge window [io  0x0d00-0xffff] (subtractive decode)
[    4.426764] pci 0000:00:1e.0:   bridge window [mem 0x000a0000-0x000bffff] (subtractive decode)
[    4.426768] pci 0000:00:1e.0:   bridge window [mem 0xd0000000-0xfdffffff] (subtractive decode)
[    4.426771] pci 0000:00:1e.0:   bridge window [mem 0xfed40000-0xfed44fff] (subtractive decode)
[    4.426788] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    4.427225] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX1._PRT]
[    4.427296] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX3._PRT]
[    4.427370] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEX7._PRT]
[    4.427450] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.COMP._PRT]
[    4.430296] ACPI: PCI Interrupt Link [LK00] (IRQs 3 4 5 6 7 10 11 14 *15)
[    4.430362] ACPI: PCI Interrupt Link [LK01] (IRQs 3 4 5 6 7 10 11 *14 15)
[    4.430424] ACPI: PCI Interrupt Link [LK02] (IRQs 3 4 5 6 7 10 *11 14 15)
[    4.430492] ACPI: PCI Interrupt Link [LK03] (IRQs 3 4 5 6 7 *10 11 14 15)
[    4.430557] ACPI: PCI Interrupt Link [LK04] (IRQs 3 4 *5 6 7 10 11 14 15)
[    4.430619] ACPI: PCI Interrupt Link [LK05] (IRQs 3 4 5 *6 7 10 11 14 15)
[    4.430682] ACPI: PCI Interrupt Link [LK06] (IRQs 3 4 5 6 7 10 *11 14 15)
[    4.430747] ACPI: PCI Interrupt Link [LK07] (IRQs 3 4 5 6 7 10 11 *14 15)
[    4.430871] vgaarb: device added: PCI:0000:07:03.0,decodes=io+mem,owns=io+mem,locks=none
[    4.430874] vgaarb: loaded
[    4.431056] SCSI subsystem initialized
[    4.431115] libata version 3.00 loaded.
[    4.431161] usbcore: registered new interface driver usbfs
[    4.431172] usbcore: registered new interface driver hub
[    4.431202] usbcore: registered new device driver usb
[    4.431314] wmi: Mapper loaded
[    4.431316] PCI: Using ACPI for IRQ routing
[    4.431319] PCI: pci_cache_line_size set to 64 bytes
[    4.431415] reserve RAM buffer: 00000000cf379000 - 00000000cfffffff 
[    4.431526] NetLabel: Initializing
[    4.431528] NetLabel:  domain hash size = 128
[    4.431529] NetLabel:  protocols = UNLABELED CIPSOv4
[    4.431543] NetLabel:  unlabeled traffic allowed by default
[    4.431585] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0
[    4.431590] hpet0: 4 comparators, 64-bit 14.318180 MHz counter
[    4.433607] Switching to clocksource hpet
[    4.437864] Switched to NOHz mode on CPU #0
[    4.437898] Switched to NOHz mode on CPU #22
[    4.437902] Switched to NOHz mode on CPU #14
[    4.437918] Switched to NOHz mode on CPU #18
[    4.437922] Switched to NOHz mode on CPU #11
[    4.437926] Switched to NOHz mode on CPU #6
[    4.437933] Switched to NOHz mode on CPU #10
[    4.437935] Switched to NOHz mode on CPU #5
[    4.437938] Switched to NOHz mode on CPU #3
[    4.437942] Switched to NOHz mode on CPU #8
[    4.437944] Switched to NOHz mode on CPU #2
[    4.437947] Switched to NOHz mode on CPU #21
[    4.437952] Switched to NOHz mode on CPU #20
[    4.437960] Switched to NOHz mode on CPU #4
[    4.437966] Switched to NOHz mode on CPU #13
[    4.437971] Switched to NOHz mode on CPU #12
[    4.437983] Switched to NOHz mode on CPU #17
[    4.437987] Switched to NOHz mode on CPU #16
[    4.437989] Switched to NOHz mode on CPU #23
[    4.437994] Switched to NOHz mode on CPU #15
[    4.438003] Switched to NOHz mode on CPU #9
[    4.438007] Switched to NOHz mode on CPU #19
[    4.438010] Switched to NOHz mode on CPU #1
[    4.438014] Switched to NOHz mode on CPU #7
[    4.441892] AppArmor: AppArmor Filesystem Enabled
[    4.441922] pnp: PnP ACPI init
[    4.441941] ACPI: bus type pnp registered
[    4.442110] pnp 00:00: [bus 00-ff]
[    4.442113] pnp 00:00: [io  0x0cf8-0x0cff]
[    4.442116] pnp 00:00: [io  0x0000-0x0cf7 window]
[    4.442119] pnp 00:00: [io  0x0d00-0xffff window]
[    4.442122] pnp 00:00: [mem 0x000a0000-0x000bffff window]
[    4.442125] pnp 00:00: [mem 0xd0000000-0xfdffffff window]
[    4.442127] pnp 00:00: [mem 0xfed40000-0xfed44fff window]
[    4.442195] pnp 00:00: Plug and Play ACPI device, IDs PNP0a08 PNP0a03 (active)
[    4.442245] pnp 00:01: [io  0x0080-0x009f]
[    4.442248] pnp 00:01: [io  0x0000-0x001f]
[    4.442250] pnp 00:01: [io  0x00c0-0x00df]
[    4.442253] pnp 00:01: [dma 4]
[    4.442290] pnp 00:01: Plug and Play ACPI device, IDs PNP0200 (active)
[    4.442315] pnp 00:02: [io  0x00f0-0x00ff]
[    4.442325] pnp 00:02: [irq 13]
[    4.442362] pnp 00:02: Plug and Play ACPI device, IDs PNP0c04 (active)
[    4.442393] pnp 00:03: [io  0x0061]
[    4.442469] system 00:03: Plug and Play ACPI device, IDs PNP0c01 (active)
[    4.442495] pnp 00:04: [io  0x0070-0x007f]
[    4.442502] pnp 00:04: [irq 8]
[    4.442540] pnp 00:04: Plug and Play ACPI device, IDs PNP0b00 (active)
[    4.442741] pnp 00:05: [io  0x03f8-0x03ff]
[    4.442748] pnp 00:05: [irq 4]
[    4.442879] pnp 00:05: Plug and Play ACPI device, IDs PNP0501 (active)
[    4.443073] pnp 00:06: [io  0x02f8-0x02ff]
[    4.443080] pnp 00:06: [irq 3]
[    4.443207] pnp 00:06: Plug and Play ACPI device, IDs PNP0501 (active)
[    4.444236] pnp 00:07: [io  0x0800-0x087f]
[    4.444239] pnp 00:07: [io  0x00e0-0x00e7]
[    4.444241] pnp 00:07: [io  0x0880-0x08ff]
[    4.444243] pnp 00:07: [io  0x0900-0x091f]
[    4.444245] pnp 00:07: [io  0x0920-0x0923]
[    4.444248] pnp 00:07: [io  0x0924]
[    4.444250] pnp 00:07: [io  0x0c00-0x0c7f]
[    4.444252] pnp 00:07: [io  0x0ca0-0x0ca7]
[    4.444254] pnp 00:07: [io  0x0ca9-0x0cab]
[    4.444256] pnp 00:07: [io  0x0cad-0x0caf]
[    4.444259] pnp 00:07: [io  0x0060]
[    4.444261] pnp 00:07: [io  0x0064]
[    4.444347] system 00:07: [io  0x0800-0x087f] has been reserved
[    4.444350] system 00:07: [io  0x0880-0x08ff] has been reserved
[    4.444353] system 00:07: [io  0x0900-0x091f] has been reserved
[    4.444356] system 00:07: [io  0x0920-0x0923] has been reserved
[    4.444359] system 00:07: [io  0x0924] has been reserved
[    4.444362] system 00:07: [io  0x0c00-0x0c7f] has been reserved
[    4.444365] system 00:07: [io  0x0ca0-0x0ca7] has been reserved
[    4.444369] system 00:07: [io  0x0ca9-0x0cab] has been reserved
[    4.444372] system 00:07: [io  0x0cad-0x0caf] has been reserved
[    4.444376] system 00:07: Plug and Play ACPI device, IDs PNP0c01 (active)
[    4.444435] pnp 00:08: [io  0x0ca8]
[    4.444438] pnp 00:08: [io  0x0cac]
[    4.444440] pnp 00:08: [irq 0 disabled]
[    4.444508] system 00:08: [io  0x0ca8] has been reserved
[    4.444511] system 00:08: [io  0x0cac] has been reserved
[    4.444515] system 00:08: Plug and Play ACPI device, IDs IPI0001 PNP0c01 (active)
[    4.445296] pnp 00:09: [mem 0xe0000000-0xefffffff]
[    4.445369] system 00:09: [mem 0xe0000000-0xefffffff] has been reserved
[    4.445374] system 00:09: Plug and Play ACPI device, IDs PNP0c02 (active)
[    4.445431] pnp 00:0a: [mem 0xfed00000-0xfed003ff]
[    4.445473] pnp 00:0a: Plug and Play ACPI device, IDs PNP0103 (active)
[    4.445491] pnp 00:0b: [mem 0xfed90000-0xfed91fff]
[    4.445568] system 00:0b: [mem 0xfed90000-0xfed91fff] has been reserved
[    4.445572] system 00:0b: Plug and Play ACPI device, IDs PNP0c02 (active)
[    4.445787] pnp: PnP ACPI: found 12 devices
[    4.445789] ACPI: ACPI bus type pnp unregistered
[    4.452681] pci 0000:05:00.1: address space collision: [mem 0xde000000-0xde3fffff pref] conflicts with 0000:05:00.0 [mem 0xde000000-0xde3fffff pref]
[    4.452688] pci 0000:06:00.1: address space collision: [mem 0xdd000000-0xdd3fffff pref] conflicts with 0000:06:00.0 [mem 0xdd000000-0xdd3fffff pref]
[    4.452754] pci 0000:00:07.0: BAR 15: assigned [mem 0xd0000000-0xd07fffff pref]
[    4.452757] pci 0000:00:01.0: PCI bridge to [bus 01-01]
[    4.452760] pci 0000:00:01.0:   bridge window [io  disabled]
[    4.452765] pci 0000:00:01.0:   bridge window [mem 0xd8000000-0xdbffffff]
[    4.452769] pci 0000:00:01.0:   bridge window [mem pref disabled]
[    4.452775] pci 0000:00:03.0: PCI bridge to [bus 02-02]
[    4.452778] pci 0000:00:03.0:   bridge window [io  0xf000-0xffff]
[    4.452783] pci 0000:00:03.0:   bridge window [mem 0xdf100000-0xdf2fffff]
[    4.452787] pci 0000:00:03.0:   bridge window [mem pref disabled]
[    4.452794] pci 0000:03:00.0: BAR 15: assigned [mem 0xd0000000-0xd07fffff pref]
[    4.452798] pci 0000:04:02.0: BAR 15: assigned [mem 0xd0000000-0xd03fffff pref]
[    4.452802] pci 0000:04:04.0: BAR 15: assigned [mem 0xd0400000-0xd07fffff pref]
[    4.452820] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452837] pci 0000:05:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.452853] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452870] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452887] pci 0000:05:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452903] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452920] pci 0000:05:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.452936] pci 0000:05:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.452953] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452969] pci 0000:05:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.452986] pci 0000:05:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.452989] pci 0000:05:00.1: BAR 6: assigned [mem 0xd0000000-0xd03fffff pref]
[    4.453006] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453023] pci 0000:05:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453026] pci 0000:05:00.0: BAR 7: assigned [mem 0xde400000-0xde41ffff 64bit]
[    4.453035] pci 0000:05:00.0: BAR 7: set to [mem 0xde400000-0xde41ffff 64bit] (PCI address [0xde400000-0xde41ffff])
[    4.453052] pci 0000:05:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453069] pci 0000:05:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453072] pci 0000:05:00.0: BAR 10: assigned [mem 0xde420000-0xde43ffff 64bit]
[    4.453080] pci 0000:05:00.0: BAR 10: set to [mem 0xde420000-0xde43ffff 64bit] (PCI address [0xde420000-0xde43ffff])
[    4.453098] pci 0000:05:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453114] pci 0000:05:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453118] pci 0000:05:00.1: BAR 7: assigned [mem 0xde440000-0xde45ffff 64bit]
[    4.453126] pci 0000:05:00.1: BAR 7: set to [mem 0xde440000-0xde45ffff 64bit] (PCI address [0xde440000-0xde45ffff])
[    4.453143] pci 0000:05:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453159] pci 0000:05:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453163] pci 0000:05:00.1: BAR 10: assigned [mem 0xde460000-0xde47ffff 64bit]
[    4.453171] pci 0000:05:00.1: BAR 10: set to [mem 0xde460000-0xde47ffff 64bit] (PCI address [0xde460000-0xde47ffff])
[    4.453174] pci 0000:04:02.0: PCI bridge to [bus 05-05]
[    4.453178] pci 0000:04:02.0:   bridge window [io  0xe000-0xefff]
[    4.453185] pci 0000:04:02.0:   bridge window [mem 0xde000000-0xdeffffff]
[    4.453190] pci 0000:04:02.0:   bridge window [mem 0xd0000000-0xd03fffff pref]
[    4.453213] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453229] pci 0000:06:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453246] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453263] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453279] pci 0000:06:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453296] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453312] pci 0000:06:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453329] pci 0000:06:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453346] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453362] pci 0000:06:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453379] pci 0000:06:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453382] pci 0000:06:00.1: BAR 6: assigned [mem 0xd0400000-0xd07fffff pref]
[    4.453399] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453415] pci 0000:06:00.0: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453418] pci 0000:06:00.0: BAR 7: assigned [mem 0xdd400000-0xdd41ffff 64bit]
[    4.453427] pci 0000:06:00.0: BAR 7: set to [mem 0xdd400000-0xdd41ffff 64bit] (PCI address [0xdd400000-0xdd41ffff])
[    4.453444] pci 0000:06:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453460] pci 0000:06:00.0: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453464] pci 0000:06:00.0: BAR 10: assigned [mem 0xdd420000-0xdd43ffff 64bit]
[    4.453472] pci 0000:06:00.0: BAR 10: set to [mem 0xdd420000-0xdd43ffff 64bit] (PCI address [0xdd420000-0xdd43ffff])
[    4.453489] pci 0000:06:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453506] pci 0000:06:00.1: reg 184: [mem 0x00000000-0x00003fff 64bit]
[    4.453509] pci 0000:06:00.1: BAR 7: assigned [mem 0xdd440000-0xdd45ffff 64bit]
[    4.453517] pci 0000:06:00.1: BAR 7: set to [mem 0xdd440000-0xdd45ffff 64bit] (PCI address [0xdd440000-0xdd45ffff])
[    4.453534] pci 0000:06:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453551] pci 0000:06:00.1: reg 190: [mem 0x00000000-0x00003fff 64bit]
[    4.453554] pci 0000:06:00.1: BAR 10: assigned [mem 0xdd460000-0xdd47ffff 64bit]
[    4.453562] pci 0000:06:00.1: BAR 10: set to [mem 0xdd460000-0xdd47ffff 64bit] (PCI address [0xdd460000-0xdd47ffff])
[    4.453566] pci 0000:04:04.0: PCI bridge to [bus 06-06]
[    4.453570] pci 0000:04:04.0:   bridge window [io  0xd000-0xdfff]
[    4.453576] pci 0000:04:04.0:   bridge window [mem 0xdd000000-0xddffffff]
[    4.453582] pci 0000:04:04.0:   bridge window [mem 0xd0400000-0xd07fffff pref]
[    4.453590] pci 0000:03:00.0: PCI bridge to [bus 04-06]
[    4.453593] pci 0000:03:00.0:   bridge window [io  0xd000-0xefff]
[    4.453600] pci 0000:03:00.0:   bridge window [mem 0xdd000000-0xdeffffff]
[    4.453606] pci 0000:03:00.0:   bridge window [mem 0xd0000000-0xd07fffff pref]
[    4.453614] pci 0000:00:07.0: PCI bridge to [bus 03-06]
[    4.453617] pci 0000:00:07.0:   bridge window [io  0xd000-0xefff]
[    4.453622] pci 0000:00:07.0:   bridge window [mem 0xdd000000-0xdeffffff]
[    4.453626] pci 0000:00:07.0:   bridge window [mem 0xd0000000-0xd07fffff pref]
[    4.453645] pci 0000:07:03.0: BAR 6: assigned [mem 0xdc000000-0xdc00ffff pref]
[    4.453648] pci 0000:00:1e.0: PCI bridge to [bus 07-07]
[    4.453650] pci 0000:00:1e.0:   bridge window [io  disabled]
[    4.453656] pci 0000:00:1e.0:   bridge window [mem 0xdc000000-0xdcffffff]
[    4.453660] pci 0000:00:1e.0:   bridge window [mem 0xd7800000-0xd7ffffff 64bit pref]
[    4.453687] pci 0000:00:01.0: PCI INT A -> GSI 53 (level, low) -> IRQ 53
[    4.453692] pci 0000:00:01.0: setting latency timer to 64
[    4.453699] pci 0000:00:03.0: PCI INT A -> GSI 53 (level, low) -> IRQ 53
[    4.453703] pci 0000:00:03.0: setting latency timer to 64
[    4.453710] pci 0000:00:07.0: PCI INT A -> GSI 53 (level, low) -> IRQ 53
[    4.453714] pci 0000:00:07.0: setting latency timer to 64
[    4.453722] pci 0000:03:00.0: setting latency timer to 64
[    4.453731] pci 0000:04:02.0: setting latency timer to 64
[    4.453740] pci 0000:04:04.0: setting latency timer to 64
[    4.453748] pci 0000:00:1e.0: setting latency timer to 64
[    4.453752] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    4.453755] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    4.453758] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    4.453761] pci_bus 0000:00: resource 7 [mem 0xd0000000-0xfdffffff]
[    4.453763] pci_bus 0000:00: resource 8 [mem 0xfed40000-0xfed44fff]
[    4.453766] pci_bus 0000:01: resource 1 [mem 0xd8000000-0xdbffffff]
[    4.453769] pci_bus 0000:02: resource 0 [io  0xf000-0xffff]
[    4.453772] pci_bus 0000:02: resource 1 [mem 0xdf100000-0xdf2fffff]
[    4.453775] pci_bus 0000:03: resource 0 [io  0xd000-0xefff]
[    4.453777] pci_bus 0000:03: resource 1 [mem 0xdd000000-0xdeffffff]
[    4.453780] pci_bus 0000:03: resource 2 [mem 0xd0000000-0xd07fffff pref]
[    4.453783] pci_bus 0000:04: resource 0 [io  0xd000-0xefff]
[    4.453786] pci_bus 0000:04: resource 1 [mem 0xdd000000-0xdeffffff]
[    4.453789] pci_bus 0000:04: resource 2 [mem 0xd0000000-0xd07fffff pref]
[    4.453791] pci_bus 0000:05: resource 0 [io  0xe000-0xefff]
[    4.453794] pci_bus 0000:05: resource 1 [mem 0xde000000-0xdeffffff]
[    4.453797] pci_bus 0000:05: resource 2 [mem 0xd0000000-0xd03fffff pref]
[    4.453800] pci_bus 0000:06: resource 0 [io  0xd000-0xdfff]
[    4.453802] pci_bus 0000:06: resource 1 [mem 0xdd000000-0xddffffff]
[    4.453805] pci_bus 0000:06: resource 2 [mem 0xd0400000-0xd07fffff pref]
[    4.453808] pci_bus 0000:07: resource 1 [mem 0xdc000000-0xdcffffff]
[    4.453811] pci_bus 0000:07: resource 2 [mem 0xd7800000-0xd7ffffff 64bit pref]
[    4.453814] pci_bus 0000:07: resource 4 [io  0x0000-0x0cf7]
[    4.453816] pci_bus 0000:07: resource 5 [io  0x0d00-0xffff]
[    4.453819] pci_bus 0000:07: resource 6 [mem 0x000a0000-0x000bffff]
[    4.453822] pci_bus 0000:07: resource 7 [mem 0xd0000000-0xfdffffff]
[    4.453825] pci_bus 0000:07: resource 8 [mem 0xfed40000-0xfed44fff]
[    4.453875] NET: Registered protocol family 2
[    4.454212] IP route cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    4.455620] TCP established hash table entries: 524288 (order: 11, 8388608 bytes)
[    4.457676] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes)
[    4.457887] TCP: Hash tables configured (established 524288 bind 65536)
[    4.457890] TCP reno registered
[    4.457909] UDP hash table entries: 4096 (order: 5, 131072 bytes)
[    4.457968] UDP-Lite hash table entries: 4096 (order: 5, 131072 bytes)
[    4.458224] NET: Registered protocol family 1
[    4.473748] pci 0000:07:03.0: Boot video device
[    4.473753] PCI: CLS 64 bytes, default 64
[    4.473755] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    4.473758] Placing 64MB software IO TLB between ffff8800b8600000 - ffff8800bc600000
[    4.473761] software IO TLB at phys 0xb8600000 - 0xbc600000
[    4.475606] audit: initializing netlink socket (disabled)
[    4.475616] type=2000 audit(1323195306.130:1): initialized
[    4.498417] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    4.500820] VFS: Disk quotas dquot_6.5.2
[    4.500912] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    4.501784] fuse init (API version 7.16)
[    4.501903] msgmni has been set to 11653
[    4.502185] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253)
[    4.502218] io scheduler noop registered
[    4.502221] io scheduler deadline registered (default)
[    4.502276] io scheduler cfq registered
[    4.502526] pcieport 0000:03:00.0: setting latency timer to 64
[    4.502613] pcieport 0000:04:02.0: setting latency timer to 64
[    4.502684] pcieport 0000:04:02.0: irq 72 for MSI/MSI-X
[    4.502755] pcieport 0000:04:04.0: setting latency timer to 64
[    4.502814] pcieport 0000:04:04.0: irq 73 for MSI/MSI-X
[    4.502909] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    4.502938] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    4.502991] intel_idle: MWAIT substates: 0x1120
[    4.502993] intel_idle: v0.4 model 0x2C
[    4.502995] intel_idle: lapic_timer_reliable_states 0xffffffff
[    4.503266] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input0
[    4.503272] ACPI: Power Button [PWRF]
[    4.503372] ACPI: acpi_idle yielding to intel_idle
[    4.506474] ERST: Error Record Serialization Table (ERST) support is initialized.
[    4.506558] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    4.527072] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    4.546583] Freeing initrd memory: 9140k freed
[    4.693573] serial8250: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    4.756111] 00:05: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A
[    4.776739] 00:06: ttyS1 at I/O 0x2f8 (irq = 3) is a 16550A
[    4.777116] Linux agpgart interface v0.103
[    4.778857] brd: module loaded
[    4.779645] loop: module loaded
[    4.779769] i2c-core: driver [adp5520] using legacy suspend method
[    4.779772] i2c-core: driver [adp5520] using legacy resume method
[    4.779895] ata_piix 0000:00:1f.2: version 2.13
[    4.779917] ata_piix 0000:00:1f.2: PCI INT C -> GSI 23 (level, low) -> IRQ 23
[    4.779922] ata_piix 0000:00:1f.2: MAP [ P0 P2 P1 P3 ]
[    4.932464] ata_piix 0000:00:1f.2: setting latency timer to 64
[    4.932820] scsi0 : ata_piix
[    4.932932] scsi1 : ata_piix
[    4.932986] ata1: SATA max UDMA/133 cmd 0xc8e0 ctl 0xc8d0 bmdma 0xcc00 irq 23
[    4.932991] ata2: SATA max UDMA/133 cmd 0xc8e8 ctl 0xc8d4 bmdma 0xcc08 irq 23
[    4.933018] ata_piix 0000:00:1f.5: PCI INT D -> GSI 22 (level, low) -> IRQ 22
[    4.933023] ata_piix 0000:00:1f.5: MAP [ P0 -- P1 -- ]
[    5.092057] ata_piix 0000:00:1f.5: setting latency timer to 64
[    5.092319] scsi2 : ata_piix
[    5.092395] scsi3 : ata_piix
[    5.092446] ata3: SATA max UDMA/133 cmd 0xc8f0 ctl 0xc8d8 bmdma 0xcc20 irq 22
[    5.092451] ata4: SATA max UDMA/133 cmd 0xc8f8 ctl 0xc8dc bmdma 0xcc28 irq 22
[    5.092843] Fixed MDIO Bus: probed
[    5.092878] PPP generic driver version 2.4.2
[    5.092927] tun: Universal TUN/TAP device driver, 1.6
[    5.092930] tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com>
[    5.093051] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    5.093076] ehci_hcd 0000:00:1a.7: PCI INT C -> GSI 19 (level, low) -> IRQ 19
[    5.093113] ehci_hcd 0000:00:1a.7: setting latency timer to 64
[    5.093117] ehci_hcd 0000:00:1a.7: EHCI Host Controller
[    5.093171] ehci_hcd 0000:00:1a.7: new USB bus registered, assigned bus number 1
[    5.093250] ehci_hcd 0000:00:1a.7: debug port 1
[    5.097115] ehci_hcd 0000:00:1a.7: cache line size of 64 is not supported
[    5.097135] ehci_hcd 0000:00:1a.7: irq 19, io mem 0xdf0fe000
[    5.112002] ehci_hcd 0000:00:1a.7: USB 2.0 started, EHCI 1.00
[    5.112197] hub 1-0:1.0: USB hub found
[    5.112202] hub 1-0:1.0: 4 ports detected
[    5.112294] ehci_hcd 0000:00:1d.7: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[    5.112310] ehci_hcd 0000:00:1d.7: setting latency timer to 64
[    5.112314] ehci_hcd 0000:00:1d.7: EHCI Host Controller
[    5.112375] ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 2
[    5.112450] ehci_hcd 0000:00:1d.7: debug port 1
[    5.116324] ehci_hcd 0000:00:1d.7: cache line size of 64 is not supported
[    5.116345] ehci_hcd 0000:00:1d.7: irq 21, io mem 0xdf0ff000
[    5.131949] ehci_hcd 0000:00:1d.7: USB 2.0 started, EHCI 1.00
[    5.132100] hub 2-0:1.0: USB hub found
[    5.132104] hub 2-0:1.0: 4 ports detected
[    5.132192] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    5.132207] uhci_hcd: USB Universal Host Controller Interface driver
[    5.132277] uhci_hcd 0000:00:1a.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17
[    5.132284] uhci_hcd 0000:00:1a.0: setting latency timer to 64
[    5.132288] uhci_hcd 0000:00:1a.0: UHCI Host Controller
[    5.132336] uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 3
[    5.132402] uhci_hcd 0000:00:1a.0: irq 17, io base 0x0000cc40
[    5.132572] hub 3-0:1.0: USB hub found
[    5.132576] hub 3-0:1.0: 2 ports detected
[    5.132661] uhci_hcd 0000:00:1a.1: PCI INT B -> GSI 18 (level, low) -> IRQ 18
[    5.132667] uhci_hcd 0000:00:1a.1: setting latency timer to 64
[    5.132671] uhci_hcd 0000:00:1a.1: UHCI Host Controller
[    5.132718] uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 4
[    5.132784] uhci_hcd 0000:00:1a.1: irq 18, io base 0x0000cc60
[    5.132951] hub 4-0:1.0: USB hub found
[    5.132956] hub 4-0:1.0: 2 ports detected
[    5.133032] uhci_hcd 0000:00:1d.0: PCI INT A -> GSI 21 (level, low) -> IRQ 21
[    5.133038] uhci_hcd 0000:00:1d.0: setting latency timer to 64
[    5.133042] uhci_hcd 0000:00:1d.0: UHCI Host Controller
[    5.133088] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 5
[    5.141963] uhci_hcd 0000:00:1d.0: irq 21, io base 0x0000cc80
[    5.142132] hub 5-0:1.0: USB hub found
[    5.142136] hub 5-0:1.0: 2 ports detected
[    5.142232] uhci_hcd 0000:00:1d.1: PCI INT B -> GSI 20 (level, low) -> IRQ 20
[    5.142238] uhci_hcd 0000:00:1d.1: setting latency timer to 64
[    5.142242] uhci_hcd 0000:00:1d.1: UHCI Host Controller
[    5.142290] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 6
[    5.142356] uhci_hcd 0000:00:1d.1: irq 20, io base 0x0000cca0
[    5.142523] hub 6-0:1.0: USB hub found
[    5.142528] hub 6-0:1.0: 2 ports detected
[    5.142601] uhci_hcd 0000:00:1d.2: PCI INT C -> GSI 21 (level, low) -> IRQ 21
[    5.142608] uhci_hcd 0000:00:1d.2: setting latency timer to 64
[    5.142611] uhci_hcd 0000:00:1d.2: UHCI Host Controller
[    5.142657] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 7
[    5.142714] uhci_hcd 0000:00:1d.2: irq 21, io base 0x0000ccc0
[    5.142880] hub 7-0:1.0: USB hub found
[    5.142885] hub 7-0:1.0: 2 ports detected
[    5.142960] uhci_hcd 0000:00:1d.3: PCI INT D -> GSI 20 (level, low) -> IRQ 20
[    5.142967] uhci_hcd 0000:00:1d.3: setting latency timer to 64
[    5.142970] uhci_hcd 0000:00:1d.3: UHCI Host Controller
[    5.143021] uhci_hcd 0000:00:1d.3: new USB bus registered, assigned bus number 8
[    5.143077] uhci_hcd 0000:00:1d.3: irq 20, io base 0x0000cce0
[    5.143243] hub 8-0:1.0: USB hub found
[    5.143254] hub 8-0:1.0: 2 ports detected
[    5.143390] i8042: PNP: No PS/2 controller found. Probing ports directly.
[    5.146098] serio: i8042 KBD port at 0x60,0x64 irq 1
[    5.146107] serio: i8042 AUX port at 0x60,0x64 irq 12
[    5.146252] mousedev: PS/2 mouse device common for all mice
[    5.146365] rtc_cmos 00:04: RTC can wake from S4
[    5.146524] rtc_cmos 00:04: rtc core: registered rtc_cmos as rtc0
[    5.146552] rtc0: alarms up to one day, y3k, 242 bytes nvram, hpet irqs
[    5.146713] device-mapper: uevent: version 1.0.3
[    5.146830] device-mapper: ioctl: 4.19.1-ioctl (2011-01-07) initialised: dm-devel@redhat.com
[    5.146915] device-mapper: multipath: version 1.2.0 loaded
[    5.146918] device-mapper: multipath round-robin: version 1.0.0 loaded
[    5.147797] cpuidle: using governor ladder
[    5.148942] cpuidle: using governor menu
[    5.149295] TCP cubic registered
[    5.149464] NET: Registered protocol family 10
[    5.150281] NET: Registered protocol family 17
[    5.150302] Registering the dns_resolver key type
[    5.150594] PM: Hibernation image not present or could not be loaded.
[    5.150607] registered taskstats version 1
[    5.151173]   Magic number: 7:117:291
[    5.151226] tty tty24: hash matches
[    5.152327] rtc_cmos 00:04: setting system clock to 2011-12-06 18:15:07 UTC (1323195307)
[    5.152330] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[    5.152332] EDD information not available.
[    5.431277] usb 1-3: new high speed USB device using ehci_hcd and address 2
[    5.471159] Refined TSC clocksource calibration: 2659.999 MHz.
[    5.471164] Switching to clocksource tsc
[    5.581562] hub 1-3:1.0: USB hub found
[    5.581771] hub 1-3:1.0: 4 ports detected
[    5.600867] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    5.620922] ata3.00: ATAPI: TEAC DVD-ROM DV-28SW, R.2A, max UDMA/100
[    5.660833] ata3.00: configured for UDMA/100
[    5.820303] usb 2-3: new high speed USB device using ehci_hcd and address 3
[    5.999834] ata2.00: failed to resume link (SControl 0)
[    6.159445] ata4: failed to resume link (SControl 0)
[    6.170224] ata4: SATA link down (SStatus 4 SControl 0)
[    6.249206] usb 5-2: new full speed USB device using uhci_hcd and address 2
[    6.348976] ata1.01: failed to resume link (SControl 0)
[    6.359784] ata1.00: SATA link down (SStatus 0 SControl 300)
[    6.359798] ata1.01: SATA link down (SStatus 0 SControl 0)
[    7.067173] ata2.01: failed to resume link (SControl 0)
[    7.077957] ata2.00: SATA link down (SStatus 0 SControl 0)
[    7.077971] ata2.01: SATA link down (SStatus 0 SControl 0)
[    7.087919] scsi 2:0:0:0: CD-ROM            TEAC     DVD-ROM DV-28SW  R.2A PQ: 0 ANSI: 5
[    7.100009] sr0: scsi3-mmc drive: 24x/24x cd/rw xa/form2 cdda tray
[    7.100013] cdrom: Uniform CD-ROM driver Revision: 3.20
[    7.100145] sr 2:0:0:0: Attached scsi CD-ROM sr0
[    7.100215] sr 2:0:0:0: Attached scsi generic sg0 type 5
[    7.104816] Freeing unused kernel memory: 888k freed
[    7.105003] Write protecting the kernel read-only data: 10240k
[    7.110696] Freeing unused kernel memory: 112k freed
[    7.121056] Freeing unused kernel memory: 1436k freed
[    7.142274] udev: starting version 151
[    7.142443] udevd (144): /proc/144/oom_adj is deprecated, please use /proc/144/oom_score_adj instead.
[    7.166251] dca service started, version 1.12.1
[    7.185745] usbcore: registered new interface driver uas
[    7.191586] Intel(R) Gigabit Ethernet Network Driver - version 2.1.0-k2
[    7.191589] Copyright (c) 2007-2009 Intel Corporation.
[    7.191639] igb 0000:05:00.0: PCI INT A -> GSI 47 (level, low) -> IRQ 47
[    7.191652] igb 0000:05:00.0: setting latency timer to 64
[    7.191963] igb 0000:05:00.0: irq 74 for MSI/MSI-X
[    7.191971] igb 0000:05:00.0: irq 75 for MSI/MSI-X
[    7.191980] igb 0000:05:00.0: irq 76 for MSI/MSI-X
[    7.191988] igb 0000:05:00.0: irq 77 for MSI/MSI-X
[    7.191996] igb 0000:05:00.0: irq 78 for MSI/MSI-X
[    7.192004] igb 0000:05:00.0: irq 79 for MSI/MSI-X
[    7.192012] igb 0000:05:00.0: irq 80 for MSI/MSI-X
[    7.192020] igb 0000:05:00.0: irq 81 for MSI/MSI-X
[    7.192028] igb 0000:05:00.0: irq 82 for MSI/MSI-X
[    7.192085] igb 0000:05:00.0: 0 vfs allocated
[    7.199436] Initializing USB Mass Storage driver...
[    7.199730] scsi4 : usb-storage 2-3:1.0
[    7.200110] scsi5 : usb-storage 2-3:1.1
[    7.200302] usbcore: registered new interface driver usb-storage
[    7.200305] USB Mass Storage support registered.
[    7.210056] input: Avocent USB Composite Device-0 as /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.0/input/input1
[    7.210199] generic-usb 0003:0624:0248.0001: input,hidraw0: USB HID v1.00 Keyboard [Avocent USB Composite Device-0] on usb-0000:00:1d.0-2/input0
[    7.214005] input: Avocent USB Composite Device-0 as /devices/pci0000:00/0000:00:1d.0/usb5/5-2/5-2:1.1/input/input2
[    7.214193] generic-usb 0003:0624:0248.0002: input,hidraw1: USB HID v1.00 Mouse [Avocent USB Composite Device-0] on usb-0000:00:1d.0-2/input1
[    7.214216] usbcore: registered new interface driver usbhid
[    7.214220] usbhid: USB HID core driver
[    7.227801] Fusion MPT base driver 3.04.18
[    7.227804] Copyright (c) 1999-2008 LSI Corporation
[    7.252188] Fusion MPT SAS Host driver 3.04.18
[    7.252230] mptsas 0000:02:00.0: PCI INT A -> GSI 32 (level, low) -> IRQ 32
[    7.252426] mptbase: ioc0: Initiating bringup
[    7.437214] igb 0000:05:00.0: Intel(R) Gigabit Ethernet Network Connection
[    7.437219] igb 0000:05:00.0: eth0: (PCIe:2.5Gb/s:Width x4) 00:1b:21:c9:77:10
[    7.437543] igb 0000:05:00.0: eth0: PBA No: G18771-002
[    7.437546] igb 0000:05:00.0: Using MSI-X interrupts. 8 rx queue(s), 8 tx queue(s)
[    7.437574] igb 0000:05:00.1: PCI INT B -> GSI 46 (level, low) -> IRQ 46
[    7.437583] igb 0000:05:00.1: setting latency timer to 64
[    7.438948] igb 0000:05:00.1: irq 83 for MSI/MSI-X
[    7.438957] igb 0000:05:00.1: irq 84 for MSI/MSI-X
[    7.438965] igb 0000:05:00.1: irq 85 for MSI/MSI-X
[    7.438973] igb 0000:05:00.1: irq 86 for MSI/MSI-X
[    7.438981] igb 0000:05:00.1: irq 87 for MSI/MSI-X
[    7.438989] igb 0000:05:00.1: irq 88 for MSI/MSI-X
[    7.438997] igb 0000:05:00.1: irq 89 for MSI/MSI-X
[    7.439004] igb 0000:05:00.1: irq 90 for MSI/MSI-X
[    7.439012] igb 0000:05:00.1: irq 91 for MSI/MSI-X
[    7.439066] igb 0000:05:00.1: 0 vfs allocated
[    7.686588] igb 0000:05:00.1: Intel(R) Gigabit Ethernet Network Connection
[    7.686593] igb 0000:05:00.1: eth1: (PCIe:2.5Gb/s:Width x4) 00:1b:21:c9:77:11
[    7.686918] igb 0000:05:00.1: eth1: PBA No: G18771-002
[    7.686921] igb 0000:05:00.1: Using MSI-X interrupts. 8 rx queue(s), 8 tx queue(s)
[    7.686948] igb 0000:06:00.0: PCI INT A -> GSI 38 (level, low) -> IRQ 38
[    7.686957] igb 0000:06:00.0: setting latency timer to 64
[    7.687257] igb 0000:06:00.0: irq 92 for MSI/MSI-X
[    7.687265] igb 0000:06:00.0: irq 93 for MSI/MSI-X
[    7.687274] igb 0000:06:00.0: irq 94 for MSI/MSI-X
[    7.687282] igb 0000:06:00.0: irq 95 for MSI/MSI-X
[    7.687290] igb 0000:06:00.0: irq 96 for MSI/MSI-X
[    7.687298] igb 0000:06:00.0: irq 97 for MSI/MSI-X
[    7.687306] igb 0000:06:00.0: irq 98 for MSI/MSI-X
[    7.687317] igb 0000:06:00.0: irq 99 for MSI/MSI-X
[    7.687325] igb 0000:06:00.0: irq 100 for MSI/MSI-X
[    7.687379] igb 0000:06:00.0: 0 vfs allocated
[    7.936006] igb 0000:06:00.0: Intel(R) Gigabit Ethernet Network Connection
[    7.936011] igb 0000:06:00.0: eth2: (PCIe:2.5Gb/s:Width x4) 00:1b:21:c9:77:14
[    7.936336] igb 0000:06:00.0: eth2: PBA No: G18771-002
[    7.936339] igb 0000:06:00.0: Using MSI-X interrupts. 8 rx queue(s), 8 tx queue(s)
[    7.936367] igb 0000:06:00.1: PCI INT B -> GSI 45 (level, low) -> IRQ 45
[    7.936376] igb 0000:06:00.1: setting latency timer to 64
[    7.936676] igb 0000:06:00.1: irq 101 for MSI/MSI-X
[    7.936685] igb 0000:06:00.1: irq 102 for MSI/MSI-X
[    7.936693] igb 0000:06:00.1: irq 103 for MSI/MSI-X
[    7.936701] igb 0000:06:00.1: irq 104 for MSI/MSI-X
[    7.936709] igb 0000:06:00.1: irq 105 for MSI/MSI-X
[    7.936717] igb 0000:06:00.1: irq 106 for MSI/MSI-X
[    7.936725] igb 0000:06:00.1: irq 107 for MSI/MSI-X
[    7.936734] igb 0000:06:00.1: irq 108 for MSI/MSI-X
[    7.936742] igb 0000:06:00.1: irq 109 for MSI/MSI-X
[    7.936798] igb 0000:06:00.1: 0 vfs allocated
[    8.185426] igb 0000:06:00.1: Intel(R) Gigabit Ethernet Network Connection
[    8.185431] igb 0000:06:00.1: eth3: (PCIe:2.5Gb/s:Width x4) 00:1b:21:c9:77:15
[    8.185756] igb 0000:06:00.1: eth3: PBA No: G18771-002
[    8.185759] igb 0000:06:00.1: Using MSI-X interrupts. 8 rx queue(s), 8 tx queue(s)
[    8.199747] scsi 5:0:0:0: CD-ROM            iDRAC    Virtual CD       0323 PQ: 0 ANSI: 0
[    8.201390] scsi 4:0:0:0: Direct-Access     iDRAC    LCDRIVE          0323 PQ: 0 ANSI: 0 CCS
[    8.202814] sd 4:0:0:0: Attached scsi generic sg1 type 0
[    8.202955] scsi 5:0:0:1: Direct-Access     iDRAC    Virtual Floppy   0323 PQ: 0 ANSI: 0 CCS
[    8.205005] sd 4:0:0:0: [sda] Attached SCSI removable disk
[    8.310830] sr1: scsi3-mmc drive: 0x/0x cd/rw caddy
[    8.310991] sr 5:0:0:0: Attached scsi CD-ROM sr1
[    8.311098] sr 5:0:0:0: Attached scsi generic sg2 type 5
[    8.311585] sd 5:0:0:1: Attached scsi generic sg3 type 0
[    8.314018] sd 5:0:0:1: [sdb] Attached SCSI removable disk
[    8.832747] ioc0: LSISAS1068E B3: Capabilities={Initiator}
[    8.832772] mptsas 0000:02:00.0: setting latency timer to 64
[   26.213964] scsi6 : ioc0: LSISAS1068E B3, FwRev=00192f00h, Ports=1, MaxQ=266, IRQ=32
[   26.251156] mptsas: ioc0: attaching sata device: fw_channel 0, fw_id 9, phy 0, sas_addr 0x1221000000000000
[   26.254164] scsi 6:0:0:0: Direct-Access     ATA      WDC WD2502ABYS-1 3B05 PQ: 0 ANSI: 5
[   26.256186] scsi 6:0:0:0: Attached scsi generic sg4 type 0
[   26.257938] mptsas: ioc0: attaching sata device: fw_channel 0, fw_id 1, phy 1, sas_addr 0x1221000001000000
[   26.260875] scsi 6:0:1:0: Direct-Access     ATA      WDC WD2502ABYS-1 3B05 PQ: 0 ANSI: 5
[   26.262975] scsi 6:0:1:0: Attached scsi generic sg5 type 0
[   26.264753] mptsas: ioc0: attaching raid volume, channel 1, id 0
[   26.265591] scsi 6:1:0:0: Direct-Access     Dell     VIRTUAL DISK     1028 PQ: 0 ANSI: 5
[   26.273007] sd 6:1:0:0: Attached scsi generic sg6 type 0
[   26.273176] sd 6:1:0:0: [sdc] 487063552 512-byte logical blocks: (249 GB/232 GiB)
[   26.273907] sd 6:1:0:0: [sdc] Write Protect is off
[   26.273911] sd 6:1:0:0: [sdc] Mode Sense: 03 00 00 08
[   26.274392] sd 6:1:0:0: [sdc] Got wrong page
[   26.274395] sd 6:1:0:0: [sdc] Assuming drive cache: write through
[   26.275999] sd 6:1:0:0: [sdc] Got wrong page
[   26.276002] sd 6:1:0:0: [sdc] Assuming drive cache: write through
[   26.291530]  sdc: sdc1 sdc2 sdc3
[   26.294276] sd 6:1:0:0: [sdc] Got wrong page
[   26.294279] sd 6:1:0:0: [sdc] Assuming drive cache: write through
[   26.294282] sd 6:1:0:0: [sdc] Attached SCSI disk
[   26.483526] EXT4-fs (sdc3): INFO: recovery required on readonly filesystem
[   26.483530] EXT4-fs (sdc3): write access will be enabled during recovery
[   26.536450] EXT4-fs (sdc3): recovery complete
[   26.537124] EXT4-fs (sdc3): mounted filesystem with ordered data mode. Opts: (null)
[   27.938762] udev: starting version 151
[   27.940560] Adding 4882428k swap on /dev/sdc2.  Priority:-1 extents:1 across:4882428k 
[   27.956637] lp: driver loaded but no devices found
[   27.962271] bnx2: Broadcom NetXtreme II Gigabit Ethernet Driver bnx2 v2.0.21 (Dec 23, 2010)
[   27.962313] bnx2 0000:01:00.0: PCI INT A -> GSI 36 (level, low) -> IRQ 36
[   27.962322] bnx2 0000:01:00.0: setting latency timer to 64
[   27.963267] ACPI Error: No handler for Region [IPMI] (ffff8801a8c29240) [IPMI] (20110112/evregion-369)
[   27.963277] ACPI Error: Region IPMI(0x7) has no handler (20110112/exfldio-292)
[   27.963286] ACPI Error: Method parse/execution failed [\_SB_.PMI0._GHL] (Node ffff8801a8c28b18), AE_NOT_EXIST (20110112/psparse-536)
[   27.963303] ACPI Error: Method parse/execution failed [\_SB_.PMI0._PMC] (Node ffff8801a8c28a78), AE_NOT_EXIST (20110112/psparse-536)
[   27.963322] ACPI Exception: AE_NOT_EXIST, Evaluating _PMC (20110112/power_meter-773)
[   27.981894] dcdbas dcdbas: Dell Systems Management Base Driver (version 5.6.0-3.2)
[   28.004349] EDAC MC: Ver: 2.1.0 Nov 30 2011
[   28.007943] EDAC i7core: Driver loaded.
[   28.020502] type=1400 audit(1323195330.413:2): apparmor="STATUS" operation="profile_load" name="/sbin/dhclient3" pid=588 comm="apparmor_parser"
[   28.021188] type=1400 audit(1323195330.413:3): apparmor="STATUS" operation="profile_load" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=588 comm="apparmor_parser"
[   28.021572] type=1400 audit(1323195330.413:4): apparmor="STATUS" operation="profile_load" name="/usr/lib/connman/scripts/dhclient-script" pid=588 comm="apparmor_parser"
[   28.105123] udev: renamed network interface eth2 to eth4
[   28.111062] EXT4-fs (sdc3): re-mounted. Opts: errors=remount-ro
[   28.144155] EXT4-fs (sdc1): mounted filesystem with ordered data mode. Opts: (null)
[   28.154996] udev: renamed network interface eth3 to eth5
[   28.155930] bnx2 0000:01:00.0: eth0: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem d8000000, IRQ 36, node addr 78:2b:cb:51:4b:ad
[   28.155977] bnx2 0000:01:00.1: PCI INT B -> GSI 48 (level, low) -> IRQ 48
[   28.155985] bnx2 0000:01:00.1: setting latency timer to 64
[   28.240937] type=1400 audit(1323195330.633:5): apparmor="STATUS" operation="profile_load" name="/usr/sbin/tcpdump" pid=714 comm="apparmor_parser"
[   28.241249] type=1400 audit(1323195330.633:6): apparmor="STATUS" operation="profile_replace" name="/sbin/dhclient3" pid=713 comm="apparmor_parser"
[   28.241938] type=1400 audit(1323195330.633:7): apparmor="STATUS" operation="profile_replace" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=713 comm="apparmor_parser"
[   28.242325] type=1400 audit(1323195330.633:8): apparmor="STATUS" operation="profile_replace" name="/usr/lib/connman/scripts/dhclient-script" pid=713 comm="apparmor_parser"
[   28.354541] udev: renamed network interface eth0_rename to eth2
[   28.355550] bnx2 0000:01:00.1: eth1: Broadcom NetXtreme II BCM5716 1000Base-T (C0) PCI Express found at mem da000000, IRQ 48, node addr 78:2b:cb:51:4b:ae
[   28.434397] udev: renamed network interface eth1_rename to eth3
[   28.485032] bonding: Ethernet Channel Bonding Driver: v3.7.0 (June 2, 2010)
[   28.485035] bonding: Warning: either miimon or arp_interval and arp_ip_target module parameters must be specified, otherwise bonding will not detect link failures! see bonding.txt for details.
[   28.491378] bonding: bond0: doing slave updates when interface is down.
[   28.491383] bonding: bond0: Adding slave eth2.
[   28.491385] bonding: bond0: master_dev is not up in bond_enslave
[   28.574733] bonding: bond0: Warning: failed to get speed and duplex from eth2, assumed to be 100Mb/sec and Full.
[   28.574746] bonding: bond0: enslaving eth2 as an active interface with an up link.
[   28.578294] bonding: bond0: doing slave updates when interface is down.
[   28.578299] bonding: bond0: Adding slave eth3.
[   28.578301] bonding: bond0: master_dev is not up in bond_enslave
[   28.661539] bonding: bond0: Warning: failed to get speed and duplex from eth3, assumed to be 100Mb/sec and Full.
[   28.661549] bonding: bond0: enslaving eth3 as an active interface with an up link.
[   28.662514] bonding: bond0: setting mode to balance-xor (2).
[   28.662556] bonding: bond0: Setting MII monitoring interval to 100.
[   28.707169] bonding: bond1 is being created...
[   28.711478] bonding: bond1: doing slave updates when interface is down.
[   28.711483] bonding: bond1: Adding slave eth4.
[   28.711485] bonding: bond1: master_dev is not up in bond_enslave
[   28.794818] bonding: bond1: Warning: failed to get speed and duplex from eth4, assumed to be 100Mb/sec and Full.
[   28.794830] bonding: bond1: enslaving eth4 as an active interface with an up link.
[   28.798780] bonding: bond1: doing slave updates when interface is down.
[   28.798785] bonding: bond1: Adding slave eth5.
[   28.798787] bonding: bond1: master_dev is not up in bond_enslave
[   28.882047] bonding: bond1: Warning: failed to get speed and duplex from eth5, assumed to be 100Mb/sec and Full.
[   28.882057] bonding: bond1: enslaving eth5 as an active interface with an up link.
[   28.883081] bonding: bond1: setting mode to balance-xor (2).
[   28.883127] bonding: bond1: Setting MII monitoring interval to 100.
[   28.974824] bonding: bond0: link status definitely down for interface eth2, disabling it
[   28.974831] bonding: bond0: now running without any active interface !
[   28.974833] bonding: bond0: link status definitely down for interface eth3, disabling it
[   28.976297] bonding: bond1: link status definitely down for interface eth4, disabling it
[   28.976301] bonding: bond1: now running without any active interface !
[   28.976304] bonding: bond1: link status definitely down for interface eth5, disabling it
[   30.668520] igb: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[   30.687968] bonding: bond0: link status definitely up for interface eth2, 1000 Mbps full duplex.
[   30.687978] bonding: bond0: first active interface up!
[   30.718394] igb: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[   30.787721] bonding: bond0: link status definitely up for interface eth3, 1000 Mbps full duplex.
[   30.997697] igb: eth5 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[   31.037555] igb: eth4 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: RX
[   31.086968] bonding: bond1: link status definitely up for interface eth4, 1000 Mbps full duplex.
[   31.086977] bonding: bond1: first active interface up!
[   31.086983] bonding: bond1: link status definitely up for interface eth5, 1000 Mbps full duplex.
[   39.086899] bond1: no IPv6 routers present
[   39.595622] bond0: no IPv6 routers present
[ 4138.605233] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[ 4138.623745] IPVS: Registered protocols (TCP, UDP, SCTP, AH, ESP)
[ 4138.625039] IPVS: Connection hash table configured (size=1048576, memory=16384Kbytes)
[ 4138.627618] IPVS: ipvs loaded.
[ 4159.433408] ip_tables: (C) 2000-2006 Netfilter Core Team
[ 4163.333618] IPVS: [wrr] scheduler registered.
[94533.680773] IPVS: WRR: no destination available: no destinations present
[94533.681949] IPVS: WRR: no destination available: no destinations present
[94533.694517] IPVS: WRR: no destination available: no destinations present
[94533.695114] IPVS: WRR: no destination available: no destinations present
[94533.697832] IPVS: WRR: no destination available: no destinations present
[94533.704426] IPVS: WRR: no destination available: no destinations present
[94533.704734] IPVS: WRR: no destination available: no destinations present
[94533.712335] IPVS: WRR: no destination available: no destinations present
[94533.713600] IPVS: WRR: no destination available: no destinations present
[94533.717609] IPVS: WRR: no destination available: no destinations present
[108055.578136] BUG: unable to handle kernel NULL pointer dereference at 00000000000003e0
[108055.578162] IP: [<ffffffff81541eaf>] icmp_send+0x5f/0x760
[108055.578182] PGD 0 
[108055.578191] Oops: 0000 [#1] SMP 
[108055.578204] last sysfs file: /sys/module/ip_tables/initstate
[108055.578219] CPU 17 
[108055.578226] Modules linked in: ip_vs_wrr iptable_mangle xt_mark ip_tables x_tables ip_vs nf_conntrack libcrc32c bonding psmouse i7core_edac edac_core joydev dcdbas serio_raw ghes power_meter bnx2 hed lp parport mptsas mptscsih mptbase scsi_transport_sas usbhid usb_storage igb hid uas dca
[108055.578365] 
[108055.578385] Pid: 0, comm: kworker/0:1 Not tainted 2.6.38-8ec95-server #42 Dell Inc. PowerEdge R410/01V648
[108055.578514] RIP: 0010:[<ffffffff81541eaf>]  [<ffffffff81541eaf>] icmp_send+0x5f/0x760
[108055.578563] RSP: 0018:ffff8800bfd03c40  EFLAGS: 00010286
[108055.578589] RAX: 0000000000000000 RBX: ffff88009bc51e00 RCX: 0000000000000000
[108055.578633] RDX: ffff88016467ca00 RSI: 000000000000000b RDI: ffff88009bc51e00
[108055.578676] RBP: ffff8800bfd03dd0 R08: ffff8800bfd0f9f0 R09: 0000000000000100
[108055.578720] R10: 0000000000000001 R11: 0000000000000010 R12: 000000000000000b
[108055.578763] R13: ffff88007113c800 R14: 0000000000000000 R15: 0000000000000001
[108055.578807] FS:  0000000000000000(0000) GS:ffff8800bfd00000(0000) knlGS:0000000000000000
[108055.578852] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
[108055.578879] CR2: 00000000000003e0 CR3: 0000000001a03000 CR4: 00000000000006e0
[108055.578923] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[108055.578967] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[108055.579010] Process kworker/0:1 (pid: 0, threadinfo ffff8801a8e36000, task ffff8801a8e2db80)
[108055.579056] Stack:
[108055.579076]  0000000000000000 ffff8800bfd03c58 ffffffffa00446d4 ffff8800bfd03ca8
[108055.579129]  ffffffff810d19e0 ffff880037ab5d00 0000000000000640 00000000ffffffff
[108055.579181]  ffff8800b47e3000 ffff8800b4612680 ffff8800b47e3084 ffff8800bfd03ca8
[108055.579234] Call Trace:
[108055.579255]  <IRQ> 
[108055.579283]  [<ffffffffa00446d4>] ? igb_msix_ring+0x64/0x80 [igb]
[108055.579314]  [<ffffffff810d19e0>] ? handle_IRQ_event+0x50/0x170
[108055.579345]  [<ffffffff815d4c6e>] ? _raw_spin_lock+0xe/0x20
[108055.579372]  [<ffffffff810d40de>] ? handle_edge_irq+0xee/0x180
[108055.579402]  [<ffffffff8100ea22>] ? handle_irq+0x22/0x30
[108055.579430]  [<ffffffff8106bd78>] ? irq_exit+0x48/0x90
[108055.579457]  [<ffffffff815d4c6e>] ? _raw_spin_lock+0xe/0x20
[108055.579485]  [<ffffffff81150a18>] ? add_partial+0x58/0x90
[108055.579516]  [<ffffffffa01b6660>] ? ip_vs_conn_expire+0x0/0x340 [ip_vs]
[108055.579547]  [<ffffffff81154974>] ? __slab_free+0xa4/0x140
[108055.579575]  [<ffffffff81513cc2>] ip_expire+0x102/0x160
[108055.579602]  [<ffffffff81513bc0>] ? ip_expire+0x0/0x160
[108055.579628]  [<ffffffff81513bc0>] ? ip_expire+0x0/0x160
[108055.579655]  [<ffffffff81073862>] call_timer_fn+0x42/0x120
[108055.579683]  [<ffffffff81513bc0>] ? ip_expire+0x0/0x160
[108055.579710]  [<ffffffff81074c94>] run_timer_softirq+0x144/0x260
[108055.579741]  [<ffffffff810910e9>] ? ktime_get+0x69/0x100
[108055.579769]  [<ffffffff8106beeb>] __do_softirq+0xab/0x200
[108055.579797]  [<ffffffff810964bf>] ? tick_program_event+0x1f/0x30
[108055.579826]  [<ffffffff8100cf5c>] call_softirq+0x1c/0x30
[108055.579853]  [<ffffffff8100e9c5>] do_softirq+0x65/0xa0
[108055.579880]  [<ffffffff8106bdb5>] irq_exit+0x85/0x90
[108055.579908]  [<ffffffff815dd010>] smp_apic_timer_interrupt+0x70/0x9b
[108055.579937]  [<ffffffff8100ca13>] apic_timer_interrupt+0x13/0x20
[108055.579965]  <EOI> 
[108055.579990]  [<ffffffff814b2f22>] ? poll_idle+0x42/0x80
[108055.580018]  [<ffffffff814b2ef3>] ? poll_idle+0x13/0x80
[108055.580045]  [<ffffffff814b42a9>] ? menu_select+0x149/0x350
[108055.580073]  [<ffffffff814b3142>] cpuidle_idle_call+0xb2/0x1b0
[108055.580104]  [<ffffffff8100b067>] cpu_idle+0xb7/0x110
[108055.580132]  [<ffffffff815cc384>] start_secondary+0xc2/0xc4
[108055.580159] Code: 89 d7 48 8b 57 58 48 89 fb 41 89 f4 41 89 ce 48 83 e2 fe 0f 84 63 03 00 00 48 89 95 d8 fe ff ff 48 8b 42 18 4c 8b af d8 00 00 00 <4c> 8b 90 e0 03 00 00 8b 87 c4 00 00 00 49 01 c5 0f 82 3b 03 00 
[108055.580377] RIP  [<ffffffff81541eaf>] icmp_send+0x5f/0x760
[108055.580408]  RSP <ffff8800bfd03c40>
[108055.580430] CR2: 00000000000003e0

^ permalink raw reply

* Re: [PATCH v2] packet: fix possible dev refcnt leak when bind fail
From: David Miller @ 2011-12-28  3:33 UTC (permalink / raw)
  To: weiyj.lk; +Cc: netdev
In-Reply-To: <CAPgLHd98WPb3ieuka-qT50Va+Fx+YBroF92AfuAmKGW9a8-AKQ@mail.gmail.com>

From: Wei Yongjun <weiyj.lk@gmail.com>
Date: Wed, 28 Dec 2011 10:53:05 +0800

> From: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
> 
> If bind is fail when bind is called after set PACKET_FANOUT
> sock option, the dev refcnt will leak.
> 
> Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>

Applied, thanks a lot.

^ permalink raw reply

* Re: Crash in ip_expire/icmp_send - 2.6.38.2 (Ubuntu 11.04 natty)
From: David Miller @ 2011-12-28  3:48 UTC (permalink / raw)
  To: tim; +Cc: netdev
In-Reply-To: <1325043141.4354.20.camel@boudreau>


Well known and fixed a long time ago, see the patch below.

Please reproduce bugs against current upstream kernels before
reporting the problem here, if it only occurs in the vendor's
kernel then the appropriate thing to do is to report it to
the vendor.

--------------------
commit 64f3b9e203bd06855072e295557dca1485a2ecba
Author: Eric Dumazet <eric.dumazet@gmail.com>
Date:   Wed May 4 10:02:26 2011 +0000

    net: ip_expire() must revalidate route
    
    Commit 4a94445c9a5c (net: Use ip_route_input_noref() in input path)
    added a bug in IP defragmentation handling, in case timeout is fired.
    
    When a frame is defragmented, we use last skb dst field when building
    final skb. Its dst is valid, since we are in rcu read section.
    
    But if a timeout occurs, we take first queued fragment to build one ICMP
    TIME EXCEEDED message. Problem is all queued skb have weak dst pointers,
    since we escaped RCU critical section after their queueing. icmp_send()
    might dereference a now freed (and possibly reused) part of memory.
    
    Calling skb_dst_drop() and ip_route_input_noref() to revalidate route is
    the only possible choice.
    
    Reported-by: Denys Fedoryshchenko <denys@visp.net.lb>
    Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
    Signed-off-by: David S. Miller <davem@davemloft.net>

diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
index a1151b8..b1d282f 100644
--- a/net/ipv4/ip_fragment.c
+++ b/net/ipv4/ip_fragment.c
@@ -223,31 +223,30 @@ static void ip_expire(unsigned long arg)
 
 	if ((qp->q.last_in & INET_FRAG_FIRST_IN) && qp->q.fragments != NULL) {
 		struct sk_buff *head = qp->q.fragments;
+		const struct iphdr *iph;
+		int err;
 
 		rcu_read_lock();
 		head->dev = dev_get_by_index_rcu(net, qp->iif);
 		if (!head->dev)
 			goto out_rcu_unlock;
 
+		/* skb dst is stale, drop it, and perform route lookup again */
+		skb_dst_drop(head);
+		iph = ip_hdr(head);
+		err = ip_route_input_noref(head, iph->daddr, iph->saddr,
+					   iph->tos, head->dev);
+		if (err)
+			goto out_rcu_unlock;
+
 		/*
-		 * Only search router table for the head fragment,
-		 * when defraging timeout at PRE_ROUTING HOOK.
+		 * Only an end host needs to send an ICMP
+		 * "Fragment Reassembly Timeout" message, per RFC792.
 		 */
-		if (qp->user == IP_DEFRAG_CONNTRACK_IN && !skb_dst(head)) {
-			const struct iphdr *iph = ip_hdr(head);
-			int err = ip_route_input(head, iph->daddr, iph->saddr,
-						 iph->tos, head->dev);
-			if (unlikely(err))
-				goto out_rcu_unlock;
-
-			/*
-			 * Only an end host needs to send an ICMP
-			 * "Fragment Reassembly Timeout" message, per RFC792.
-			 */
-			if (skb_rtable(head)->rt_type != RTN_LOCAL)
-				goto out_rcu_unlock;
+		if (qp->user == IP_DEFRAG_CONNTRACK_IN &&
+		    skb_rtable(head)->rt_type != RTN_LOCAL)
+			goto out_rcu_unlock;
 
-		}
 
 		/* Send an ICMP "Fragment Reassembly Timeout" message. */
 		icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0);

^ permalink raw reply related

* [GIT] Networking
From: David Miller @ 2011-12-28  3:50 UTC (permalink / raw)
  To: torvalds; +Cc: akpm, netdev, linux-kernel


1) AF_PACKET bind() can leak a netdevice reference, from Wei Yongjun.

2) netem erroneously calls vfree() under spinlock and soft interrupt
   disable, fix from Eric Dumazet.

3) ctnetlink_get_expect() can make nfnetlink loop forever when it
   returns -EAGAIN in situations where it should not, fix from
   Pablo Neira Ayuso.

4) Autoloading connection tracking helpers cannot be done with
   spinlocks held because that operation sleeps, fix also from Pablo.

Please pull, thanks a lot!

The following changes since commit 6fd8fb7f55cb6d45e7f078cd0eaf7e3c243f6c33:

  Merge tag 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/ieee1394/linux1394 (2011-12-26 12:46:17 -0800)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/davem/net.git master

David S. Miller (1):
      Merge branch 'nf' of git://1984.lsi.us.es/net

Eric Dumazet (1):
      netem: dont call vfree() under spinlock and BH disabled

Pablo Neira Ayuso (2):
      netfilter: ctnetlink: fix return value of ctnetlink_get_expect()
      netfilter: ctnetlink: fix scheduling while atomic if helper is autoloaded

Wei Yongjun (1):
      packet: fix possible dev refcnt leak when bind fail

 net/netfilter/nf_conntrack_netlink.c |   18 +++++++++++++-----
 net/packet/af_packet.c               |    6 +++++-
 net/sched/sch_netem.c                |    7 ++++---
 3 files changed, 22 insertions(+), 9 deletions(-)

^ permalink raw reply

* Re: Crash in ip_expire/icmp_send - 2.6.38.2 (Ubuntu 11.04 natty)
From: Tim Hartrick @ 2011-12-28  4:41 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <20111227.224853.1945641698257880843.davem@davemloft.net>


David,

Thanks for the pointer to the patch.

I will endeavor to obey the protocol in the future.


Tim Hartrick

On Tue, 2011-12-27 at 22:48 -0500, David Miller wrote:
> Well known and fixed a long time ago, see the patch below.
> 
> Please reproduce bugs against current upstream kernels before
> reporting the problem here, if it only occurs in the vendor's
> kernel then the appropriate thing to do is to report it to
> the vendor.
> 
> --------------------
> commit 64f3b9e203bd06855072e295557dca1485a2ecba
> Author: Eric Dumazet <eric.dumazet@gmail.com>
> Date:   Wed May 4 10:02:26 2011 +0000
> 
>     net: ip_expire() must revalidate route
>     
>     Commit 4a94445c9a5c (net: Use ip_route_input_noref() in input path)
>     added a bug in IP defragmentation handling, in case timeout is fired.
>     
>     When a frame is defragmented, we use last skb dst field when building
>     final skb. Its dst is valid, since we are in rcu read section.
>     
>     But if a timeout occurs, we take first queued fragment to build one ICMP
>     TIME EXCEEDED message. Problem is all queued skb have weak dst pointers,
>     since we escaped RCU critical section after their queueing. icmp_send()
>     might dereference a now freed (and possibly reused) part of memory.
>     
>     Calling skb_dst_drop() and ip_route_input_noref() to revalidate route is
>     the only possible choice.
>     
>     Reported-by: Denys Fedoryshchenko <denys@visp.net.lb>
>     Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
>     Signed-off-by: David S. Miller <davem@davemloft.net>
> 
> diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
> index a1151b8..b1d282f 100644
> --- a/net/ipv4/ip_fragment.c
> +++ b/net/ipv4/ip_fragment.c
> @@ -223,31 +223,30 @@ static void ip_expire(unsigned long arg)
>  
>  	if ((qp->q.last_in & INET_FRAG_FIRST_IN) && qp->q.fragments != NULL) {
>  		struct sk_buff *head = qp->q.fragments;
> +		const struct iphdr *iph;
> +		int err;
>  
>  		rcu_read_lock();
>  		head->dev = dev_get_by_index_rcu(net, qp->iif);
>  		if (!head->dev)
>  			goto out_rcu_unlock;
>  
> +		/* skb dst is stale, drop it, and perform route lookup again */
> +		skb_dst_drop(head);
> +		iph = ip_hdr(head);
> +		err = ip_route_input_noref(head, iph->daddr, iph->saddr,
> +					   iph->tos, head->dev);
> +		if (err)
> +			goto out_rcu_unlock;
> +
>  		/*
> -		 * Only search router table for the head fragment,
> -		 * when defraging timeout at PRE_ROUTING HOOK.
> +		 * Only an end host needs to send an ICMP
> +		 * "Fragment Reassembly Timeout" message, per RFC792.
>  		 */
> -		if (qp->user == IP_DEFRAG_CONNTRACK_IN && !skb_dst(head)) {
> -			const struct iphdr *iph = ip_hdr(head);
> -			int err = ip_route_input(head, iph->daddr, iph->saddr,
> -						 iph->tos, head->dev);
> -			if (unlikely(err))
> -				goto out_rcu_unlock;
> -
> -			/*
> -			 * Only an end host needs to send an ICMP
> -			 * "Fragment Reassembly Timeout" message, per RFC792.
> -			 */
> -			if (skb_rtable(head)->rt_type != RTN_LOCAL)
> -				goto out_rcu_unlock;
> +		if (qp->user == IP_DEFRAG_CONNTRACK_IN &&
> +		    skb_rtable(head)->rt_type != RTN_LOCAL)
> +			goto out_rcu_unlock;
>  
> -		}
>  
>  		/* Send an ICMP "Fragment Reassembly Timeout" message. */
>  		icmp_send(head, ICMP_TIME_EXCEEDED, ICMP_EXC_FRAGTIME, 0);

^ permalink raw reply

* Re: [PATCH 02/14 v2] mac802154: allocation of ieee802154 device
From: Alexander Smirnov @ 2011-12-28  7:19 UTC (permalink / raw)
  To: David Miller; +Cc: netdev
In-Reply-To: <20111226.150924.734645949941473044.davem@davemloft.net>

Dear David,

2011/12/26 David Miller <davem@davemloft.net>:
> From: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
> Date: Mon, 26 Dec 2011 20:04:07 +0300
>
>> +     /*
>> +      * SoftMAC device is registered and running. One can add
>> +      * subinterfaces.
>> +      */
>> +     unsigned running:1;
>
> I told you to change this to a 'bool' in my previous review of your changes.
>
> I'm pretty much going to stop reviewing right here, because I don't
> want to waste my time only to find out that you've ignored other
> review feedback I've already given to you.
>

Regarding your comments to my previous post, none of them was omitted. I
reworked code according to them and added extended comments in a patch
explaining why I can't follow your hint. The issue with 'bool' you marked
was in another patch (#14) which I already fixed.

Of course I'm newcomer here, so there are lots refinements I don't
know about and may understand you incorrectly.

Best regards,
Alex

> I think it's also instructive to note that your difficulty just
> posting this patch series, with all your "email client problems", is
> indicative of the much larger issue which is that you're rushing
> things and you need to take more time working on and posting these
> patches.

^ permalink raw reply

* RE: bonding device in balance-alb mode shows packet loss in kernel 3.2-rc6
From: Narendra_K @ 2011-12-28  7:25 UTC (permalink / raw)
  To: nicolas.2p.debian; +Cc: netdev, fubar
In-Reply-To: <4EFA22D1.8050807@gmail.com>

> -----Original Message-----
> From: netdev-owner@vger.kernel.org [mailto:netdev-
> owner@vger.kernel.org] On Behalf Of Nicolas de Pesloüan
> Sent: Wednesday, December 28, 2011 1:26 AM
> To: K, Narendra
> Cc: netdev@vger.kernel.org; fubar@us.ibm.com
> Subject: Re: bonding device in balance-alb mode shows packet loss in kernel
> 3.2-rc6
> 
> Le 27/12/2011 15:31, Narendra_K@Dell.com a écrit :
> > Hello,
> >
> > On kernel version 3.2-rc6, when a bonding device is configured in
> > 'balance-alb' mode, ping reported packet losses. By looking at
> > protocol trance, it seemed like the lost packets had the destination MAC id
> of inactive slave.
> >
> 
> [snip]
> 
> Can you provide the output of the following command?
> 
> grep . /sys/classs/net/bond0/bonding/*

Hi, thanks for the response. Please find the output here -

# grep . /sys/class/net/bond0/bonding/*
/sys/class/net/bond0/bonding/active_slave:em2
/sys/class/net/bond0/bonding/ad_select:stable 0
/sys/class/net/bond0/bonding/all_slaves_active:0
/sys/class/net/bond0/bonding/arp_interval:0
/sys/class/net/bond0/bonding/arp_validate:none 0
/sys/class/net/bond0/bonding/downdelay:0
/sys/class/net/bond0/bonding/fail_over_mac:none 0
/sys/class/net/bond0/bonding/lacp_rate:slow 0
/sys/class/net/bond0/bonding/miimon:100
/sys/class/net/bond0/bonding/mii_status:up
/sys/class/net/bond0/bonding/min_links:0
/sys/class/net/bond0/bonding/mode:balance-alb 6
/sys/class/net/bond0/bonding/num_grat_arp:1
/sys/class/net/bond0/bonding/num_unsol_na:1
/sys/class/net/bond0/bonding/primary_reselect:always 0
/sys/class/net/bond0/bonding/queue_id:em2:0 em3:0 em4:0
/sys/class/net/bond0/bonding/resend_igmp:1
/sys/class/net/bond0/bonding/slaves:em2 em3 em4
/sys/class/net/bond0/bonding/updelay:0
/sys/class/net/bond0/bonding/use_carrier:1
/sys/class/net/bond0/bonding/xmit_hash_policy:layer2 0

With regards,
Narendra K

^ permalink raw reply

* Re: [PATCH 02/14 v2] mac802154: allocation of ieee802154 device
From: David Miller @ 2011-12-28  7:31 UTC (permalink / raw)
  To: alex.bluesman.smirnov; +Cc: netdev
In-Reply-To: <CAJmB2rAyyPmYTmtTvFK3UuFn9t+361raA5R=92XPNHrH7dfgfw@mail.gmail.com>

From: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
Date: Wed, 28 Dec 2011 10:19:23 +0300

> Dear David,
> 
> 2011/12/26 David Miller <davem@davemloft.net>:
>> From: Alexander Smirnov <alex.bluesman.smirnov@gmail.com>
>> Date: Mon, 26 Dec 2011 20:04:07 +0300
>>
>>> +     /*
>>> +      * SoftMAC device is registered and running. One can add
>>> +      * subinterfaces.
>>> +      */
>>> +     unsigned running:1;
>>
>> I told you to change this to a 'bool' in my previous review of your changes.
>>
>> I'm pretty much going to stop reviewing right here, because I don't
>> want to waste my time only to find out that you've ignored other
>> review feedback I've already given to you.
>>
> 
> Regarding your comments to my previous post, none of them was omitted. I
> reworked code according to them and added extended comments in a patch
> explaining why I can't follow your hint. The issue with 'bool' you marked
> was in another patch (#14) which I already fixed.

My bad, I thought I had asked you do it here too.

Sorry about that.

^ permalink raw reply

* Re: [PATCH] skge: restore multicast rx filter on resume
From: Florian Zumbiehl @ 2011-12-28  7:41 UTC (permalink / raw)
  To: Stephen Hemminger; +Cc: David Miller, netdev
In-Reply-To: <20111227095635.19087752@nehalam.linuxnetplumber.net>

Hi,

> > > diff --git a/drivers/net/skge.c b/drivers/net/skge.c
> > > index f4be5c7..cd968e5 100644
> > > --- a/drivers/net/skge.c
> > > +++ b/drivers/net/skge.c
> > > @@ -4046,6 +4046,7 @@ static int skge_resume(struct device *dev)
> > >  				dev_close(dev);
> > >  				goto out;
> > >  			}
> > > +			skge_set_multicast(dev);
> > >  		}
> > >  	}
> > >  out:
> 
> Right idea, but it needs to be done in a different spot to catch
> all the other device restart cases like changing settings.

Roughly like this maybe? (Successfully tested with an MTU change ...)

Florian

---------------------------------------------------------------------------
skge: restore rx multicast filter on resume

Signed-off-by: Florian Zumbiehl <florz@florz.de>

diff --git a/drivers/net/skge.c b/drivers/net/skge.c
index f4be5c7..8f985a8 100644
--- a/drivers/net/skge.c
+++ b/drivers/net/skge.c
@@ -2587,6 +2587,9 @@ static int skge_up(struct net_device *dev)
 	spin_unlock_irq(&hw->hw_lock);
 
 	napi_enable(&skge->napi);
+
+	skge_set_multicast(dev);
+
 	return 0;
 
  free_rx_ring:

^ permalink raw reply related

* [PATCH 1/1] via-rhine: Fix hanging with high CPU load on low-end broads.
From: Bjarke Istrup Pedersen @ 2011-12-28 12:28 UTC (permalink / raw)
  To: linux-kernel; +Cc: netdev, Roger Luethi, Bjarke Istrup Pedersen

Working around problem causing high CPU load and hanging system when
there is alot of network trafic.

It is kind of an ugly way to work around it, but it allows the Soekris
net5501 to have trafic between two of it's NICs without hanging so much
that the watchdog kicks in and does a hard reboot of the system.

There is more info on the problem here:
http://http://lists.soekris.com/pipermail/soekris-tech/2010-October/016889.html

Tested with positive results on two Soekris net5501-70 boxes.

Signed-off-by: Bjarke Istrup Pedersen <gurligebis@gentoo.org>
---
 drivers/net/ethernet/via/via-rhine.c |    5 +++++
 1 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
index f34dd99..8c77dcd 100644
--- a/drivers/net/ethernet/via/via-rhine.c
+++ b/drivers/net/ethernet/via/via-rhine.c
@@ -1567,6 +1567,9 @@ static irqreturn_t rhine_interrupt(int irq, void *dev_instance)
 	int boguscnt = max_interrupt_work;
 	int handled = 0;
 
+	if (!spin_trylock(&rp->lock))
+		return IRQ_RETVAL(handled);
+
 	while ((intr_status = get_intr_status(dev))) {
 		handled = 1;
 
@@ -1616,6 +1619,8 @@ static irqreturn_t rhine_interrupt(int irq, void *dev_instance)
 		}
 	}
 
+	spin_unlock(&rp->lock);
+
 	if (debug > 3)
 		netdev_dbg(dev, "exiting interrupt, status=%08x\n",
 			   ioread16(ioaddr + IntrStatus));
-- 
1.7.8

^ permalink raw reply related

* [PATCH 1/5] tcp_diag: Don't report max ack backlog in wqueue
From: Pavel Emelyanov @ 2011-12-28 13:36 UTC (permalink / raw)
  To: David Miller, Linux Netdev List

This is not correct and actually makes ss work differently on proc
vs netlink -- in the former case 0 is reported.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>

---
 net/ipv4/tcp_diag.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/ipv4/tcp_diag.c b/net/ipv4/tcp_diag.c
index 8cd357a..3f2e2ef 100644
--- a/net/ipv4/tcp_diag.c
+++ b/net/ipv4/tcp_diag.c
@@ -25,7 +25,7 @@ static void tcp_diag_get_info(struct sock *sk, struct inet_diag_msg *r,
 
 	if (sk->sk_state == TCP_LISTEN) {
 		r->idiag_rqueue = sk->sk_ack_backlog;
-		r->idiag_wqueue = sk->sk_max_ack_backlog;
+		r->idiag_wqueue = 0;
 	} else {
 		r->idiag_rqueue = max_t(int, tp->rcv_nxt - tp->copied_seq, 0);
 		r->idiag_wqueue = tp->write_seq - tp->snd_una;
-- 
1.5.5.6

^ permalink raw reply related

* [PATCH 2/5] tcp_diag: Report max ack backlog as separate nla
From: Pavel Emelyanov @ 2011-12-28 13:37 UTC (permalink / raw)
  To: David Miller, Linux Netdev List

Since it's thrown away from the core message let's nonetheless report it.

Signed-off-by: Pavel Emelyanov <xemul@parallels.com>

---
 include/linux/inet_diag.h |    1 +
 net/ipv4/inet_diag.c      |    4 ++++
 2 files changed, 5 insertions(+), 0 deletions(-)

diff --git a/include/linux/inet_diag.h b/include/linux/inet_diag.h
index d274712..4cdbfe9 100644
--- a/include/linux/inet_diag.h
+++ b/include/linux/inet_diag.h
@@ -108,6 +108,7 @@ enum {
 	INET_DIAG_CONG,
 	INET_DIAG_TOS,
 	INET_DIAG_TCLASS,
+	INET_DIAG_MAX_ACK_BACKLOG,
 };
 
 #define INET_DIAG_MAX INET_DIAG_TCLASS
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
index 91f9092..8cef079 100644
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -109,6 +109,10 @@ int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
 	r->id.idiag_src[0] = inet->inet_rcv_saddr;
 	r->id.idiag_dst[0] = inet->inet_daddr;
 
+	if (ext & (1 << (INET_DIAG_MAX_ACK_BACKLOG - 1)))
+		RTA_PUT_U8(skb, INET_DIAG_MAX_ACK_BACKLOG,
+				sk->sk_max_ack_backlog);
+
 	/* IPv6 dual-stack sockets use inet->tos for IPv4 connections,
 	 * hence this needs to be included regardless of socket family.
 	 */
-- 
1.5.5.6

^ permalink raw reply related

* [PATCH 3/5] inet_diag: Extend the meminfo report
From: Pavel Emelyanov @ 2011-12-28 13:38 UTC (permalink / raw)
  To: David Miller, Linux Netdev List

Add the backlog length and wmem and rmem buffers limits.
With this the TCP memory info is full and can be analyzed.

Few words about extending the existing structure. The nla engine stores lengths of
fields and the nla parser will parse the new format successfully (checked on the ss
tool). But new apps will have to take this field's length into account. Hopefully
this is acceptable price for not introducing another ext bit and structure.

Singed-off-by: Pavel Emelyanov <xemul@parallels.com>

---
 include/linux/inet_diag.h |    3 +++
 net/ipv4/inet_diag.c      |    3 +++
 2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/include/linux/inet_diag.h b/include/linux/inet_diag.h
index afa5d5c..d274712 100644
--- a/include/linux/inet_diag.h
+++ b/include/linux/inet_diag.h
@@ -120,6 +120,9 @@ struct inet_diag_meminfo {
 	__u32	idiag_wmem;
 	__u32	idiag_fmem;
 	__u32	idiag_tmem;
+	__u32	idiag_backlog;
+	__u32	idiag_rcvbuf;
+	__u32	idiag_sndbuf;
 };
 
 /* INET_DIAG_VEGASINFO */
diff --git a/net/ipv4/inet_diag.c b/net/ipv4/inet_diag.c
index fb2e47f..91f9092 100644
--- a/net/ipv4/inet_diag.c
+++ b/net/ipv4/inet_diag.c
@@ -134,6 +134,9 @@ int inet_sk_diag_fill(struct sock *sk, struct inet_connection_sock *icsk,
 		minfo->idiag_wmem = sk->sk_wmem_queued;
 		minfo->idiag_fmem = sk->sk_forward_alloc;
 		minfo->idiag_tmem = sk_wmem_alloc_get(sk);
+		minfo->idiag_backlog = sk->sk_backlog.len;
+		minfo->idiag_rcvbuf = sk->sk_rcvbuf;
+		minfo->idiag_sndbuf = sk->sk_sndbuf;
 	}
 
 	if (icsk == NULL) {
-- 
1.5.5.6

^ permalink raw reply related

* [PATCH 1/5] netfilter: xtables: move ipt_ecn to xt_ecn
From: pablo @ 2011-12-28 13:39 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev, jengelh, kaber
In-Reply-To: <1325079573-6120-1-git-send-email-pablo@netfilter.org>

From: Jan Engelhardt <jengelh@medozas.de>

Prepare the ECN match for augmentation by an IPv6 counterpart. Since
no symbol dependencies to ipv6.ko are added, having a single ecn match
module is the more so welcome.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 include/linux/netfilter/Kbuild         |    1 +
 include/linux/netfilter/xt_ecn.h       |   35 +++++++++
 include/linux/netfilter_ipv4/ipt_ecn.h |   31 +--------
 net/ipv4/netfilter/Kconfig             |   10 +-
 net/ipv4/netfilter/Makefile            |    1 -
 net/ipv4/netfilter/ipt_ecn.c           |  127 -------------------------------
 net/netfilter/Kconfig                  |    9 ++
 net/netfilter/Makefile                 |    1 +
 net/netfilter/xt_ecn.c                 |  128 ++++++++++++++++++++++++++++++++
 9 files changed, 180 insertions(+), 163 deletions(-)
 create mode 100644 include/linux/netfilter/xt_ecn.h
 delete mode 100644 net/ipv4/netfilter/ipt_ecn.c
 create mode 100644 net/netfilter/xt_ecn.c

diff --git a/include/linux/netfilter/Kbuild b/include/linux/netfilter/Kbuild
index e630a2e..e144f54 100644
--- a/include/linux/netfilter/Kbuild
+++ b/include/linux/netfilter/Kbuild
@@ -43,6 +43,7 @@ header-y += xt_cpu.h
 header-y += xt_dccp.h
 header-y += xt_devgroup.h
 header-y += xt_dscp.h
+header-y += xt_ecn.h
 header-y += xt_esp.h
 header-y += xt_hashlimit.h
 header-y += xt_helper.h
diff --git a/include/linux/netfilter/xt_ecn.h b/include/linux/netfilter/xt_ecn.h
new file mode 100644
index 0000000..065c1a5
--- /dev/null
+++ b/include/linux/netfilter/xt_ecn.h
@@ -0,0 +1,35 @@
+/* iptables module for matching the ECN header in IPv4 and TCP header
+ *
+ * (C) 2002 Harald Welte <laforge@gnumonks.org>
+ *
+ * This software is distributed under GNU GPL v2, 1991
+ * 
+ * ipt_ecn.h,v 1.4 2002/08/05 19:39:00 laforge Exp
+*/
+#ifndef _XT_ECN_H
+#define _XT_ECN_H
+
+#include <linux/types.h>
+#include <linux/netfilter/xt_dscp.h>
+
+#define IPT_ECN_IP_MASK	(~XT_DSCP_MASK)
+
+#define IPT_ECN_OP_MATCH_IP	0x01
+#define IPT_ECN_OP_MATCH_ECE	0x10
+#define IPT_ECN_OP_MATCH_CWR	0x20
+
+#define IPT_ECN_OP_MATCH_MASK	0xce
+
+/* match info */
+struct ipt_ecn_info {
+	__u8 operation;
+	__u8 invert;
+	__u8 ip_ect;
+	union {
+		struct {
+			__u8 ect;
+		} tcp;
+	} proto;
+};
+
+#endif /* _XT_ECN_H */
diff --git a/include/linux/netfilter_ipv4/ipt_ecn.h b/include/linux/netfilter_ipv4/ipt_ecn.h
index eabf95f..b1124ec 100644
--- a/include/linux/netfilter_ipv4/ipt_ecn.h
+++ b/include/linux/netfilter_ipv4/ipt_ecn.h
@@ -1,35 +1,6 @@
-/* iptables module for matching the ECN header in IPv4 and TCP header
- *
- * (C) 2002 Harald Welte <laforge@gnumonks.org>
- *
- * This software is distributed under GNU GPL v2, 1991
- * 
- * ipt_ecn.h,v 1.4 2002/08/05 19:39:00 laforge Exp
-*/
 #ifndef _IPT_ECN_H
 #define _IPT_ECN_H
 
-#include <linux/types.h>
-#include <linux/netfilter/xt_dscp.h>
-
-#define IPT_ECN_IP_MASK	(~XT_DSCP_MASK)
-
-#define IPT_ECN_OP_MATCH_IP	0x01
-#define IPT_ECN_OP_MATCH_ECE	0x10
-#define IPT_ECN_OP_MATCH_CWR	0x20
-
-#define IPT_ECN_OP_MATCH_MASK	0xce
-
-/* match info */
-struct ipt_ecn_info {
-	__u8 operation;
-	__u8 invert;
-	__u8 ip_ect;
-	union {
-		struct {
-			__u8 ect;
-		} tcp;
-	} proto;
-};
+#include <linux/netfilter/xt_ecn.h>
 
 #endif /* _IPT_ECN_H */
diff --git a/net/ipv4/netfilter/Kconfig b/net/ipv4/netfilter/Kconfig
index 7e1f5cd..53b9c79 100644
--- a/net/ipv4/netfilter/Kconfig
+++ b/net/ipv4/netfilter/Kconfig
@@ -76,11 +76,11 @@ config IP_NF_MATCH_AH
 config IP_NF_MATCH_ECN
 	tristate '"ecn" match support'
 	depends on NETFILTER_ADVANCED
-	help
-	  This option adds a `ECN' match, which allows you to match against
-	  the IPv4 and TCP header ECN fields.
-
-	  To compile it as a module, choose M here.  If unsure, say N.
+	select NETFILTER_XT_MATCH_ECN
+	---help---
+	This is a backwards-compat option for the user's convenience
+	(e.g. when running oldconfig). It selects
+	CONFIG_NETFILTER_XT_MATCH_ECN.
 
 config IP_NF_MATCH_RPFILTER
 	tristate '"rpfilter" reverse path filter match support'
diff --git a/net/ipv4/netfilter/Makefile b/net/ipv4/netfilter/Makefile
index 123dd88..213a462 100644
--- a/net/ipv4/netfilter/Makefile
+++ b/net/ipv4/netfilter/Makefile
@@ -49,7 +49,6 @@ obj-$(CONFIG_IP_NF_SECURITY) += iptable_security.o
 
 # matches
 obj-$(CONFIG_IP_NF_MATCH_AH) += ipt_ah.o
-obj-$(CONFIG_IP_NF_MATCH_ECN) += ipt_ecn.o
 obj-$(CONFIG_IP_NF_MATCH_RPFILTER) += ipt_rpfilter.o
 
 # targets
diff --git a/net/ipv4/netfilter/ipt_ecn.c b/net/ipv4/netfilter/ipt_ecn.c
deleted file mode 100644
index 2b57e52..0000000
--- a/net/ipv4/netfilter/ipt_ecn.c
+++ /dev/null
@@ -1,127 +0,0 @@
-/* IP tables module for matching the value of the IPv4 and TCP ECN bits
- *
- * (C) 2002 by Harald Welte <laforge@gnumonks.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- */
-#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/in.h>
-#include <linux/ip.h>
-#include <net/ip.h>
-#include <linux/module.h>
-#include <linux/skbuff.h>
-#include <linux/tcp.h>
-
-#include <linux/netfilter/x_tables.h>
-#include <linux/netfilter_ipv4/ip_tables.h>
-#include <linux/netfilter_ipv4/ipt_ecn.h>
-
-MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
-MODULE_DESCRIPTION("Xtables: Explicit Congestion Notification (ECN) flag match for IPv4");
-MODULE_LICENSE("GPL");
-
-static inline bool match_ip(const struct sk_buff *skb,
-			    const struct ipt_ecn_info *einfo)
-{
-	return ((ip_hdr(skb)->tos & IPT_ECN_IP_MASK) == einfo->ip_ect) ^
-	       !!(einfo->invert & IPT_ECN_OP_MATCH_IP);
-}
-
-static inline bool match_tcp(const struct sk_buff *skb,
-			     const struct ipt_ecn_info *einfo,
-			     bool *hotdrop)
-{
-	struct tcphdr _tcph;
-	const struct tcphdr *th;
-
-	/* In practice, TCP match does this, so can't fail.  But let's
-	 * be good citizens.
-	 */
-	th = skb_header_pointer(skb, ip_hdrlen(skb), sizeof(_tcph), &_tcph);
-	if (th == NULL) {
-		*hotdrop = false;
-		return false;
-	}
-
-	if (einfo->operation & IPT_ECN_OP_MATCH_ECE) {
-		if (einfo->invert & IPT_ECN_OP_MATCH_ECE) {
-			if (th->ece == 1)
-				return false;
-		} else {
-			if (th->ece == 0)
-				return false;
-		}
-	}
-
-	if (einfo->operation & IPT_ECN_OP_MATCH_CWR) {
-		if (einfo->invert & IPT_ECN_OP_MATCH_CWR) {
-			if (th->cwr == 1)
-				return false;
-		} else {
-			if (th->cwr == 0)
-				return false;
-		}
-	}
-
-	return true;
-}
-
-static bool ecn_mt(const struct sk_buff *skb, struct xt_action_param *par)
-{
-	const struct ipt_ecn_info *info = par->matchinfo;
-
-	if (info->operation & IPT_ECN_OP_MATCH_IP)
-		if (!match_ip(skb, info))
-			return false;
-
-	if (info->operation & (IPT_ECN_OP_MATCH_ECE|IPT_ECN_OP_MATCH_CWR)) {
-		if (!match_tcp(skb, info, &par->hotdrop))
-			return false;
-	}
-
-	return true;
-}
-
-static int ecn_mt_check(const struct xt_mtchk_param *par)
-{
-	const struct ipt_ecn_info *info = par->matchinfo;
-	const struct ipt_ip *ip = par->entryinfo;
-
-	if (info->operation & IPT_ECN_OP_MATCH_MASK)
-		return -EINVAL;
-
-	if (info->invert & IPT_ECN_OP_MATCH_MASK)
-		return -EINVAL;
-
-	if (info->operation & (IPT_ECN_OP_MATCH_ECE|IPT_ECN_OP_MATCH_CWR) &&
-	    (ip->proto != IPPROTO_TCP || ip->invflags & IPT_INV_PROTO)) {
-		pr_info("cannot match TCP bits in rule for non-tcp packets\n");
-		return -EINVAL;
-	}
-
-	return 0;
-}
-
-static struct xt_match ecn_mt_reg __read_mostly = {
-	.name		= "ecn",
-	.family		= NFPROTO_IPV4,
-	.match		= ecn_mt,
-	.matchsize	= sizeof(struct ipt_ecn_info),
-	.checkentry	= ecn_mt_check,
-	.me		= THIS_MODULE,
-};
-
-static int __init ecn_mt_init(void)
-{
-	return xt_register_match(&ecn_mt_reg);
-}
-
-static void __exit ecn_mt_exit(void)
-{
-	xt_unregister_match(&ecn_mt_reg);
-}
-
-module_init(ecn_mt_init);
-module_exit(ecn_mt_exit);
diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
index bac93ba..20388a9 100644
--- a/net/netfilter/Kconfig
+++ b/net/netfilter/Kconfig
@@ -778,6 +778,15 @@ config NETFILTER_XT_MATCH_DSCP
 
 	  To compile it as a module, choose M here.  If unsure, say N.
 
+config NETFILTER_XT_MATCH_ECN
+	tristate '"ecn" match support'
+	depends on NETFILTER_ADVANCED
+	---help---
+	This option adds an "ECN" match, which allows you to match against
+	the IPv4 and TCP header ECN fields.
+
+	To compile it as a module, choose M here. If unsure, say N.
+
 config NETFILTER_XT_MATCH_ESP
 	tristate '"esp" match support'
 	depends on NETFILTER_ADVANCED
diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
index b2eee4d..40f4c3d 100644
--- a/net/netfilter/Makefile
+++ b/net/netfilter/Makefile
@@ -81,6 +81,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_CPU) += xt_cpu.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_DCCP) += xt_dccp.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
+obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
diff --git a/net/netfilter/xt_ecn.c b/net/netfilter/xt_ecn.c
new file mode 100644
index 0000000..2c198f5
--- /dev/null
+++ b/net/netfilter/xt_ecn.c
@@ -0,0 +1,128 @@
+/* IP tables module for matching the value of the IPv4 and TCP ECN bits
+ *
+ * (C) 2002 by Harald Welte <laforge@gnumonks.org>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ */
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <linux/in.h>
+#include <linux/ip.h>
+#include <net/ip.h>
+#include <linux/module.h>
+#include <linux/skbuff.h>
+#include <linux/tcp.h>
+
+#include <linux/netfilter/x_tables.h>
+#include <linux/netfilter_ipv4/ip_tables.h>
+#include <linux/netfilter_ipv4/ipt_ecn.h>
+
+MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
+MODULE_DESCRIPTION("Xtables: Explicit Congestion Notification (ECN) flag match for IPv4");
+MODULE_LICENSE("GPL");
+MODULE_ALIAS("ipt_ecn");
+
+static inline bool match_ip(const struct sk_buff *skb,
+			    const struct ipt_ecn_info *einfo)
+{
+	return ((ip_hdr(skb)->tos & IPT_ECN_IP_MASK) == einfo->ip_ect) ^
+	       !!(einfo->invert & IPT_ECN_OP_MATCH_IP);
+}
+
+static inline bool match_tcp(const struct sk_buff *skb,
+			     const struct ipt_ecn_info *einfo,
+			     bool *hotdrop)
+{
+	struct tcphdr _tcph;
+	const struct tcphdr *th;
+
+	/* In practice, TCP match does this, so can't fail.  But let's
+	 * be good citizens.
+	 */
+	th = skb_header_pointer(skb, ip_hdrlen(skb), sizeof(_tcph), &_tcph);
+	if (th == NULL) {
+		*hotdrop = false;
+		return false;
+	}
+
+	if (einfo->operation & IPT_ECN_OP_MATCH_ECE) {
+		if (einfo->invert & IPT_ECN_OP_MATCH_ECE) {
+			if (th->ece == 1)
+				return false;
+		} else {
+			if (th->ece == 0)
+				return false;
+		}
+	}
+
+	if (einfo->operation & IPT_ECN_OP_MATCH_CWR) {
+		if (einfo->invert & IPT_ECN_OP_MATCH_CWR) {
+			if (th->cwr == 1)
+				return false;
+		} else {
+			if (th->cwr == 0)
+				return false;
+		}
+	}
+
+	return true;
+}
+
+static bool ecn_mt(const struct sk_buff *skb, struct xt_action_param *par)
+{
+	const struct ipt_ecn_info *info = par->matchinfo;
+
+	if (info->operation & IPT_ECN_OP_MATCH_IP)
+		if (!match_ip(skb, info))
+			return false;
+
+	if (info->operation & (IPT_ECN_OP_MATCH_ECE|IPT_ECN_OP_MATCH_CWR)) {
+		if (!match_tcp(skb, info, &par->hotdrop))
+			return false;
+	}
+
+	return true;
+}
+
+static int ecn_mt_check(const struct xt_mtchk_param *par)
+{
+	const struct ipt_ecn_info *info = par->matchinfo;
+	const struct ipt_ip *ip = par->entryinfo;
+
+	if (info->operation & IPT_ECN_OP_MATCH_MASK)
+		return -EINVAL;
+
+	if (info->invert & IPT_ECN_OP_MATCH_MASK)
+		return -EINVAL;
+
+	if (info->operation & (IPT_ECN_OP_MATCH_ECE|IPT_ECN_OP_MATCH_CWR) &&
+	    (ip->proto != IPPROTO_TCP || ip->invflags & IPT_INV_PROTO)) {
+		pr_info("cannot match TCP bits in rule for non-tcp packets\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static struct xt_match ecn_mt_reg __read_mostly = {
+	.name		= "ecn",
+	.family		= NFPROTO_IPV4,
+	.match		= ecn_mt,
+	.matchsize	= sizeof(struct ipt_ecn_info),
+	.checkentry	= ecn_mt_check,
+	.me		= THIS_MODULE,
+};
+
+static int __init ecn_mt_init(void)
+{
+	return xt_register_match(&ecn_mt_reg);
+}
+
+static void __exit ecn_mt_exit(void)
+{
+	xt_unregister_match(&ecn_mt_reg);
+}
+
+module_init(ecn_mt_init);
+module_exit(ecn_mt_exit);
-- 
1.7.7.3


^ permalink raw reply related

* [PATCH 2/5] netfilter: xtables: give xt_ecn its own name
From: pablo @ 2011-12-28 13:39 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev, jengelh, kaber
In-Reply-To: <1325079573-6120-1-git-send-email-pablo@netfilter.org>

From: Jan Engelhardt <jengelh@medozas.de>

Use the new macro and struct names in xt_ecn.h, and put the old
definitions into a definition-forwarding ipt_ecn.h.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 include/linux/netfilter/xt_ecn.h       |   12 +++++-----
 include/linux/netfilter_ipv4/ipt_ecn.h |   11 +++++++++-
 net/netfilter/xt_ecn.c                 |   34 ++++++++++++++++----------------
 3 files changed, 33 insertions(+), 24 deletions(-)

diff --git a/include/linux/netfilter/xt_ecn.h b/include/linux/netfilter/xt_ecn.h
index 065c1a5..7158fca 100644
--- a/include/linux/netfilter/xt_ecn.h
+++ b/include/linux/netfilter/xt_ecn.h
@@ -12,16 +12,16 @@
 #include <linux/types.h>
 #include <linux/netfilter/xt_dscp.h>
 
-#define IPT_ECN_IP_MASK	(~XT_DSCP_MASK)
+#define XT_ECN_IP_MASK	(~XT_DSCP_MASK)
 
-#define IPT_ECN_OP_MATCH_IP	0x01
-#define IPT_ECN_OP_MATCH_ECE	0x10
-#define IPT_ECN_OP_MATCH_CWR	0x20
+#define XT_ECN_OP_MATCH_IP	0x01
+#define XT_ECN_OP_MATCH_ECE	0x10
+#define XT_ECN_OP_MATCH_CWR	0x20
 
-#define IPT_ECN_OP_MATCH_MASK	0xce
+#define XT_ECN_OP_MATCH_MASK	0xce
 
 /* match info */
-struct ipt_ecn_info {
+struct xt_ecn_info {
 	__u8 operation;
 	__u8 invert;
 	__u8 ip_ect;
diff --git a/include/linux/netfilter_ipv4/ipt_ecn.h b/include/linux/netfilter_ipv4/ipt_ecn.h
index b1124ec..0e0c063 100644
--- a/include/linux/netfilter_ipv4/ipt_ecn.h
+++ b/include/linux/netfilter_ipv4/ipt_ecn.h
@@ -2,5 +2,14 @@
 #define _IPT_ECN_H
 
 #include <linux/netfilter/xt_ecn.h>
+#define ipt_ecn_info xt_ecn_info
 
-#endif /* _IPT_ECN_H */
+enum {
+	IPT_ECN_IP_MASK       = XT_ECN_IP_MASK,
+	IPT_ECN_OP_MATCH_IP   = XT_ECN_OP_MATCH_IP,
+	IPT_ECN_OP_MATCH_ECE  = XT_ECN_OP_MATCH_ECE,
+	IPT_ECN_OP_MATCH_CWR  = XT_ECN_OP_MATCH_CWR,
+	IPT_ECN_OP_MATCH_MASK = XT_ECN_OP_MATCH_MASK,
+};
+
+#endif /* IPT_ECN_H */
diff --git a/net/netfilter/xt_ecn.c b/net/netfilter/xt_ecn.c
index 2c198f5..3ebb3dc 100644
--- a/net/netfilter/xt_ecn.c
+++ b/net/netfilter/xt_ecn.c
@@ -15,8 +15,8 @@
 #include <linux/tcp.h>
 
 #include <linux/netfilter/x_tables.h>
+#include <linux/netfilter/xt_ecn.h>
 #include <linux/netfilter_ipv4/ip_tables.h>
-#include <linux/netfilter_ipv4/ipt_ecn.h>
 
 MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
 MODULE_DESCRIPTION("Xtables: Explicit Congestion Notification (ECN) flag match for IPv4");
@@ -24,14 +24,14 @@ MODULE_LICENSE("GPL");
 MODULE_ALIAS("ipt_ecn");
 
 static inline bool match_ip(const struct sk_buff *skb,
-			    const struct ipt_ecn_info *einfo)
+			    const struct xt_ecn_info *einfo)
 {
-	return ((ip_hdr(skb)->tos & IPT_ECN_IP_MASK) == einfo->ip_ect) ^
-	       !!(einfo->invert & IPT_ECN_OP_MATCH_IP);
+	return ((ip_hdr(skb)->tos & XT_ECN_IP_MASK) == einfo->ip_ect) ^
+	       !!(einfo->invert & XT_ECN_OP_MATCH_IP);
 }
 
 static inline bool match_tcp(const struct sk_buff *skb,
-			     const struct ipt_ecn_info *einfo,
+			     const struct xt_ecn_info *einfo,
 			     bool *hotdrop)
 {
 	struct tcphdr _tcph;
@@ -46,8 +46,8 @@ static inline bool match_tcp(const struct sk_buff *skb,
 		return false;
 	}
 
-	if (einfo->operation & IPT_ECN_OP_MATCH_ECE) {
-		if (einfo->invert & IPT_ECN_OP_MATCH_ECE) {
+	if (einfo->operation & XT_ECN_OP_MATCH_ECE) {
+		if (einfo->invert & XT_ECN_OP_MATCH_ECE) {
 			if (th->ece == 1)
 				return false;
 		} else {
@@ -56,8 +56,8 @@ static inline bool match_tcp(const struct sk_buff *skb,
 		}
 	}
 
-	if (einfo->operation & IPT_ECN_OP_MATCH_CWR) {
-		if (einfo->invert & IPT_ECN_OP_MATCH_CWR) {
+	if (einfo->operation & XT_ECN_OP_MATCH_CWR) {
+		if (einfo->invert & XT_ECN_OP_MATCH_CWR) {
 			if (th->cwr == 1)
 				return false;
 		} else {
@@ -71,13 +71,13 @@ static inline bool match_tcp(const struct sk_buff *skb,
 
 static bool ecn_mt(const struct sk_buff *skb, struct xt_action_param *par)
 {
-	const struct ipt_ecn_info *info = par->matchinfo;
+	const struct xt_ecn_info *info = par->matchinfo;
 
-	if (info->operation & IPT_ECN_OP_MATCH_IP)
+	if (info->operation & XT_ECN_OP_MATCH_IP)
 		if (!match_ip(skb, info))
 			return false;
 
-	if (info->operation & (IPT_ECN_OP_MATCH_ECE|IPT_ECN_OP_MATCH_CWR)) {
+	if (info->operation & (XT_ECN_OP_MATCH_ECE | XT_ECN_OP_MATCH_CWR)) {
 		if (!match_tcp(skb, info, &par->hotdrop))
 			return false;
 	}
@@ -87,16 +87,16 @@ static bool ecn_mt(const struct sk_buff *skb, struct xt_action_param *par)
 
 static int ecn_mt_check(const struct xt_mtchk_param *par)
 {
-	const struct ipt_ecn_info *info = par->matchinfo;
+	const struct xt_ecn_info *info = par->matchinfo;
 	const struct ipt_ip *ip = par->entryinfo;
 
-	if (info->operation & IPT_ECN_OP_MATCH_MASK)
+	if (info->operation & XT_ECN_OP_MATCH_MASK)
 		return -EINVAL;
 
-	if (info->invert & IPT_ECN_OP_MATCH_MASK)
+	if (info->invert & XT_ECN_OP_MATCH_MASK)
 		return -EINVAL;
 
-	if (info->operation & (IPT_ECN_OP_MATCH_ECE|IPT_ECN_OP_MATCH_CWR) &&
+	if (info->operation & (XT_ECN_OP_MATCH_ECE | XT_ECN_OP_MATCH_CWR) &&
 	    (ip->proto != IPPROTO_TCP || ip->invflags & IPT_INV_PROTO)) {
 		pr_info("cannot match TCP bits in rule for non-tcp packets\n");
 		return -EINVAL;
@@ -109,7 +109,7 @@ static struct xt_match ecn_mt_reg __read_mostly = {
 	.name		= "ecn",
 	.family		= NFPROTO_IPV4,
 	.match		= ecn_mt,
-	.matchsize	= sizeof(struct ipt_ecn_info),
+	.matchsize	= sizeof(struct xt_ecn_info),
 	.checkentry	= ecn_mt_check,
 	.me		= THIS_MODULE,
 };
-- 
1.7.7.3


^ permalink raw reply related

* [PATCH 3/5] netfilter: xtables: add an IPv6 capable version of the ECN match
From: pablo @ 2011-12-28 13:39 UTC (permalink / raw)
  To: netfilter-devel; +Cc: davem, netdev, jengelh, kaber
In-Reply-To: <1325079573-6120-1-git-send-email-pablo@netfilter.org>

From: Patrick McHardy <kaber@trash.net>

References: http://www.spinics.net/lists/netfilter-devel/msg18875.html

Augment xt_ecn by facilities to match on IPv6 packets' DSCP/TOS field
similar to how it is already done for the IPv4 packet field.

Signed-off-by: Jan Engelhardt <jengelh@medozas.de>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
---
 net/netfilter/xt_ecn.c |  106 ++++++++++++++++++++++++++++++++++++------------
 1 files changed, 80 insertions(+), 26 deletions(-)

diff --git a/net/netfilter/xt_ecn.c b/net/netfilter/xt_ecn.c
index 3ebb3dc..6ccc35d 100644
--- a/net/netfilter/xt_ecn.c
+++ b/net/netfilter/xt_ecn.c
@@ -1,6 +1,8 @@
-/* IP tables module for matching the value of the IPv4 and TCP ECN bits
+/*
+ * Xtables module for matching the value of the IPv4/IPv6 and TCP ECN bits
  *
  * (C) 2002 by Harald Welte <laforge@gnumonks.org>
+ * (C) 2011 Patrick McHardy <kaber@trash.net>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License version 2 as
@@ -17,32 +19,25 @@
 #include <linux/netfilter/x_tables.h>
 #include <linux/netfilter/xt_ecn.h>
 #include <linux/netfilter_ipv4/ip_tables.h>
+#include <linux/netfilter_ipv6/ip6_tables.h>
 
 MODULE_AUTHOR("Harald Welte <laforge@netfilter.org>");
-MODULE_DESCRIPTION("Xtables: Explicit Congestion Notification (ECN) flag match for IPv4");
+MODULE_DESCRIPTION("Xtables: Explicit Congestion Notification (ECN) flag match");
 MODULE_LICENSE("GPL");
 MODULE_ALIAS("ipt_ecn");
+MODULE_ALIAS("ip6t_ecn");
 
-static inline bool match_ip(const struct sk_buff *skb,
-			    const struct xt_ecn_info *einfo)
-{
-	return ((ip_hdr(skb)->tos & XT_ECN_IP_MASK) == einfo->ip_ect) ^
-	       !!(einfo->invert & XT_ECN_OP_MATCH_IP);
-}
-
-static inline bool match_tcp(const struct sk_buff *skb,
-			     const struct xt_ecn_info *einfo,
-			     bool *hotdrop)
+static bool match_tcp(const struct sk_buff *skb, struct xt_action_param *par)
 {
+	const struct xt_ecn_info *einfo = par->matchinfo;
 	struct tcphdr _tcph;
 	const struct tcphdr *th;
 
 	/* In practice, TCP match does this, so can't fail.  But let's
 	 * be good citizens.
 	 */
-	th = skb_header_pointer(skb, ip_hdrlen(skb), sizeof(_tcph), &_tcph);
+	th = skb_header_pointer(skb, par->thoff, sizeof(_tcph), &_tcph);
 	if (th == NULL) {
-		*hotdrop = false;
 		return false;
 	}
 
@@ -69,7 +64,14 @@ static inline bool match_tcp(const struct sk_buff *skb,
 	return true;
 }
 
-static bool ecn_mt(const struct sk_buff *skb, struct xt_action_param *par)
+static inline bool match_ip(const struct sk_buff *skb,
+			    const struct xt_ecn_info *einfo)
+{
+	return ((ip_hdr(skb)->tos & XT_ECN_IP_MASK) == einfo->ip_ect) ^
+	       !!(einfo->invert & XT_ECN_OP_MATCH_IP);
+}
+
+static bool ecn_mt4(const struct sk_buff *skb, struct xt_action_param *par)
 {
 	const struct xt_ecn_info *info = par->matchinfo;
 
@@ -78,14 +80,14 @@ static bool ecn_mt(const struct sk_buff *skb, struct xt_action_param *par)
 			return false;
 
 	if (info->operation & (XT_ECN_OP_MATCH_ECE | XT_ECN_OP_MATCH_CWR)) {
-		if (!match_tcp(skb, info, &par->hotdrop))
+		if (!match_tcp(skb, par))
 			return false;
 	}
 
 	return true;
 }
 
-static int ecn_mt_check(const struct xt_mtchk_param *par)
+static int ecn_mt_check4(const struct xt_mtchk_param *par)
 {
 	const struct xt_ecn_info *info = par->matchinfo;
 	const struct ipt_ip *ip = par->entryinfo;
@@ -105,23 +107,75 @@ static int ecn_mt_check(const struct xt_mtchk_param *par)
 	return 0;
 }
 
-static struct xt_match ecn_mt_reg __read_mostly = {
-	.name		= "ecn",
-	.family		= NFPROTO_IPV4,
-	.match		= ecn_mt,
-	.matchsize	= sizeof(struct xt_ecn_info),
-	.checkentry	= ecn_mt_check,
-	.me		= THIS_MODULE,
+static inline bool match_ipv6(const struct sk_buff *skb,
+			      const struct xt_ecn_info *einfo)
+{
+	return (((ipv6_hdr(skb)->flow_lbl[0] >> 4) & XT_ECN_IP_MASK) ==
+	        einfo->ip_ect) ^
+	       !!(einfo->invert & XT_ECN_OP_MATCH_IP);
+}
+
+static bool ecn_mt6(const struct sk_buff *skb, struct xt_action_param *par)
+{
+	const struct xt_ecn_info *info = par->matchinfo;
+
+	if (info->operation & XT_ECN_OP_MATCH_IP && !match_ipv6(skb, info))
+		return false;
+
+	if (info->operation & (XT_ECN_OP_MATCH_ECE | XT_ECN_OP_MATCH_CWR) &&
+	    !match_tcp(skb, par))
+		return false;
+
+	return true;
+}
+
+static int ecn_mt_check6(const struct xt_mtchk_param *par)
+{
+	const struct xt_ecn_info *info = par->matchinfo;
+	const struct ip6t_ip6 *ip = par->entryinfo;
+
+	if (info->operation & XT_ECN_OP_MATCH_MASK)
+		return -EINVAL;
+
+	if (info->invert & XT_ECN_OP_MATCH_MASK)
+		return -EINVAL;
+
+	if (info->operation & (XT_ECN_OP_MATCH_ECE | XT_ECN_OP_MATCH_CWR) &&
+	    (ip->proto != IPPROTO_TCP || ip->invflags & IP6T_INV_PROTO)) {
+		pr_info("cannot match TCP bits in rule for non-tcp packets\n");
+		return -EINVAL;
+	}
+
+	return 0;
+}
+
+static struct xt_match ecn_mt_reg[] __read_mostly = {
+	{
+		.name		= "ecn",
+		.family		= NFPROTO_IPV4,
+		.match		= ecn_mt4,
+		.matchsize	= sizeof(struct xt_ecn_info),
+		.checkentry	= ecn_mt_check4,
+		.me		= THIS_MODULE,
+	},
+	{
+		.name		= "ecn",
+		.family		= NFPROTO_IPV6,
+		.match		= ecn_mt6,
+		.matchsize	= sizeof(struct xt_ecn_info),
+		.checkentry	= ecn_mt_check6,
+		.me		= THIS_MODULE,
+	},
 };
 
 static int __init ecn_mt_init(void)
 {
-	return xt_register_match(&ecn_mt_reg);
+	return xt_register_matches(ecn_mt_reg, ARRAY_SIZE(ecn_mt_reg));
 }
 
 static void __exit ecn_mt_exit(void)
 {
-	xt_unregister_match(&ecn_mt_reg);
+	xt_unregister_matches(ecn_mt_reg, ARRAY_SIZE(ecn_mt_reg));
 }
 
 module_init(ecn_mt_init);
-- 
1.7.7.3


^ permalink raw reply related


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