From: tj@kernel.org (Tejun Heo)
Subject: [PATCH RFC 00/77] Re-design MSI/MSI-X interrupts enablement pattern
Date: Mon, 7 Oct 2013 14:01:11 -0400 [thread overview]
Message-ID: <20131007180111.GC2481@htj.dyndns.org> (raw)
In-Reply-To: <20131006071027.GA29143@dhcp-26-207.brq.redhat.com>
Hey, guys.
On Sun, Oct 06, 2013@09:10:30AM +0200, Alexander Gordeev wrote:
> On Sun, Oct 06, 2013@05:19:46PM +1100, Benjamin Herrenschmidt wrote:
> > On Sun, 2013-10-06@08:02 +0200, Alexander Gordeev wrote:
> > > In fact, in the current design to address the quota race decently the
> > > drivers would have to protect the *loop* to prevent the quota change
> > > between a pci_enable_msix() returned a positive number and the the next
> > > call to pci_enable_msix() with that number. Is it doable?
> >
> > I am not advocating for the current design, simply saying that your
> > proposal doesn't address this issue while Ben's does.
Hmmm... yean, the race condition could be an issue as multiple msi
allocation might fail even if the driver can and explicitly handle
multiple allocation if the quota gets reduced inbetween.
> There is one major flaw in min-max approach - the generic MSI layer
> will have to take decisions on exact number of MSIs to request, not
> device drivers.
The min-max approach would actually be pretty nice for the users which
actually care about this.
> This will never work for all devices, because there might be specific
> requirements which are not covered by the min-max. That is what Ben
> described "...say, any even number within a certain range". Ben suggests
> to leave the existing loop scheme to cover such devices, which I think is
> not right.
if it could work.
> What about introducing pci_lock_msi() and pci_unlock_msi() and let device
> drivers care about their ranges and specifics in race-safe manner?
> I do not call to introduce it right now (since it appears pSeries has not
> been hitting the race for years) just as a possible alternative to Ben's
> proposal.
I don't think the same race condition would happen with the loop. The
problem case is where multiple msi(x) allocation fails completely
because the global limit went down before inquiry and allocation. In
the loop based interface, it'd retry with the lower number.
As long as the number of drivers which need this sort of adaptive
allocation isn't too high and the common cases can be made simple, I
don't think the "complex" part of interface is all that important.
Maybe we can have reserve / cancel type interface or just keep the
loop with more explicit function names (ie. try_enable or something
like that).
Thanks.
--
tejun
next prev parent reply other threads:[~2013-10-07 18:01 UTC|newest]
Thread overview: 53+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <cover.1380703262.git.agordeev@redhat.com>
[not found] ` <2d4272136269f3cb3b1a5ac53b12aa45c7ea65c0.1380703263.git.agordeev@redhat.com>
2013-10-02 19:31 ` [PATCH RFC 36/77] ipr: Enable MSI-X when IPR_USE_MSIX type is set, not IPR_USE_MSI Brian King
[not found] ` <338c9012577acf694eb23622902185584987bd8f.1380703263.git.agordeev@redhat.com>
2013-10-02 20:50 ` [PATCH RFC 40/77] ixgbevf: Update MSI/MSI-X interrupts enablement code Keller, Jacob E
[not found] ` <467ce10b1df795edf80ed222816ab739fee7b0ea.1380703263.git.agordeev@redhat.com>
2013-10-03 0:29 ` [PATCH RFC 77/77] vxge: " Jon Mason
[not found] ` <3ff5236944aae69f2cd934b5b6da7c1c269df7c1.1380703262.git.agordeev@redhat.com>
2013-10-03 0:39 ` [PATCH RFC 01/77] PCI/MSI: Fix return value when populate_msi_sysfs() failed Jon Mason
[not found] ` <5d9c5b2d3bbc444ff32bddeece7a239d046bd79c.1380703263.git.agordeev@redhat.com>
2013-10-03 0:48 ` [PATCH RFC 54/77] ntb: Ensure number of MSIs on SNB is enough for the link interrupt Jon Mason
2013-10-05 21:43 ` Alexander Gordeev
2013-10-07 16:50 ` Jon Mason
2013-10-07 18:38 ` Alexander Gordeev
2013-10-07 20:31 ` Jon Mason
[not found] ` <0590d63c3432229a3824bada71e07a08fb955498.1380703263.git.agordeev@redhat.com>
2013-10-03 0:49 ` [PATCH RFC 53/77] ntb: Fix missed call to pci_enable_msix() Jon Mason
[not found] ` <49eb592e15aaec804f9c11ca132d2b85c516aefa.1380703263.git.agordeev@redhat.com>
2013-10-03 1:02 ` [PATCH RFC 55/77] ntb: Update MSI/MSI-X interrupts enablement code Jon Mason
[not found] ` <9650a7dfbcfd5f1da21f7b093665abf4b1041071.1380703263.git.agordeev@redhat.com>
2013-10-03 7:14 ` [PATCH RFC 50/77] mlx5: " Eli Cohen
2013-10-03 19:48 ` Alexander Gordeev
2013-10-10 15:29 ` Eli Cohen
[not found] ` <9d424912ef78993dc75e2af5006cd12913e9e7e7.1380703263.git.agordeev@redhat.com>
2013-10-03 16:11 ` [PATCH RFC 51/77] mthca: " Jack Morgenstein
[not found] ` <9c282c4ab92731c719d161d2db6fc54ce33891d9.1380703262.git.agordeev@redhat.com>
2013-10-03 21:52 ` [PATCH RFC 06/77] PCI/MSI: Factor out pci_get_msi_cap() interface Ben Hutchings
2013-10-04 5:13 ` Alexander Gordeev
2013-10-03 22:49 ` [PATCH RFC 00/77] Re-design MSI/MSI-X interrupts enablement pattern Ben Hutchings
2013-10-04 8:29 ` Alexander Gordeev
2013-10-04 8:31 ` David Laight
2013-10-04 9:21 ` Alexander Gordeev
2013-10-04 21:29 ` Ben Hutchings
2013-10-05 14:20 ` Alexander Gordeev
2013-10-05 21:46 ` Benjamin Herrenschmidt
2013-10-06 6:02 ` Alexander Gordeev
2013-10-06 6:19 ` Benjamin Herrenschmidt
2013-10-06 7:10 ` Alexander Gordeev
2013-10-07 18:01 ` Tejun Heo [this message]
2013-10-07 20:10 ` Benjamin Herrenschmidt
2013-10-07 20:46 ` Ben Hutchings
2013-10-08 12:22 ` Alexander Gordeev
2013-10-09 15:41 ` Tejun Heo
2013-10-09 12:57 ` Alexander Gordeev
2013-10-09 15:43 ` Tejun Heo
2013-10-07 20:48 ` Ben Hutchings
2013-10-09 15:46 ` Tejun Heo
[not found] ` <8c9811b13fd93e73641dab8e3bd1bd5b2dc37a61.1380703262.git.agordeev@redhat.com>
2013-10-04 7:39 ` [PATCH RFC 03/77] PCI/MSI/s390: Fix single MSI only check Martin Schwidefsky
[not found] ` <bae65aa3e30dfd23bd5ed47add7310cfbb96243a.1380703262.git.agordeev@redhat.com>
2013-10-04 7:40 ` [PATCH RFC 04/77] PCI/MSI/s390: Remove superfluous check of MSI type Martin Schwidefsky
[not found] ` <e8b51bd48c24d0fc4ee8adea5c138c9bf84191e9.1380703262.git.agordeev@redhat.com>
2013-10-07 18:10 ` [PATCH RFC 05/77] PCI/MSI: Convert pci_msix_table_size() to a public interface Tejun Heo
2013-10-08 7:56 ` Alexander Gordeev
[not found] ` <d8c36203ada6efbfa9f7ce92c2f713ee3b6d6b8d.1380703262.git.agordeev@redhat.com>
2013-10-07 18:17 ` [PATCH RFC 07/77] PCI/MSI: Re-design MSI/MSI-X interrupts enablement pattern Tejun Heo
2013-10-08 7:48 ` Alexander Gordeev
2013-10-09 15:54 ` Tejun Heo
2013-10-07 18:21 ` [PATCH RFC 00/77] " Tejun Heo
2013-10-08 9:07 ` Alexander Gordeev
2013-10-09 15:57 ` Tejun Heo
2013-10-08 4:33 ` Michael Ellerman
2013-10-08 7:33 ` Alexander Gordeev
2013-10-09 1:34 ` Michael Ellerman
[not found] ` <c92efbde96541d08f37510422c096d543bb01279.1380703263.git.agordeev@redhat.com>
2013-10-08 22:46 ` [PATCH RFC 63/77] qlcnic: Update MSI/MSI-X interrupts enablement code Himanshu Madhani
[not found] ` <5254D397.9030307@zytor.com>
[not found] ` <1381292648.645.259.camel@pasglop>
2013-10-10 10:17 ` [PATCH RFC 00/77] Re-design MSI/MSI-X interrupts enablement pattern Alexander Gordeev
2013-10-10 16:28 ` H. Peter Anvin
2013-10-10 18:07 ` Alexander Gordeev
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=20131007180111.GC2481@htj.dyndns.org \
--to=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).