Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 11 Oct 2014 15:40:39 -0700
From:      Adrian Chadd <adrian@freebsd.org>
To:        Luigi Rizzo <rizzo@iet.unipi.it>
Cc:        "freebsd-net@freebsd.org" <freebsd-net@freebsd.org>, Elof Ofel <elofu17@hotmail.com>, "Alexander V. Chernikov" <melifaro@freebsd.org>, Jack Vogel <jfvogel@gmail.com>
Subject:   Re: individual queue blocking entire rx unit on ixgbe (Re: How do I balance bandwidth over several virtual NICs?)
Message-ID:  <CAJ-VmonZhuBcTt%2BOUxKsTupqUnJ6dJXPVU=FvH3imLFhXCysfA@mail.gmail.com>
In-Reply-To: <20141011222457.GA11694@onelab2.iet.unipi.it>
References:  <CA%2BhQ2%2BhYY7AWE7jJWAg8uYER2LRSPz8TcVPuamsRBLj_WQyakw@mail.gmail.com> <CAJ-Vmo=xiZtKkQEV30Y_c7a6uWD6PbuqzmSSDG12J=w8Z45biA@mail.gmail.com> <20141001203223.GA12122@onelab2.iet.unipi.it> <CAJ-Vmom%2BDsDDa-1GgpUBps8=hMM_1c5auH5kKRiCxAs=w_Casg@mail.gmail.com> <20141001234926.GC13187@onelab2.iet.unipi.it> <CAJ-Vmo=6%2BzPhmmn=uEAX4V0MLqay8iN8yF2zeXYH5zFP6vHJwg@mail.gmail.com> <20141001235312.GA14593@onelab2.iet.unipi.it> <CAJ-VmokesukRXn1=9Rx0npJqYzUcTZ6=i%2BY5OjRFXdQFEM_2HQ@mail.gmail.com> <CAJ-VmokbhQj2ThjVa3NwUgDfiDt5vqVXvuZWvar%2BG2X0kM8_tQ@mail.gmail.com> <20141011222457.GA11694@onelab2.iet.unipi.it>

next in thread | previous in thread | raw e-mail | index | archive | help
Thanks! I'll review/commit this to -HEAD now.



-a


On 11 October 2014 15:24, Luigi Rizzo <rizzo@iet.unipi.it> wrote:
> On Sat, Oct 11, 2014 at 03:03:13PM -0700, Adrian Chadd wrote:
>> Ping,
>>
>> Luigi - would you mind sending through a diff ? I'd like to get this
>> into -HEAD on both igb and ixgbe.
>
>
> here it is.
>
> As a result of this patch, ixgbe_rx_enable_drop() and the disable function
> become useless and should be removed.
> Probably the code (or the commit log) should also mention that the DROP_EN
> bit is only read when the rx unit is started, this is why the code should
> go here and not in the sysctl handler.
>
> cheers
> luigi
>
> Index: ixgbe.c
> ===================================================================
> --- ixgbe.c     (revision 272603)
> +++ ixgbe.c     (working copy)
> @@ -4377,6 +4377,19 @@
>                 srrctl &= ~IXGBE_SRRCTL_BSIZEPKT_MASK;
>                 srrctl |= bufsz;
>                 srrctl |= IXGBE_SRRCTL_DESCTYPE_ADV_ONEBUF;
> +               /*
> +                * Set DROP_EN iff we have no flow control and >1 queue.
> +                * Note that srrctl was cleared shortly before during reset,
> +                * so we do not need to clear the bit, but do it just in case
> +                * this code is moved elsewhere.
> +                */
> +               if (adapter->num_queues > 1 &&
> +                   adapter->hw.fc.requested_mode == ixgbe_fc_none) {
> +                       srrctl |= IXGBE_SRRCTL_DROP_EN;
> +               } else {
> +                       srrctl &= ~IXGBE_SRRCTL_DROP_EN;
> +               }
> +
>                 IXGBE_WRITE_REG(hw, IXGBE_SRRCTL(i), srrctl);
>
>                 /* Setup the HW Rx Head and Tail Descriptor Pointers */



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAJ-VmonZhuBcTt%2BOUxKsTupqUnJ6dJXPVU=FvH3imLFhXCysfA>