We have a test where we set the TCP MSS to a small value and then generate traffic at high speeds. This causes the NIC to segment packets, giving us some easy hardware-accel for creating lots of small packets on the wire. Good for testing.
With some on-board NICs (82474L), we see some problems when we do this unless we disable TCP offload (TSO). MSS was set to 256 for this test. We do not see this problem with the i350 based ports on the add-in NIC. lspci: [root@localhost ~]# lspci 00:00.0 Host bridge: Intel Corporation Xeon E3-1200 v2/Ivy Bridge DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200 v2/3rd Gen Core processor PCI Express Root Port (rev 09) 00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 (rev 04) 00:16.1 Communication controller: Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #2 (rev 04) 00:1a.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 (rev 05) 00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 1 (rev b5) 00:1c.4 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 5 (rev b5) 00:1c.5 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 6 (rev b5) 00:1c.6 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 7 (rev b5) 00:1c.7 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset Family PCI Express Root Port 8 (rev b5) 00:1d.0 USB controller: Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 (rev 05) 00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) 00:1f.0 ISA bridge: Intel Corporation C204 Chipset Family LPC Controller (rev 05) 00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family SATA AHCI Controller (rev 05) 00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller (rev 05) 01:00.0 PCI bridge: PLX Technology, Inc. PEX 8617 16-lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch with P2P (rev ba) 02:01.0 PCI bridge: PLX Technology, Inc. PEX 8617 16-lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch with P2P (rev ba) 02:03.0 PCI bridge: PLX Technology, Inc. PEX 8617 16-lane, 4-Port PCI Express Gen 2 (5.0 GT/s) Switch with P2P (rev ba) 03:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 03:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 03:00.2 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 03:00.3 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 05:00.0 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 05:00.1 Ethernet controller: Intel Corporation I350 Gigabit Network Connection (rev 01) 08:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 09:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 0a:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 0b:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection 0c:03.0 VGA compatible controller: Matrox Electronics Systems Ltd. MGA G200eW WPCM450 (rev 0a) [root@localhost ~]# dmesg: [23685.770208] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23685.793946] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23685.794452] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready [23801.390528] irq 101: nobody cared (try booting with the "irqpoll" option) [23801.396373] Pid: 42, comm: ksoftirqd/5 Tainted: G C O 3.9.11+ #136 [23801.396374] Call Trace: [23801.396376] <IRQ> [<ffffffff811065db>] __report_bad_irq+0x3a/0xc6 [23801.396384] [<ffffffff811067d0>] note_interrupt+0x169/0x1e5 [23801.396386] [<ffffffff81104761>] handle_irq_event_percpu+0x18f/0x1e5 [23801.396388] [<ffffffff811047f8>] handle_irq_event+0x41/0x61 [23801.396390] [<ffffffff81106fbc>] handle_edge_irq+0xa6/0xcb [23801.396393] [<ffffffff81011d9f>] handle_irq+0x24/0x2d [23801.396397] [<ffffffff815d38cd>] do_IRQ+0x4d/0xb4 [23801.396400] [<ffffffff815cb9ed>] common_interrupt+0x6d/0x6d [23801.396400] <EOI> [<ffffffff81509b67>] ? __netdev_alloc_frag+0xfb/0x112 [23801.396406] [<ffffffff8150adea>] __netdev_alloc_skb+0x4c/0xfa [23801.396408] [<ffffffff81512f17>] ? napi_gro_receive+0xe6/0xf1 [23801.396417] [<ffffffffa086ea7c>] igb_poll+0x4a2/0xc92 [igb] [23801.396420] [<ffffffff810c0058>] ? cpuacct_charge+0x67/0x6f [23801.396422] [<ffffffff810c6969>] ? update_stats_wait_end+0x7d/0xd3 [23801.396424] [<ffffffff81512a43>] net_rx_action+0xc2/0x267 [23801.396428] [<ffffffff8109da08>] __do_softirq+0x114/0x254 [23801.396430] [<ffffffff8109db70>] run_ksoftirqd+0x28/0x47 [23801.396433] [<ffffffff810bb40c>] smpboot_thread_fn+0x217/0x21f [23801.396436] [<ffffffff810bb1f5>] ? test_ti_thread_flag.clone.0+0x11/0x11 [23801.396439] [<ffffffff810b496d>] kthread+0xb5/0xbd [23801.396442] [<ffffffff810b48b8>] ? kthread_freezable_should_stop+0x60/0x60 [23801.396444] [<ffffffff815d1bec>] ret_from_fork+0x7c/0xb0 [23801.396447] [<ffffffff810b48b8>] ? kthread_freezable_should_stop+0x60/0x60 [23801.396448] handlers: [23801.397492] [<ffffffffa078b73e>] e1000_msix_other [e1000e] [23801.402016] Disabling IRQ #101 [23803.545095] irq 89: nobody cared (try booting with the "irqpoll" option) [23803.550903] Pid: 0, comm: swapper/7 Tainted: G C O 3.9.11+ #136 [23803.550904] Call Trace: [23803.550905] <IRQ> [<ffffffff811065db>] __report_bad_irq+0x3a/0xc6 [23803.550913] [<ffffffff811067d0>] note_interrupt+0x169/0x1e5 [23803.550916] [<ffffffff81104761>] handle_irq_event_percpu+0x18f/0x1e5 [23803.550918] [<ffffffff811047f8>] handle_irq_event+0x41/0x61 [23803.550920] [<ffffffff81106fbc>] handle_edge_irq+0xa6/0xcb [23803.550924] [<ffffffff81011d9f>] handle_irq+0x24/0x2d [23803.550928] [<ffffffff815d38cd>] do_IRQ+0x4d/0xb4 [23803.550931] [<ffffffff815cb9ed>] common_interrupt+0x6d/0x6d [23803.550932] <EOI> [<ffffffff814c8209>] ? cpuidle_wrap_enter+0x46/0x78 [23803.550938] [<ffffffff814c8209>] ? cpuidle_wrap_enter+0x46/0x78 [23803.550940] [<ffffffff814c81ff>] ? cpuidle_wrap_enter+0x3c/0x78 [23803.550943] [<ffffffff814c824b>] cpuidle_enter_tk+0x10/0x12 [23803.550945] [<ffffffff814c7d05>] cpuidle_enter_state+0x17/0x3f [23803.550947] [<ffffffff814c8484>] cpuidle_idle_call+0xba/0xfa [23803.550950] [<ffffffff810177dd>] cpu_idle+0x65/0xb5 [23803.550953] [<ffffffff815c47b8>] start_secondary+0x211/0x213 [23803.550954] handlers: [23803.551992] [<ffffffffa078b73e>] e1000_msix_other [e1000e] [23803.556487] Disabling IRQ #89 [23805.767276] NETDEV WATCHDOG: eth2 (e1000e): transmit queue 0 timed out, trans_start: 4318501615, wd-timeout: 5000 jiffies: 4318510992 tx-queues: 1 [23805.767285] ------------[ cut here ]------------ [23805.767290] WARNING: at /home/greearb/git/linux-3.9.dev.y/net/sched/sch_generic.c:261 dev_watchdog+0x135/0x19b() [23805.767292] Hardware name: X9SCI/X9SCA [23805.767293] Modules linked in: nf_nat_ipv4 nf_nat 8021q garp stp mrp llc macvlan wanlink(O) pktgen fuse ip6table_filter ip6_tables ebtable_nat ebtables igb e1000e coretemp acpi_cpufreq mperf intel_powerclamp kvm_intel kvm hwmon dca iTCO_wdt iTCO_vendor_support microcode pcspkr serio_raw i2c_i801 joydev lpc_ich ptp pps_core shpchp video uinput ipv6 usb_storage mgag200 i2c_algo_bit drm_kms_helper ttm drm i2c_core [last unloaded: iptable_nat] [23805.767325] Pid: 0, comm: swapper/4 Tainted: G C O 3.9.11+ #136 [23805.767326] Call Trace: [23805.767327] <IRQ> [<ffffffff81096291>] warn_slowpath_common+0x85/0x9f [23805.767336] [<ffffffff810962c5>] warn_slowpath_null+0x1a/0x1c [23805.767338] [<ffffffff8152dfb4>] dev_watchdog+0x135/0x19b [23805.767341] [<ffffffff8152de7f>] ? netif_tx_unlock+0x76/0x76 [23805.767344] [<ffffffff810a4500>] call_timer_fn+0x57/0x12c [23805.767347] [<ffffffff810a4855>] run_timer_softirq+0x197/0x1df [23805.767349] [<ffffffff8152de7f>] ? netif_tx_unlock+0x76/0x76 [23805.767353] [<ffffffff8109da08>] __do_softirq+0x114/0x254 [23805.767355] [<ffffffff8109dbda>] irq_exit+0x4b/0xa8 [23805.767359] [<ffffffff815d39bf>] smp_apic_timer_interrupt+0x8b/0x99 [23805.767365] [<ffffffff815d289d>] apic_timer_interrupt+0x6d/0x80 [23805.767367] <EOI> [<ffffffff815cb4a1>] ? _raw_spin_unlock_irqrestore+0x31/0x3c [23805.767374] [<ffffffff814c8209>] ? cpuidle_wrap_enter+0x46/0x78 [23805.767377] [<ffffffff814c81ff>] ? cpuidle_wrap_enter+0x3c/0x78 [23805.767380] [<ffffffff814c824b>] cpuidle_enter_tk+0x10/0x12 [23805.767383] [<ffffffff814c7d05>] cpuidle_enter_state+0x17/0x3f [23805.767387] [<ffffffff814c8484>] cpuidle_idle_call+0xba/0xfa [23805.767391] [<ffffffff810177dd>] cpu_idle+0x65/0xb5 [23805.767396] [<ffffffff815c47b8>] start_secondary+0x211/0x213 [23805.767400] ---[ end trace 21ceb1647ffbb4c8 ]--- [23805.767412] e1000e 0000:0a:00.0 eth2: Reset adapter unexpectedly [23805.783253] NETDEV WATCHDOG: eth3 (e1000e): transmit queue 0 timed out, trans_start: 4318502992, wd-timeout: 5000 jiffies: 4318511008 tx-queues: 1 [23805.783260] e1000e 0000:0b:00.0 eth3: Reset adapter unexpectedly [23884.253486] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready [23884.253489] 8021q: adding VLAN 0 to HW filter on device eth2 [23884.408039] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready [23884.408044] 8021q: adding VLAN 0 to HW filter on device eth3 [23886.830934] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23886.831369] IPv6: ADDRCONF(NETDEV_CHANGE): eth3: link becomes ready [23886.854655] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23886.855055] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready [23896.616030] NETDEV WATCHDOG: eth3 (e1000e): transmit queue 0 timed out, trans_start: 4318596830, wd-timeout: 5000 jiffies: 4318601984 tx-queues: 1 [23896.616051] e1000e 0000:0b:00.0 eth3: Reset adapter unexpectedly [23897.431037] e1000e: eth2 NIC Link is Down [23900.022751] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23900.058162] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23945.562851] NETDEV WATCHDOG: eth2 (e1000e): transmit queue 0 timed out, trans_start: 4318641649, wd-timeout: 5000 jiffies: 4318651008 tx-queues: 1 [23945.562853] NETDEV WATCHDOG: eth3 (e1000e): transmit queue 0 timed out, trans_start: 4318641850, wd-timeout: 5000 jiffies: 4318651008 tx-queues: 1 [23945.562863] e1000e 0000:0a:00.0 eth2: Reset adapter unexpectedly [23945.562866] e1000e 0000:0b:00.0 eth3: Reset adapter unexpectedly [23948.047189] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [23948.055451] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [24802.212164] NETDEV WATCHDOG: eth3 (e1000e): transmit queue 0 timed out, trans_start: 4319501792, wd-timeout: 5000 jiffies: 4319509008 tx-queues: 1 [24802.212252] e1000e 0000:0b:00.0 eth3: Reset adapter unexpectedly [24803.039033] e1000e: eth2 NIC Link is Down [24805.520298] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [24805.545601] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [25170.569269] irq 89: nobody cared (try booting with the "irqpoll" option) [25170.575072] Pid: 0, comm: swapper/3 Tainted: G WC O 3.9.11+ #136 [25170.575073] Call Trace: [25170.575075] <IRQ> [<ffffffff811065db>] __report_bad_irq+0x3a/0xc6 [25170.575085] [<ffffffff811067d0>] note_interrupt+0x169/0x1e5 [25170.575088] [<ffffffff81104761>] handle_irq_event_percpu+0x18f/0x1e5 [25170.575090] [<ffffffff811047f8>] handle_irq_event+0x41/0x61 [25170.575092] [<ffffffff81106fbc>] handle_edge_irq+0xa6/0xcb [25170.575096] [<ffffffff81011d9f>] handle_irq+0x24/0x2d [25170.575100] [<ffffffff815d38cd>] do_IRQ+0x4d/0xb4 [25170.575103] [<ffffffff815cb9ed>] common_interrupt+0x6d/0x6d [25170.575104] <EOI> [<ffffffff810e0e2a>] ? tick_nohz_idle_exit+0x152/0x15b [25170.575111] [<ffffffff810e0dda>] ? tick_nohz_idle_exit+0x102/0x15b [25170.575115] [<ffffffff8101781d>] cpu_idle+0xa5/0xb5 [25170.575119] [<ffffffff815c47b8>] start_secondary+0x211/0x213 [25170.575120] handlers: [25170.576161] [<ffffffffa078b73e>] e1000_msix_other [e1000e] [25170.580714] Disabling IRQ #89 [25170.623312] NETDEV WATCHDOG: eth2 (e1000e): transmit queue 0 timed out, trans_start: 4319872046, wd-timeout: 5000 jiffies: 4319878000 tx-queues: 1 [25170.623326] e1000e 0000:0a:00.0 eth2: Reset adapter unexpectedly [25170.639287] NETDEV WATCHDOG: eth3 (e1000e): transmit queue 0 timed out, trans_start: 4319871842, wd-timeout: 5000 jiffies: 4319878016 tx-queues: 1 [25170.639298] e1000e 0000:0b:00.0 eth3: Reset adapter unexpectedly [25173.147951] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [25732.742950] IPv6: ADDRCONF(NETDEV_UP): eth2: link is not ready [25732.742954] 8021q: adding VLAN 0 to HW filter on device eth2 [25732.900780] IPv6: ADDRCONF(NETDEV_UP): eth3: link is not ready [25732.900784] 8021q: adding VLAN 0 to HW filter on device eth3 [25735.327650] e1000e: eth3 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [25735.328136] IPv6: ADDRCONF(NETDEV_CHANGE): eth3: link becomes ready [25735.335623] e1000e: eth2 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx [25735.336123] IPv6: ADDRCONF(NETDEV_CHANGE): eth2: link becomes ready Thanks, Ben -- Ben Greear <[email protected]> Candela Technologies Inc http://www.candelatech.com ------------------------------------------------------------------------------ _______________________________________________ E1000-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/e1000-devel To learn more about Intel® Ethernet, visit http://communities.intel.com/community/wired
