[Bug 193053] ixgbe(4) IXGBE_LEGACY_TX + ALTQ path broken

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Sep 18 04:11:45 UTC 2014


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=193053

--- Comment #3 from ncrogers at gmail.com ---
>From what I can tell, the changes in the newer ixgbe driver here:

https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=14688

Fix two of three problems with the IXGBE_LEGACY_TX path that I changed in the
attached diff. My guess is because they were fixed because its pretty obvious
when auditing the code.

#1

 #ifdef IXGBE_LEGACY_TX
-    if (!IFQ_DRV_IS_EMPTY(ifp->if_snd))
+    if (!IFQ_DRV_IS_EMPTY(&ifp->if_snd))

This is fixed in the newer Intel driver. Not in FBSD.


#2

-#ifdef IXGBE_LEGACY_TX
-    if (txr->br != NULL)
-        buf_ring_free(txr->br, M_DEVBUF);
-#endif

This also seems to be fixed in the Intel driver, not FBSD, which as far as I
can tell affects the non-legacy path behavior (i.e., most everyone). In my diff
I opted to remove it, but in the newer Intel driver apparently its implied that
its necessary for the non-legacy path, as the #ifdef is changed to #ifndef.


#3

         else if (txr->queue_status == IXGBE_QUEUE_WORKING)
+#ifndef IXGBE_LEGACY_TX
             taskqueue_enqueue(que->tq, &txr->txq_task);
+#else
+            taskqueue_enqueue(que->tq, &que->que_task);
+#endif

I still believe this change is necessary, and its not in the newer Intel driver
from what I can tell, and its not so obvious unless you actually try to use the
legacy path. Again, I'm not an expert, so I hope someone can validate all of
this.


10/stable (and HEAD, I think) still have all three problems. It would indeed be
nice for this to be fixed in 10.1-RELEASE.

Thanks!

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-net mailing list