Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 15 Mar 2012 16:41:09 -0700
From:      Sean Bruno <seanbru@yahoo-inc.com>
To:        John Baldwin <jhb@freebsd.org>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Adrian Chadd <adrian@freebsd.org>, Hooman Fazaeli <hoomanfazaeli@gmail.com>, Jason Wolfe <nitroboost@gmail.com>
Subject:   Re: Intel 82574L interface wedging - em7.3.2/8.2-STABLE
Message-ID:  <1331854869.3317.15.camel@powernoodle-l7.corp.yahoo.com>
In-Reply-To: <201203151417.04507.jhb@freebsd.org>
References:  <CAAAm0r3Qj%2B2rf8cx54bcyAXGQezcE8J=xXYPq4W-jDy75r8qew@mail.gmail.com> <CAJ-Vmo=2BWQd3an3TT9-YZrLPYDoHs7ZJET360HMQijOWPavOQ@mail.gmail.com> <4F5C587B.6010004@gmail.com>  <201203151417.04507.jhb@freebsd.org>

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

> 
> Hmm, so I have yet to test this, but I found several bugs related to transmit 
> in em(4) and igb(4) recently just reading the code.  (Mostly unnecessary
> scheduling of tasks for transmit.)  I've included your change of restarting
> TX when link becomes active.  I've also updated it to fix resume for em
> and igb to DTRT when buf_ring is used, and to not include old-style start
> routines at all when using multiq.  It is at 
> http://www.freebsd.org/~jhb/patches/e1000_txeof2.patch
> 

I think that some of the code being removed originated from our universe
over here at Yahoo.  We were seeing the driver assert IFF_OACTIVE and
never clearing out.

Reviewing this patch at a glance I note that the check of IFF_OACTIVE
was removed, if the kernel can get us out of that state without the
IFF_OACTIVE checks, then I'm good with it.

Sean

ref:

@@ -1497,10 +1509,11 @@
 		if (!drbr_empty(ifp, txr->br))
 			em_mq_start_locked(ifp, txr, NULL);
 #else
-		em_start_locked(ifp, txr);
+		if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))
+			em_start_locked(ifp, txr);
 #endif
 		EM_TX_UNLOCK(txr);
-		if (more || (ifp->if_drv_flags & IFF_DRV_OACTIVE)) {
+		if (more) {
 			taskqueue_enqueue(adapter->tq, &adapter->que_task);
 			return;






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