Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 27 Sep 2012 18:07:29 +0700 (NOVT)
From:      Eugene Grosbein <egrosbein@rdtc.ru>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        jfv@FreeBSD.org, qa@FreeBSD.org
Subject:   kern/172113: [panic] [igb] [patch] 9.1-RC1/amd64 panices in igb(4): m_getjcl: invalid cluster type
Message-ID:  <201209271107.q8RB7TKg010636@eg.sd.rdtc.ru>
Resent-Message-ID: <201209271110.q8RBAAj9001526@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help

>Number:         172113
>Category:       kern
>Synopsis:       [panic] [igb] [patch] 9.1-RC1/amd64 panices in igb(4): m_getjcl: invalid cluster type
>Confidential:   no
>Severity:       critical
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Sep 27 11:10:09 UTC 2012
>Closed-Date:
>Last-Modified:
>Originator:     Eugene Grosbein
>Release:        FreeBSD 9.1-RC1 amd64
>Organization:
RDTC JSC
>Environment:
System: FreeBSD 9.1-RC1

>Description:
	
	We have got SuperMicro-based server (X8DTU-6+ motherboard),
	with CPU having 12 cores (with hyperthreadng that's 24 CPUs).
	
	We downloaded 9.1-RC1 installation CD and tried to boot it.
	It panices during igb(4) driver init:

http://www.grosbein.net/img/crash-91rc.png

	This is 100% repeatable.

>How-To-Repeat:

	See above.
>Fix:

	Workaround is to disable MSI-X in /boot/loader.conf:

hw.pci.enable_msix=0

	This allows us to boot installation CD and install the system.

	I've found this problem is pretty old and should have been fixed
	over a year ago in 9.0 but it wasn't.

	I've found patch by David G. Lawrence in that thread:
	http://lists.freebsd.org/pipermail/freebsd-stable/2011-September/063963.html

	The patch needed some corrections to be applied to 9.1-RC1,
	so I've corrected it and it solved the problem.
	Here is version for 9.1-RC1:

--- sys/dev/e1000/if_igb.c.orig	2012-09-27 14:57:22.000000000 +0700
+++ sys/dev/e1000/if_igb.c	2012-09-27 15:04:35.000000000 +0700
@@ -1328,9 +1328,6 @@
 	/* Don't lose promiscuous settings */
 	igb_set_promisc(adapter);
 
-	ifp->if_drv_flags |= IFF_DRV_RUNNING;
-	ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
-
 	callout_reset(&adapter->timer, hz, igb_local_timer, adapter);
 	e1000_clear_hw_cntrs_base_generic(&adapter->hw);
 
@@ -1356,6 +1353,9 @@
 	/* Set Energy Efficient Ethernet */
 	if (adapter->hw.phy.media_type == e1000_media_type_copper)
 		e1000_set_eee_i350(&adapter->hw);
+
+	ifp->if_drv_flags |= IFF_DRV_RUNNING;
+	ifp->if_drv_flags &= ~IFF_DRV_OACTIVE;
 }
 
 static void
@@ -1570,6 +1570,11 @@
 	E1000_WRITE_REG(&adapter->hw, E1000_EIMC, que->eims);
 	++que->irqs;
 
+	if (!(adapter->ifp->if_drv_flags & IFF_DRV_RUNNING)) {
+		return;
+	}
+	more_rx = igb_rxeof(que, adapter->rx_process_limit, NULL);
+
 	IGB_TX_LOCK(txr);
 	igb_txeof(txr);
 #if __FreeBSD_version >= 800000
@@ -1583,8 +1588,6 @@
 #endif
 	IGB_TX_UNLOCK(txr);
 
-	more_rx = igb_rxeof(que, adapter->rx_process_limit, NULL);
-
 	if (adapter->enable_aim == FALSE)
 		goto no_calc;
 	/*

	

>Release-Note:
>Audit-Trail:
>Unformatted:



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209271107.q8RB7TKg010636>