View Issue Details

IDProjectCategoryView StatusLast Update
0006018CentOS-6CentOS-6-Pluspublic2013-02-27 01:16
Reportertoracat 
PrioritynormalSeveritycrashReproducibilityalways
Status resolvedResolutionfixed 
Product Version6.3 
Target VersionFixed in Version6.4 
Summary0006018: e1000e network crash -- request for adding patch(es) to the centosplus kernel
Description* Problem description

network crash occurs with intel e1000e (bridged networking).

$ modinfo e1000e
version: 1.9.5-k

$ lspci | grep Network
04:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
05:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection

* Solution

Apply a patch from commit d4a4206ebbaf48b55803a7eb34e330530d83a889
( http://thread.gmane.org/gmane.linux.kernel/1233566 )
Additional InformationThis was originally filed in an upstream bugzilla (865178).
TagsNo tags attached.

Activities

toracat

toracat

2012-10-13 17:52

manager   ~0015925

According to the BZ, the referenced patch ( e1000e: Disable ASPM L1 on 82574 ) is going to be backported to EL6.3. If this does not happen in the next kernel update, we can add it to the plus kernel.

There is one other patch that is related to the one referenced in the OP. It is unclear if this patch will also be applied upstream.

e1000e: Remove special case for 82573/82574 ASPM L1 disablement

commit 59aed95263bdd0e2b48eb9be5a94346d2d4abf90
toracat

toracat

2012-10-13 17:56

manager   ~0015926

Info for those who are affected by the bug: kmod-e1000e from ELRepo has a newer version of the driver that has the patches, so can be used as an interim solution.
toracat

toracat

2012-10-15 15:48

manager  

centos-linux-2.6-e1000e-disable-ASPM-L1-on-82574.patch (1,216 bytes)
commit d4a4206ebbaf48b55803a7eb34e330530d83a889
Author: Chris Boot <bootc@bootc.net>
Date:   Tue Apr 24 07:24:52 2012 +0000

    e1000e: Disable ASPM L1 on 82574
    
    ASPM on the 82574 causes trouble. Currently the driver disables L0s for
    this NIC but only disables L1 if the MTU is >1500. This patch simply
    causes L1 to be disabled regardless of the MTU setting.
    
    Signed-off-by: Chris Boot <bootc@bootc.net>
    Cc: "Wyborny, Carolyn" <carolyn.wyborny@intel.com>
    Cc: Nix <nix@esperi.org.uk>
    Link: https://lkml.org/lkml/2012/3/19/362
    Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

    Adopted for CentOSPlus by: Akemi Yagi <toracat@centos.org>

--- a/drivers/net/e1000e/82571.c	2012-08-31 05:04:17.000000000 -0700
+++ b/drivers/net/e1000e/82571.c	2012-10-15 08:30:48.000000000 -0700
@@ -2074,8 +2074,9 @@
 				  | FLAG_HAS_SMART_POWER_DOWN
 				  | FLAG_HAS_AMT
 				  | FLAG_HAS_CTRLEXT_ON_LOAD,
-	.flags2			  = FLAG2_CHECK_PHY_HANG
+	.flags2			 = FLAG2_CHECK_PHY_HANG
 				  | FLAG2_DISABLE_ASPM_L0S
+				  | FLAG2_DISABLE_ASPM_L1
 				  | FLAG2_NO_DISABLE_RX,
 	.pba			= 32,
 	.max_hw_frame_size	= DEFAULT_JUMBO,
toracat

toracat

2012-10-15 15:48

manager  

centos-linux-2.6-remove-special-case-for-82574ASPM-L1.patch (1,324 bytes)
commit 59aed95263bdd0e2b48eb9be5a94346d2d4abf90
Author: Chris Boot <bootc@bootc.net>
Date:   Tue Apr 24 07:24:58 2012 +0000

    e1000e: Remove special case for 82573/82574 ASPM L1 disablement
    
    For the 82573, ASPM L1 gets disabled wholesale so this special-case code
    is not required. For the 82574 the previous patch does the same as for
    the 82573, disabling L1 on the adapter. Thus, this code is no longer
    required and can be removed.
    
    Signed-off-by: Chris Boot <bootc@bootc.net>
    Tested-by: Jeff Pieper <jeffrey.e.pieper@intel.com>
    Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>

    Adopted for CentOSPlus by: Akemi Yagi <toracat@centos.org>

--- a/drivers/net/e1000e/netdev.c	2012-08-31 05:05:19.000000000 -0700
+++ b/drivers/net/e1000e/netdev.c	2012-10-15 08:35:54.000000000 -0700
@@ -5079,14 +5079,6 @@
 		return -EINVAL;
 	}
 
-	/* 82573 Errata 17 */
-	if (((adapter->hw.mac.type == e1000_82573) ||
-	     (adapter->hw.mac.type == e1000_82574)) &&
-	    (max_frame > ETH_FRAME_LEN + ETH_FCS_LEN)) {
-		adapter->flags2 |= FLAG2_DISABLE_ASPM_L1;
-		e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L1);
-	}
-
 	while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
 		usleep_range(1000, 2000);
 	/* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */
toracat

toracat

2012-10-15 15:49

manager   ~0015936

Centosified patches from the two commits uploaded.
toracat

toracat

2012-10-16 15:20

manager   ~0015944

What a timing! A kernel update released upstream ( 2.6.32-279.11.1.el6 ). The e1000e patch is not there yet. Applied to the cplus kernel.
toracat

toracat

2013-02-27 01:16

manager   ~0016548

The patches are in the 6.4 kernel ( 2.6.32-358.el6 ).

Issue History

Date Modified Username Field Change
2012-10-13 17:46 toracat New Issue
2012-10-13 17:52 toracat Note Added: 0015925
2012-10-13 17:53 toracat Status new => assigned
2012-10-13 17:56 toracat Note Added: 0015926
2012-10-15 15:48 toracat File Added: centos-linux-2.6-e1000e-disable-ASPM-L1-on-82574.patch
2012-10-15 15:48 toracat File Added: centos-linux-2.6-remove-special-case-for-82574ASPM-L1.patch
2012-10-15 15:49 toracat Note Added: 0015936
2012-10-16 15:20 toracat Note Added: 0015944
2013-02-27 01:16 toracat Note Added: 0016548
2013-02-27 01:16 toracat Status assigned => resolved
2013-02-27 01:16 toracat Resolution open => fixed
2013-02-27 01:16 toracat Fixed in Version => 6.4