linux-mips
[Top] [All Lists]

Re: [PATCH RFC 40/77] ixgbevf: Update MSI/MSI-X interrupts enablement co

To: Alexander Gordeev <agordeev@redhat.com>
Subject: Re: [PATCH RFC 40/77] ixgbevf: Update MSI/MSI-X interrupts enablement code
From: "Keller, Jacob E" <jacob.e.keller@intel.com>
Date: Wed, 2 Oct 2013 20:50:51 +0000
Accept-language: en-US
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, "Bjorn Helgaas" <bhelgaas@google.com>, Ralf Baechle <ralf@linux-mips.org>, "Michael Ellerman" <michael@ellerman.id.au>, Benjamin Herrenschmidt <benh@kernel.crashing.org>, Martin Schwidefsky <schwidefsky@de.ibm.com>, Ingo Molnar <mingo@redhat.com>, Tejun Heo <tj@kernel.org>, "Williams, Dan J" <dan.j.williams@intel.com>, Andy King <acking@vmware.com>, "Mason, Jon" <jon.mason@intel.com>, Matt Porter <mporter@kernel.crashing.org>, "linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>, "linux-mips@linux-mips.org" <linux-mips@linux-mips.org>, "linuxppc-dev@lists.ozlabs.org" <linuxppc-dev@lists.ozlabs.org>, "linux390@de.ibm.com" <linux390@de.ibm.com>, "linux-s390@vger.kernel.org" <linux-s390@vger.kernel.org>, "x86@kernel.org" <x86@kernel.org>, "linux-ide@vger.kernel.org" <linux-ide@vger.kernel.org>, "iss_storagedev@hp.com" <iss_storagedev@hp.com>, "linux-nvme@lists.infradead.org" <linux-nvme@lists.infradead.org>, "linux-rdma@vger.kernel.org" <linux-rdma@vger.kernel.org>, "netdev@vger.kernel.org" <netdev@vger.kernel.org>, "e1000-devel@lists.sourceforge.net" <e1000-devel@lists.sourceforge.net>, "linux-driver@qlogic.com" <linux-driver@qlogic.com>, "Solarflare linux maintainers" <linux-net-drivers@solarflare.com>, "VMware, Inc." <pv-drivers@vmware.com>, "linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>
In-reply-to: <338c9012577acf694eb23622902185584987bd8f.1380703263.git.agordeev@redhat.com>
List-archive: <http://www.linux-mips.org/archives/linux-mips/>
List-help: <mailto:ecartis@linux-mips.org?Subject=help>
List-id: linux-mips <linux-mips.eddie.linux-mips.org>
List-owner: <mailto:ralf@linux-mips.org>
List-post: <mailto:linux-mips@linux-mips.org>
List-software: Ecartis version 1.0.0
List-subscribe: <mailto:ecartis@linux-mips.org?subject=subscribe%20linux-mips>
List-unsubscribe: <mailto:ecartis@linux-mips.org?subject=unsubscribe%20linux-mips>
Original-recipient: rfc822;linux-mips@linux-mips.org
References: <cover.1380703262.git.agordeev@redhat.com> <338c9012577acf694eb23622902185584987bd8f.1380703263.git.agordeev@redhat.com>
Sender: linux-mips-bounce@linux-mips.org
Thread-index: AQHOv5DJzxc+2V04zE2Th/Wpeuij1ZniWF+A
Thread-topic: [PATCH RFC 40/77] ixgbevf: Update MSI/MSI-X interrupts enablement code
On Wed, 2013-10-02 at 12:48 +0200, Alexander Gordeev wrote:
> As result of recent re-design of the MSI/MSI-X interrupts enabling
> pattern this driver has to be updated to use the new technique to
> obtain a optimal number of MSI/MSI-X interrupts required.
> 
> Signed-off-by: Alexander Gordeev <agordeev@redhat.com>
> ---
>  drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c |   18 +++++++-----------
>  1 files changed, 7 insertions(+), 11 deletions(-)
> 
> diff --git a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c 
> b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> index fa0537a..d506a01 100644
> --- a/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> +++ b/drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c
> @@ -1749,8 +1749,7 @@ void ixgbevf_reset(struct ixgbevf_adapter *adapter)
>  static int ixgbevf_acquire_msix_vectors(struct ixgbevf_adapter *adapter,
>                                       int vectors)
>  {
> -     int err = 0;
> -     int vector_threshold;
> +     int err, vector_threshold;
>  
>       /* We'll want at least 2 (vector_threshold):
>        * 1) TxQ[0] + RxQ[0] handler
> @@ -1763,18 +1762,15 @@ static int ixgbevf_acquire_msix_vectors(struct 
> ixgbevf_adapter *adapter,
>        * Right now, we simply care about how many we'll get; we'll
>        * set them up later while requesting irq's.
>        */
> -     while (vectors >= vector_threshold) {
> -             err = pci_enable_msix(adapter->pdev, adapter->msix_entries,
> -                                   vectors);
> -             if (!err || err < 0) /* Success or a nasty failure. */
> -                     break;
> -             else /* err == number of vectors we should try again with */
> -                     vectors = err;
> -     }
> +     err = pci_msix_table_size(adapter->pdev);
I would prefer to use something other than "err" here since the value
isn't really an error if it's greater than 0. However, it's not really a
big issue, since you immediately conver to using vectors on the next
line of code.. I think its alright overall.

Regards,
Jake

> +     if (err < 0)
> +             return err;
>  
> +     vectors = min(vectors, err);
>       if (vectors < vector_threshold)
> -             err = -ENOSPC;
> +             return -ENOSPC;
>  
> +     err = pci_enable_msix(adapter->pdev, adapter->msix_entries, vectors);
>       if (err) {
>               dev_err(&adapter->pdev->dev,
>                       "Unable to allocate MSI-X interrupts\n");


<Prev in Thread] Current Thread [Next in Thread>