[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID:
<SN6PR02MB4157247E1BCF02CEED0B23BCD4812@SN6PR02MB4157.namprd02.prod.outlook.com>
Date: Mon, 28 Apr 2025 13:47:22 +0000
From: Michael Kelley <mhklinux@...look.com>
To: Shradha Gupta <shradhagupta@...ux.microsoft.com>,
"linux-hyperv@...r.kernel.org" <linux-hyperv@...r.kernel.org>,
"linux-pci@...r.kernel.org" <linux-pci@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>, Nipun Gupta
<nipun.gupta@....com>, Yury Norov <yury.norov@...il.com>, Jason Gunthorpe
<jgg@...pe.ca>, Jonathan Cameron <Jonathan.Cameron@...ei.com>, Anna-Maria
Behnsen <anna-maria@...utronix.de>, Kevin Tian <kevin.tian@...el.com>, Long
Li <longli@...rosoft.com>, Thomas Gleixner <tglx@...utronix.de>, Bjorn
Helgaas <bhelgaas@...gle.com>, Rob Herring <robh@...nel.org>, Manivannan
Sadhasivam <manivannan.sadhasivam@...aro.org>,
Krzysztof WilczyĆski <kw@...ux.com>, Lorenzo Pieralisi
<lpieralisi@...nel.org>, Dexuan Cui <decui@...rosoft.com>, Wei Liu
<wei.liu@...nel.org>, Haiyang Zhang <haiyangz@...rosoft.com>, "K. Y.
Srinivasan" <kys@...rosoft.com>, Andrew Lunn <andrew+netdev@...n.ch>, "David
S. Miller" <davem@...emloft.net>, Eric Dumazet <edumazet@...gle.com>, Jakub
Kicinski <kuba@...nel.org>, Paolo Abeni <pabeni@...hat.com>, Konstantin
Taranov <kotaranov@...rosoft.com>, Simon Horman <horms@...nel.org>, Leon
Romanovsky <leon@...nel.org>, Maxim Levitsky <mlevitsk@...hat.com>, Erni Sri
Satya Vennela <ernis@...ux.microsoft.com>, Peter Zijlstra
<peterz@...radead.org>, "netdev@...r.kernel.org" <netdev@...r.kernel.org>,
"linux-rdma@...r.kernel.org" <linux-rdma@...r.kernel.org>, Paul Rosswurm
<paulros@...rosoft.com>
CC: Shradha Gupta <shradhagupta@...rosoft.com>
Subject: RE: [PATCH v2 2/3] PCI: hv: Allow dynamic MSI-X vector allocation
From: Shradha Gupta <shradhagupta@...ux.microsoft.com> Sent: Friday, April 25, 2025 3:54 AM
>
> Allow dynamic MSI-X vector allocation for pci_hyperv PCI controller
> by adding support for the flag MSI_FLAG_PCI_MSIX_ALLOC_DYN and using
> pci_msix_prepare_desc() to prepare the descriptors.
I'm unclear from the code below whether the intent is to support dynamic
allocation only x86, or on both x86 and arm64. On arm64, you've defined
hv_msi_prepare_desc as NULL, but hv_msi_prepare is also defined as NULL
on arm64, so I'm not sure what to conclude. MSI_FLAG_PCI_MSIX_ALLOC_DYN
is being set for both architectures.
In any case, please be explicit about your intent in the commit message.
If the intent is to not support arm64, why is that?
Michael
>
> Signed-off-by: Shradha Gupta <shradhagupta@...ux.microsoft.com>
> Reviewed-by: Haiyang Zhang <haiyangz@...rosoft.com>
> ---
> Changes in v2:
> * split the patch to keep changes in PCI and pci_hyperv controller
> seperate
> * replace strings "pci vectors" by "MSI-X vectors"
> ---
> drivers/pci/controller/pci-hyperv.c | 7 +++++--
> 1 file changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/pci/controller/pci-hyperv.c b/drivers/pci/controller/pci-hyperv.c
> index ac27bda5ba26..f2fa6bdb6bb8 100644
> --- a/drivers/pci/controller/pci-hyperv.c
> +++ b/drivers/pci/controller/pci-hyperv.c
> @@ -598,7 +598,8 @@ static unsigned int hv_msi_get_int_vector(struct irq_data *data)
> return cfg->vector;
> }
>
> -#define hv_msi_prepare pci_msi_prepare
> +#define hv_msi_prepare pci_msi_prepare
> +#define hv_msix_prepare_desc pci_msix_prepare_desc
>
> /**
> * hv_arch_irq_unmask() - "Unmask" the IRQ by setting its current
> @@ -727,6 +728,7 @@ static void hv_arch_irq_unmask(struct irq_data *data)
> #define FLOW_HANDLER NULL
> #define FLOW_NAME NULL
> #define hv_msi_prepare NULL
> +#define hv_msix_prepare_desc NULL
>
> struct hv_pci_chip_data {
> DECLARE_BITMAP(spi_map, HV_PCI_MSI_SPI_NR);
> @@ -2063,6 +2065,7 @@ static struct irq_chip hv_msi_irq_chip = {
> static struct msi_domain_ops hv_msi_ops = {
> .msi_prepare = hv_msi_prepare,
> .msi_free = hv_msi_free,
> + .prepare_desc = hv_msix_prepare_desc,
> };
>
> /**
> @@ -2084,7 +2087,7 @@ static int hv_pcie_init_irq_domain(struct hv_pcibus_device *hbus)
> hbus->msi_info.ops = &hv_msi_ops;
> hbus->msi_info.flags = (MSI_FLAG_USE_DEF_DOM_OPS |
> MSI_FLAG_USE_DEF_CHIP_OPS | MSI_FLAG_MULTI_PCI_MSI |
> - MSI_FLAG_PCI_MSIX);
> + MSI_FLAG_PCI_MSIX | MSI_FLAG_PCI_MSIX_ALLOC_DYN);
> hbus->msi_info.handler = FLOW_HANDLER;
> hbus->msi_info.handler_name = FLOW_NAME;
> hbus->msi_info.data = hbus;
> --
> 2.34.1
>
Powered by blists - more mailing lists