linux-pci.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Alexander Gordeev <agordeev@redhat.com>
To: Bjorn Helgaas <bhelgaas@google.com>
Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Michael Ellerman <michael@ellerman.id.au>,
	Benjamin Herrenschmidt <benh@kernel.crashing.org>,
	Tejun Heo <tj@kernel.org>,
	Ben Hutchings <bhutchings@solarflare.com>,
	David Laight <David.Laight@aculab.com>,
	Mark Lord <kernel@start.ca>, "H. Peter Anvin" <hpa@zytor.com>,
	"linux-pci@vger.kernel.org" <linux-pci@vger.kernel.org>
Subject: Re: [PATCH v4 9/9] PCI/MSI: Introduce pci_auto_enable_msi*() family helpers
Date: Thu, 19 Dec 2013 14:42:45 +0100	[thread overview]
Message-ID: <20131219134244.GA32238@dhcp-26-207.brq.redhat.com> (raw)
In-Reply-To: <CAErSpo6Km5N+Cfpaj5JEsb966rwcBjrAT4SFvG6Q9QkwkDFXCA@mail.gmail.com>

On Wed, Dec 18, 2013 at 11:58:47AM -0700, Bjorn Helgaas wrote:
> If rc == 13 and the device can only use 8, the extra 5 would be
> ignored and wasted.
> 
> If the waste is unacceptable, the driver can try this:
> 
>     rc = pci_enable_msix_range(dev->pdev, dev->irqs, 16, 16);
>     if (rc < 0) {
>         rc = pci_enable_msix_range(dev->pdev, dev->irqs, 8, 8);
>         if (rc < 0) {
>             rc = pci_enable_msix_range(dev->pdev, dev->irqs, 4, 4);
>             ...
>     }

I have troubles with this fallback logic. On each failed step we get an
error and we do not know if this is indeed an error or an indication of
insufficient MSI resources. Even -ENOSPC would not tell much, since it
could be thrown from a lower level.

By contrast, with the tri-state return value we can distinguish and bail
out on errors right away.

So the above is bit ungraceful for me. Combined with a possible waste in
logs (if we're hitting the same error) it is quite enough for me to keep
current the interfaces, at least for a time being.

>     if (rc < 0) { /* error, couldn't allocate *any* interrupts */
>     else { /* rc interrupts allocated (1, 2, 4, 8, or 16) */ }
> 
> Bjorn

-- 
Regards,
Alexander Gordeev
agordeev@redhat.com

  reply	other threads:[~2013-12-19 13:41 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-16  8:34 [PATCH v4 0/9] PCI/MSI: Introduce pci_auto_enable_msi*() family helpers Alexander Gordeev
2013-12-16  8:34 ` [PATCH v4 1/9] PCI/MSI/s390: Fix single MSI only check Alexander Gordeev
2013-12-16  8:34 ` [PATCH v4 2/9] PCI/MSI/s390: Remove superfluous check of MSI type Alexander Gordeev
2013-12-16  8:34 ` [PATCH v4 3/9] PCI/MSI: Fix return value when populate_msi_sysfs() failed Alexander Gordeev
2013-12-16  8:34 ` [PATCH v4 4/9] PCI/MSI: Return -ENOSYS for unimplemented interfaces, not -1 Alexander Gordeev
2013-12-16  8:34 ` [PATCH v4 5/9] PCI/MSI: Make pci_enable_msi/msix() 'nvec' argument type as int Alexander Gordeev
2013-12-16  8:34 ` [PATCH v4 6/9] PCI/MSI: Factor out pci_get_msi_vec_count() interface Alexander Gordeev
2013-12-18  0:33   ` Bjorn Helgaas
2013-12-16  8:35 ` [PATCH v4 7/9] PCI/MSI: Get rid of pci_enable_msi_block_auto() interface Alexander Gordeev
2013-12-16  8:35 ` [PATCH v4 8/9] PCI/MSI: Introduce pci_get_msix_vec_count() interface Alexander Gordeev
2013-12-16  8:35 ` [PATCH v4 9/9] PCI/MSI: Introduce pci_auto_enable_msi*() family helpers Alexander Gordeev
2013-12-18  0:30   ` Bjorn Helgaas
2013-12-18 13:23     ` Alexander Gordeev
2013-12-18 18:58       ` Bjorn Helgaas
2013-12-19 13:42         ` Alexander Gordeev [this message]
2013-12-19 13:47           ` Tejun Heo
2013-12-19 21:37           ` Bjorn Helgaas
2013-12-20  9:04             ` Alexander Gordeev
2013-12-20 13:28               ` Tejun Heo
2013-12-20 10:28     ` Alexander Gordeev
2013-12-23 14:44     ` Alexander Gordeev
2013-12-23 17:19       ` Bjorn Helgaas
2013-12-19 22:30 ` [PATCH v4 0/9] " Bjorn Helgaas

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20131219134244.GA32238@dhcp-26-207.brq.redhat.com \
    --to=agordeev@redhat.com \
    --cc=David.Laight@aculab.com \
    --cc=benh@kernel.crashing.org \
    --cc=bhelgaas@google.com \
    --cc=bhutchings@solarflare.com \
    --cc=hpa@zytor.com \
    --cc=kernel@start.ca \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=michael@ellerman.id.au \
    --cc=tj@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).