Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 20 Mar 2014 15:24:46 -0700
From:      Jack Vogel <jfvogel@gmail.com>
To:        Christopher Forgeron <csforgeron@gmail.com>
Cc:        FreeBSD Net <freebsd-net@freebsd.org>, Garrett Wollman <wollman@hergotha.csail.mit.edu>
Subject:   Re: 9.2 ixgbe tx queue hang
Message-ID:  <CAFOYbcn3%2BxwgK0q842Fvo-V5hOi-CeEzvv=7XFtZCJG1%2BYj7Tw@mail.gmail.com>
In-Reply-To: <CAB2_NwB4ZO7HYBvvuJ-NDSqo=HvbCz34RUnW_YmGagQs1guaFw@mail.gmail.com>
References:  <CAB2_NwDG=gB1WCJ7JKTHpkJCrvPuAhipkn%2BvPyT%2BxXzOBrTGkg@mail.gmail.com> <1159309884.25490921.1395282576806.JavaMail.root@uoguelph.ca> <CAB2_NwAOmPtZjB03pdDiTK2OvQgqk-tYf83Jq4Ukt9jnZA8CNA@mail.gmail.com> <201403202113.s2KLD7GB085085@hergotha.csail.mit.edu> <CAB2_NwCjQ6qtx0SbEERVGs2Y_5pae-g=UbFEwkzmWYGoTuoP%2BQ@mail.gmail.com> <CAFOYbckqw1wT41a-_3FMs6-KNVMV319nODtQ2F09eDRZavFPTg@mail.gmail.com> <CAB2_NwB4ZO7HYBvvuJ-NDSqo=HvbCz34RUnW_YmGagQs1guaFw@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
I strongly discourage anyone from disabling TSO on 10G, its necessary to
get the
performance one wants to see on the hardware.

Here is a patch to do what i'm talking about:

*** ixgbe.c    Fri Jan 10 18:12:20 2014
--- ixgbe.jfv.c    Thu Mar 20 23:04:15 2014
*************** ixgbe_init_locked(struct adapter *adapte
*** 1140,1151 ****
          */
          if (adapter->max_frame_size <= 2048)
                  adapter->rx_mbuf_sz = MCLBYTES;
-         else if (adapter->max_frame_size <= 4096)
-                 adapter->rx_mbuf_sz = MJUMPAGESIZE;
-         else if (adapter->max_frame_size <= 9216)
-                 adapter->rx_mbuf_sz = MJUM9BYTES;
          else
!                 adapter->rx_mbuf_sz = MJUM16BYTES;

          /* Prepare receive descriptors and buffers */
          if (ixgbe_setup_receive_structures(adapter)) {
--- 1140,1147 ----
          */
          if (adapter->max_frame_size <= 2048)
                  adapter->rx_mbuf_sz = MCLBYTES;
          else
!                 adapter->rx_mbuf_sz = MJUMPAGESIZE;

          /* Prepare receive descriptors and buffers */
          if (ixgbe_setup_receive_structures(adapter)) {






On Thu, Mar 20, 2014 at 3:12 PM, Christopher Forgeron
<csforgeron@gmail.com>wrote:

> Hi Jack,
>
>  I'm on ixgbe 2.5.15
>
>  I see a few other threads about using MJUMPAGESIZE instead of MJUM9BYTES.
>
>  If you have a patch you'd like me to test, I'll compile it in and let you
> know. I was just looking at Garrett's if_em.c patch and thinking about
> applying it to ixgbe..
>
>  As it stands I seem to not be having the problem now that I have disabled
> TSO on ix0, but I still need more test runs to confirm - Which is also in
> line (i think) with what you are all saying.
>
>
>
>
> On Thu, Mar 20, 2014 at 7:00 PM, Jack Vogel <jfvogel@gmail.com> wrote:
>
>> What he's saying is that the driver should not be using 9K mbuf clusters,
>> I thought
>> this had been changed but I see the code in HEAD is still using the
>> larger clusters
>> when you up the mtu.  I will put it on my list to change with the next
>> update to HEAD.
>>
>>
>> What version of ixgbe are you using?
>>
>> Jack
>>
>>
>>
>> On Thu, Mar 20, 2014 at 2:34 PM, Christopher Forgeron <
>> csforgeron@gmail.com> wrote:
>>
>>> I have found this:
>>>
>>> http://lists.freebsd.org/pipermail/freebsd-net/2013-October/036955.html
>>>
>>> I think what you're saying is that;
>>> - a MTU of 9000 doesn't need to equal a 9k mbuf / jumbo cluster
>>> - modern NIC drivers can gather 9000 bytes of data from various memory
>>> locations
>>> - The fact that I'm seeing 9k jumbo clusters is showing me that my driver
>>> is trying to allocate 9k of contiguous space, and it's failing.
>>>
>>> Please correct me if I'm off here, I'd love to understand more.
>>>
>>>
>>> On Thu, Mar 20, 2014 at 6:13 PM, Garrett Wollman <
>>> wollman@hergotha.csail.mit.edu> wrote:
>>>
>>> > In article
>>> > <CAB2_NwAOmPtZjB03pdDiTK2OvQgqk-tYf83Jq4Ukt9jnZA8CNA@mail.gmail.com>,
>>> > csforgeron@gmail.com writes:
>>> >
>>> > >50/27433/0 requests for jumbo clusters denied (4k/9k/16k)
>>> >
>>> > This is going to screw you.  You need to make sure that no NIC driver
>>> > ever allocates 9k jumbo pages -- unless you are using one of those
>>> > mythical drivers that can't do scatter/gather DMA on receive, which
>>> > you don't appear to be.
>>> >
>>> > These failures occur when the driver is trying to replenish its
>>> > receive queue, but is unable to allocate three *physically* contiguous
>>> > pages of RAM to construct the 9k jumbo cluster (of which the remaining
>>> > 3k is simply wasted).  This happens on any moderately active server,
>>> > once physical memory gets checkerboarded with active single pages,
>>> > particularly with ZFS where those pages are wired in kernel memory and
>>> > so can't be evicted.
>>> >
>>> > -GAWollman
>>> >
>>> _______________________________________________
>>> freebsd-net@freebsd.org mailing list
>>> http://lists.freebsd.org/mailman/listinfo/freebsd-net
>>> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>>>
>>
>>
>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAFOYbcn3%2BxwgK0q842Fvo-V5hOi-CeEzvv=7XFtZCJG1%2BYj7Tw>