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

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Thu Sep 18 22:53:41 UTC 2014


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

--- Comment #5 from ncrogers at gmail.com ---
(In reply to Eric Joyner from comment #4)
> Why do you believe the third change is necessary? Is there a reason the
> extra code in the que_task tasklet must run in the legacy tx case?

Because of this part of the compile error when I tried to build a new kernel.

/usr/src/sys/dev/ixgbe/ixgbe.c: In function 'ixgbe_local_timer':
/usr/src/sys/dev/ixgbe/ixgbe.c:2077: error: 'struct tx_ring' has no member
named 'txq_task'

Everything else relying on txr->txq_task is either confined to within a
multiqueue (non-legacy) function or there is an #ifndef IXGBE_LEGACY_TX around
it.

Furthermore, if you look at an older version of the ixgbe_local_timer function,
it has taskqueue_enqueue(que->tq, &que->que_task)
instead of
taskqueue_enqueue(que->tq, &txr->txq_task);

Here is the change where that happened. 

http://svnweb.freebsd.org/base/head/sys/dev/ixgbe/ixgbe.c?annotate=271648
Line 2066
http://svnweb.freebsd.org/base?view=revision&revision=251964

Note that was the only line in ixgbe_local_timer that was changed. I believe
this change was made without consideration of the LEGACY_TX path, which is
strange, because the commit was evidently intended to add ALTQ support via the
LEGACY_TX path.

Also, the igb/e1000 driver (if_igb.c) has a similar behavior in the same
function, where taskqueue_enqueue(que->tq, &que->que_task) is used.

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


More information about the freebsd-net mailing list