[PATCH v6 0/5] Allow dyn MSI-X vector allocation of MANA

Shradha Gupta posted 5 patches 4 months ago
.../net/ethernet/microsoft/mana/gdma_main.c   | 366 ++++++++++++++----
drivers/pci/controller/pci-hyperv.c           |   3 +-
drivers/pci/msi/irqdomain.c                   |   5 +-
include/linux/msi.h                           |   2 +
include/net/mana/gdma.h                       |   8 +-
5 files changed, 294 insertions(+), 90 deletions(-)
[PATCH v6 0/5] Allow dyn MSI-X vector allocation of MANA
Posted by Shradha Gupta 4 months ago
In this patchset we want to enable the MANA driver to be able to
allocate MSI-X vectors in PCI dynamically.

The first patch exports pci_msix_prepare_desc() in PCI to be able to
correctly prepare descriptors for dynamically added MSI-X vectors.

The second patch adds the support of dynamic vector allocation in
pci-hyperv PCI controller by enabling the MSI_FLAG_PCI_MSIX_ALLOC_DYN
flag and using the pci_msix_prepare_desc() exported in first patch.

The third patch adds a detailed description of the irq_setup(), to
help understand the function design better.

The fourth patch is a preparation patch for mana changes to support
dynamic IRQ allocation. It contains changes in irq_setup() to allow
skipping first sibling CPU sets, in case certain IRQs are already
affinitized to them.

The fifth patch has the changes in MANA driver to be able to allocate
MSI-X vectors dynamically. If the support does not exist it defaults to
older behavior.

Since this patchset has patches from PCI and net tree, I am not entirely
sure what should be the target tree. Any suggestions/recommendations on
the same are welcomed.

---
Changes in v6
 * rebased to linux-next's v6.16-rc1 as per Jakub's suggestion
---
Changes in v5
 * Added Yury as Author of the 3rd patch
 * Fixed base commit information in the cover letter
 * Correctly initialized start_irqs, so that it is cleaned properly
 * rearranged the cpu_lock to minimize the critical section
---
 Change in v4
 * add a patch describing the functionality of irq_setup() through a 
   comment
 * In irq_setup(), avoid using a label next_cpumask:
 * modify the changes in MANA patch about restructuring the error
   handling path in mana_gd_setup_dyn_irqs()
 * modify the mana_gd_setup_irqs() to simplify handling around
   start_irq_index
 * add warning if an invalid gic is returned
 * place the xa_destroy() cleanup in mana_gd_remove
---
 Changes in v3
 * split the 3rd patch into preparation patch around irq_setup() and
   changes in mana driver to allow dynamic IRQ allocation
 * Add arm64 support for dynamic MSI-X allocation in pci_hyperv
   controller
---
 Changes in v2
 * split the first patch into two(exporting the preapre_desc
   func and using the function and flag in pci-hyperv)
 * replace 'pci vectors' by 'MSI-X vectors'
 * Change the cover letter description to align with changes made
---

Shradha Gupta (4):
  PCI/MSI: Export pci_msix_prepare_desc() for dynamic MSI-X allocations
  PCI: hv: Allow dynamic MSI-X vector allocation
  net: mana: Allow irq_setup() to skip cpus for affinity
  net: mana: Allocate MSI-X vectors dynamically

Yury Norov (1):
  net: mana: explain irq_setup() algorithm

 .../net/ethernet/microsoft/mana/gdma_main.c   | 366 ++++++++++++++----
 drivers/pci/controller/pci-hyperv.c           |   3 +-
 drivers/pci/msi/irqdomain.c                   |   5 +-
 include/linux/msi.h                           |   2 +
 include/net/mana/gdma.h                       |   8 +-
 5 files changed, 294 insertions(+), 90 deletions(-)


base-commit: 19a60293b9925080d97f22f122aca3fc46dadaf9
-- 
2.34.1
Re: [PATCH v6 0/5] Allow dyn MSI-X vector allocation of MANA
Posted by Jakub Kicinski 4 months ago
On Wed, 11 Jun 2025 07:09:44 -0700 Shradha Gupta wrote:
> Changes in v6
>  * rebased to linux-next's v6.16-rc1 as per Jakub's suggestion

I meant a branch, basically apply the patches on the v6.16-rc1 tag
and push it out to GitHub, kernel.org or somewhere else public.
Then we can pull it in and maintain the stable commit IDs.
No need to repost the patches, FWIW, just share the branch here
once you pushed it out..
Re: [PATCH v6 0/5] Allow dyn MSI-X vector allocation of MANA
Posted by Shradha Gupta 4 months ago
On Wed, Jun 11, 2025 at 08:54:16AM -0700, Jakub Kicinski wrote:
> On Wed, 11 Jun 2025 07:09:44 -0700 Shradha Gupta wrote:
> > Changes in v6
> >  * rebased to linux-next's v6.16-rc1 as per Jakub's suggestion
> 
> I meant a branch, basically apply the patches on the v6.16-rc1 tag
> and push it out to GitHub, kernel.org or somewhere else public.
> Then we can pull it in and maintain the stable commit IDs.
> No need to repost the patches, FWIW, just share the branch here
> once you pushed it out..

