ixgbe rx & tx locks
John Baldwin
jhb at freebsd.org
Wed Sep 26 19:38:34 UTC 2012
On Wednesday, September 26, 2012 3:08:22 pm Ryan Stone wrote:
> On Wed, Sep 26, 2012 at 9:55 AM, John Baldwin <jhb at freebsd.org> wrote:
> > You only have to drop the RX lock around if_input() if you use the same lock
> > for both TX and RX (as if_transmit() / if_start() can be invoked while locks
> > in the network stack are held).
>
> Last time I checked(FreeBSD 8.2), this is not true. The problematic
> (and convoluted) ordering is:
>
> ix:rx -> udp -> udpinp -> in_multi_mtx -> ix:core -> ix:rx
Hmm, I'm not sure where the 'in_multi_mtx -> ix:core' bit comes from.
I think that is the broken part of this. The SIOCADDMULTI and SIOCDELMULTI
ioctls are invoked without any stack locks held, so it shouldn't come from
there.
--
John Baldwin
More information about the freebsd-net
mailing list