On 16.10.2012 00:48, Ryan Stone wrote:
On Mon, Oct 15, 2012 at 12:29 PM, Gleb Smirnoff <gleb...@freebsd.org> wrote:
To me this unlock/lock looks like a legacy from times, when the driver
had a single mutex for both TX and RX parts.
And removing this re-locking in foo_rxeof() was one of the aims for separate
TX/RX locking.
Really, lurking through history shows that once driver had split its locking
to separate RX and TX part, these unlock/lock was removed. However, later
this unlock/lock was added back:
http://svnweb.freebsd.org/base/head/sys/dev/e1000/if_igb.c?revision=209068&view=markup
, without any comments for the reason it is added back.
There's a convoluted LOR if you call into the stack with the RX lock
held which is described here:
http://lists.freebsd.org/pipermail/freebsd-net/2012-September/033371.html
Are you using stock ixgbe driver?
lock order reversal:^M^M
1st 0xffffff800153c138 ix:rx (ix:rx) @ src/sys/dev/ixgbe/ixgbe.c:7113^M^M
2nd 0xffffffff80af9c48 udp (udp) @ src/sys/netinet/udp_usrreq.c:471^M^M
It seems to me than ixgbe.c was always like ~5.5k lines of code, line
7113 seems a bit suspicious.
2nd 0xffffff8001539400 ixgbe0 (IXGBE Core Lock) @
src/sys/dev/ixgbe/ixgbe.c:1725
Nearest IXGBE_CORE_LOCK() in r217917 (8.2-R) resides at line 905.
Maybe I'm missing something obvious?
--
WBR, Alexander
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"