Oh, understood. Thanks for the clarity. Here is a github repo branch
with the changes on v6.16-rc1 tag
https://github.com/shradhagupta6/linux/tree/shradha_v6.16-rc1

Would this suffice?

regards,
Shradha.
Re: [PATCH v6 0/5] Allow dyn MSI-X vector allocation of MANA
Posted by Jakub Kicinski 3 months, 3 weeks ago
On Wed, 11 Jun 2025 23:10:55 -0700 Shradha Gupta wrote:
> On Wed, Jun 11, 2025 at 08:54:16AM -0700, Jakub Kicinski wrote:
> > On Wed, 11 Jun 2025 07:09:44 -0700 Shradha Gupta wrote:  
> > > Changes in v6
> > >  * rebased to linux-next's v6.16-rc1 as per Jakub's suggestion  
> > 
> > I meant a branch, basically apply the patches on the v6.16-rc1 tag
> > and push it out to GitHub, kernel.org or somewhere else public.
> > Then we can pull it in and maintain the stable commit IDs.
> > No need to repost the patches, FWIW, just share the branch here
> > once you pushed it out..  
> 
> Oh, understood. Thanks for the clarity. Here is a github repo branch
> with the changes on v6.16-rc1 tag
> https://github.com/shradhagupta6/linux/tree/shradha_v6.16-rc1

The tag was good, but when I pulled it my check scripts complained:

Commit a19036b86845 ("net: mana: Allocate MSI-X vectors dynamically")
	committer Signed-off-by missing
	author email:    shradhagupta@linux.microsoft.com
	committer email: shradhagupta@microsoft.com
	Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com>

etc. You seem to have committed the patches with a slightly different
email address. Not a huge deal but better to fix it if we can.

So please base the tag. The code can stay the same just adjust the
committer or author/signoff email addrs. We can use this as an
opportunity to add Bjorn's email.

No need to repost the code just ping here once you updated the tag.
Re: [PATCH v6 0/5] Allow dyn MSI-X vector allocation of MANA
Posted by Shradha Gupta 3 months, 3 weeks ago
On Mon, Jun 16, 2025 at 06:11:48PM -0700, Jakub Kicinski wrote:
> On Wed, 11 Jun 2025 23:10:55 -0700 Shradha Gupta wrote:
> > On Wed, Jun 11, 2025 at 08:54:16AM -0700, Jakub Kicinski wrote:
> > > On Wed, 11 Jun 2025 07:09:44 -0700 Shradha Gupta wrote:  
> > > > Changes in v6
> > > >  * rebased to linux-next's v6.16-rc1 as per Jakub's suggestion  
> > > 
> > > I meant a branch, basically apply the patches on the v6.16-rc1 tag
> > > and push it out to GitHub, kernel.org or somewhere else public.
> > > Then we can pull it in and maintain the stable commit IDs.
> > > No need to repost the patches, FWIW, just share the branch here
> > > once you pushed it out..  
> > 
> > Oh, understood. Thanks for the clarity. Here is a github repo branch
> > with the changes on v6.16-rc1 tag
> > https://github.com/shradhagupta6/linux/tree/shradha_v6.16-rc1
> 
> The tag was good, but when I pulled it my check scripts complained:
> 
> Commit a19036b86845 ("net: mana: Allocate MSI-X vectors dynamically")
> 	committer Signed-off-by missing
> 	author email:    shradhagupta@linux.microsoft.com
> 	committer email: shradhagupta@microsoft.com
> 	Signed-off-by: Shradha Gupta <shradhagupta@linux.microsoft.com>
> 
> etc. You seem to have committed the patches with a slightly different
> email address. Not a huge deal but better to fix it if we can.
> 
> So please base the tag. The code can stay the same just adjust the
> committer or author/signoff email addrs. We can use this as an
> opportunity to add Bjorn's email.
> 
> No need to repost the code just ping here once you updated the tag.

Hi Jakub,

I have updated the tag with the corrected author and committer details
and added Bjorn's ack:
https://github.com/shradhagupta6/linux/tree/shradha_v6.16-rc1

By 'please base the tag', did you mean we rebase the changes with rc2?
If so, I have also created a rc2 tag branch, JFYI
https://github.com/shradhagupta6/linux/tree/shradha_v6.16-rc2

Hope this helps.

Thanks,
Shradha.