From: Megha Dey <megha.dey@intel.com>
To: Bjorn Helgaas <helgaas@kernel.org>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
tglx@linutronix.de, marc.zyngier@arm.com, ashok.raj@intel.com,
jacob.jun.pan@linux.intel.com
Subject: Re: [RFC V1 RESEND 0/6] Introduce dynamic allocation/freeing of MSI-X vectors
Date: Tue, 06 Aug 2019 12:12:49 -0700 [thread overview]
Message-ID: <1565118769.2401.120.camel@intel.com> (raw)
In-Reply-To: <20190802002442.GI151852@google.com>
On Thu, 2019-08-01 at 19:24 -0500, Bjorn Helgaas wrote:
> Hi Megha,
>
> On Fri, Jun 21, 2019 at 05:19:32PM -0700, Megha Dey wrote:
> >
> > Currently, MSI-X vector enabling and allocation for a PCIe device
> > is
> > static i.e. a device driver gets only one chance to enable a
> > specific
> > number of MSI-X vectors, usually during device probe. Also, in many
> > cases, drivers usually reserve more than required number of vectors
> > anticipating their use, which unnecessarily blocks resources that
> > could have been made available to other devices. Lastly, there is
> > no
> > way for drivers to reserve more vectors, if the MSI-x has already
> > been
> > enabled for that device.
> >
> > Hence, a dynamic MSI-X kernel infrastructure can benefit drivers by
> > deferring MSI-X allocation to post probe phase, where actual demand
> > information is available.
> >
> > This patchset enables the dynamic allocation/de-allocation of MSI-X
> > vectors by introducing 2 new APIs:
> > pci_alloc_irq_vectors_dyn() and pci_free_irq_vectors_grp():
> >
> > We have had requests from some of the NIC/RDMA users who have lots
> > of
> > interrupt resources and would like to allocate them on demand,
> > instead of using an all or none approach.
> >
> > The APIs are fairly well tested (multiple
> > allocations/deallocations),
> > but we have no early adopters yet. Hence, sending this series as an
> > RFC for review and comments.
> >
> > The patches are based out of Linux 5.2-rc5.
> >
> > Megha Dey (6):
> > PCI/MSI: New structures/macros for dynamic MSI-X allocation
> > PCI/MSI: Dynamic allocation of MSI-X vectors by group
> > x86: Introduce the dynamic teardown function
> > PCI/MSI: Introduce new structure to manage MSI-x entries
> s/MSI-x/MSI-X/
> If "entries" here means the same as "vectors" above, please use the
> same word.
>
Hi Bjorn,
Well, here entries basically mean the msi_desc entries. I thought MSI
vectors are used for each address/data pair, hence used the term
entries. Will update it to vectors to ensure uniformity.
> >
> > PCI/MSI: Free MSI-X resources by group
> Is "resources" the same as "vectors"?
>
Yes, will update this in V2.
> >
> > Documentation: PCI/MSI: Document dynamic MSI-X infrastructure
> When you post a v2 after addressing Thomas' comments, please make
> these subject lines imperative sentences beginning with a descriptive
> verb. You can run "git log --oneline drivers/pci" to see the style.
Sure, I will update the subject lines in V2.
> If you're adding a specific interface or structure, mention it by
> name
> in the subject if it's practical. The "x86" line needs a little more
> context; I assume it should include "IRQ", "MSI-X", or something.
>
True, will change this in V2.
> >
> > Documentation/PCI/MSI-HOWTO.txt | 38 +++++
> > arch/x86/include/asm/x86_init.h | 1 +
> > arch/x86/kernel/x86_init.c | 6 +
> > drivers/pci/msi.c | 363
> > +++++++++++++++++++++++++++++++++++++---
> > drivers/pci/probe.c | 9 +
> > include/linux/device.h | 3 +
> > include/linux/msi.h | 13 ++
> > include/linux/pci.h | 61 +++++++
> > kernel/irq/msi.c | 34 +++-
> > 9 files changed, 497 insertions(+), 31 deletions(-)
> >
prev parent reply other threads:[~2019-08-06 18:51 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-06-22 0:19 [RFC V1 RESEND 0/6] Introduce dynamic allocation/freeing of MSI-X vectors Megha Dey
2019-06-22 0:19 ` [RFC V1 RESEND 1/6] PCI/MSI: New structures/macros for dynamic MSI-X allocation Megha Dey
2019-06-22 0:19 ` [RFC V1 RESEND 2/6] PCI/MSI: Dynamic allocation of MSI-X vectors by group Megha Dey
2019-06-29 7:59 ` Thomas Gleixner
2019-08-06 19:05 ` Megha Dey
2019-08-07 13:56 ` Thomas Gleixner
2019-08-07 14:18 ` Marc Zyngier
2019-08-11 7:20 ` Thomas Gleixner
2019-08-12 17:54 ` Megha Dey
2019-08-12 17:48 ` Megha Dey
2019-08-12 17:47 ` Megha Dey
2021-01-07 22:30 ` Jacob Keller
2019-06-22 0:19 ` [RFC V1 RESEND 3/6] x86: Introduce the dynamic teardown function Megha Dey
2019-06-29 8:01 ` Thomas Gleixner
2019-08-06 19:06 ` Megha Dey
2019-06-22 0:19 ` [RFC V1 RESEND 4/6] PCI/MSI: Introduce new structure to manage MSI-x entries Megha Dey
2019-06-22 0:19 ` [RFC V1 RESEND 5/6] PCI/MSI: Free MSI-X resources by group Megha Dey
2019-06-29 8:08 ` Thomas Gleixner
2019-08-06 19:09 ` Megha Dey
2019-08-11 7:18 ` Thomas Gleixner
2019-08-12 18:13 ` Megha Dey
2019-06-22 0:19 ` [RFC V1 RESEND 6/6] Documentation: PCI/MSI: Document dynamic MSI-X infrastructure Megha Dey
2019-08-02 0:24 ` [RFC V1 RESEND 0/6] Introduce dynamic allocation/freeing of MSI-X vectors Bjorn Helgaas
2019-08-06 19:12 ` Megha Dey [this message]
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=1565118769.2401.120.camel@intel.com \
--to=megha.dey@intel.com \
--cc=ashok.raj@intel.com \
--cc=helgaas@kernel.org \
--cc=jacob.jun.pan@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=tglx@linutronix.de \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.