Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 16 Oct 2012 16:12:01 +0400
From:      "Alexander V. Chernikov" <melifaro@FreeBSD.org>
To:        Ryan Stone <rysto32@gmail.com>
Cc:        Jack Vogel <jfvogel@gmail.com>, net@freebsd.org
Subject:   Re: ixgbe & if_igb RX ring locking
Message-ID:  <507D4F11.2030704@FreeBSD.org>
In-Reply-To: <CAFMmRNxT=GWxc6r7B81ENjzwJmfea3016Sh-DxJEGBwybM0QwQ@mail.gmail.com>
References:  <5079A9A1.4070403@FreeBSD.org> <20121015162926.GV89655@FreeBSD.org> <CAFMmRNxT=GWxc6r7B81ENjzwJmfea3016Sh-DxJEGBwybM0QwQ@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 16.10.2012 00:48, Ryan Stone wrote:
> On Mon, Oct 15, 2012 at 12:29 PM, Gleb Smirnoff <glebius@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





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