From: Marc Zyngier <maz@kernel.org>
To: Megha Dey <megha.dey@intel.com>
Cc: alex.williamson@redhat.com, kevin.tian@intel.com,
tony.luck@intel.com, dave.jiang@intel.com, ashok.raj@intel.com,
kvm@vger.kernel.org, ravi.v.shankar@intel.com,
linux-pci@vger.kernel.org, x86@kernel.org,
linux-kernel@vger.kernel.org, iommu@lists.linux-foundation.org,
jgg@mellanox.com, bhelgaas@google.com, tglx@linutronix.de,
dan.j.williams@intel.com, dwmw@amazon.co.uk
Subject: Re: [Patch V2 12/13] irqchip: Add IMS (Interrupt Message Store) driver
Date: Thu, 25 Mar 2021 17:43:57 +0000 [thread overview]
Message-ID: <87zgyrqgbm.wl-maz@kernel.org> (raw)
In-Reply-To: <1614370277-23235-13-git-send-email-megha.dey@intel.com>
On Fri, 26 Feb 2021 20:11:16 +0000,
Megha Dey <megha.dey@intel.com> wrote:
>
> Generic IMS(Interrupt Message Store) irq chips and irq domain
> implementations for IMS based devices which store the interrupt messages
> in an array in device memory.
>
> Allocation and freeing of interrupts happens via the generic
> msi_domain_alloc/free_irqs() interface. No special purpose IMS magic
> required as long as the interrupt domain is stored in the underlying
> device struct. The irq_set_auxdata() is used to program the pasid into
> the IMS entry.
>
> [Megha: Fixed compile time errors
> Added necessary dependencies to IMS_MSI_ARRAY config
> Fixed polarity of IMS_VECTOR_CTRL
> Added reads after writes to flush writes to device
> Added set_desc ops to IMS msi domain ops
> Tested the IMS infrastructure with the IDXD driver]
>
> Reviewed-by: Tony Luck <tony.luck@intel.com>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Megha Dey <megha.dey@intel.com>
> ---
> drivers/irqchip/Kconfig | 14 +++
> drivers/irqchip/Makefile | 1 +
> drivers/irqchip/irq-ims-msi.c | 211 ++++++++++++++++++++++++++++++++++++
> include/linux/irqchip/irq-ims-msi.h | 68 ++++++++++++
> 4 files changed, 294 insertions(+)
> create mode 100644 drivers/irqchip/irq-ims-msi.c
> create mode 100644 include/linux/irqchip/irq-ims-msi.h
>
> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> index e74fa20..2fb0c24 100644
> --- a/drivers/irqchip/Kconfig
> +++ b/drivers/irqchip/Kconfig
> @@ -586,4 +586,18 @@ config MST_IRQ
> help
> Support MStar Interrupt Controller.
>
> +config IMS_MSI
> + depends on PCI
> + select DEVICE_MSI
> + bool
> +
> +config IMS_MSI_ARRAY
> + bool "IMS Interrupt Message Store MSI controller for device memory storage arrays"
> + depends on PCI
> + select IMS_MSI
> + select GENERIC_MSI_IRQ_DOMAIN
> + help
> + Support for IMS Interrupt Message Store MSI controller
> + with IMS slot storage in a slot array in device memory
> +
> endmenu
> diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
> index c59b95a..e903201 100644
> --- a/drivers/irqchip/Makefile
> +++ b/drivers/irqchip/Makefile
> @@ -113,3 +113,4 @@ obj-$(CONFIG_LOONGSON_PCH_MSI) += irq-loongson-pch-msi.o
> obj-$(CONFIG_MST_IRQ) += irq-mst-intc.o
> obj-$(CONFIG_SL28CPLD_INTC) += irq-sl28cpld.o
> obj-$(CONFIG_MACH_REALTEK_RTL) += irq-realtek-rtl.o
> +obj-$(CONFIG_IMS_MSI) += irq-ims-msi.o
> diff --git a/drivers/irqchip/irq-ims-msi.c b/drivers/irqchip/irq-ims-msi.c
> new file mode 100644
> index 0000000..fa23207
> --- /dev/null
> +++ b/drivers/irqchip/irq-ims-msi.c
> @@ -0,0 +1,211 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// (C) Copyright 2021 Thomas Gleixner <tglx@linutronix.de>
> +/*
> + * Shared interrupt chips and irq domains for IMS devices
> + */
> +#include <linux/device.h>
> +#include <linux/slab.h>
> +#include <linux/msi.h>
> +#include <linux/irq.h>
> +#include <linux/irqdomain.h>
> +
> +#include <linux/irqchip/irq-ims-msi.h>
> +
> +#ifdef CONFIG_IMS_MSI_ARRAY
Given that this covers the whole driver, what is this #defined used
for? You might as well make the driver depend on this config option.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu
WARNING: multiple messages have this Message-ID (diff)
From: Marc Zyngier <maz@kernel.org>
To: Megha Dey <megha.dey@intel.com>
Cc: tglx@linutronix.de, linux-kernel@vger.kernel.org,
dave.jiang@intel.com, ashok.raj@intel.com, kevin.tian@intel.com,
dwmw@amazon.co.uk, x86@kernel.org, tony.luck@intel.com,
dan.j.williams@intel.com, jgg@mellanox.com, kvm@vger.kernel.org,
iommu@lists.linux-foundation.org, alex.williamson@redhat.com,
bhelgaas@google.com, linux-pci@vger.kernel.org,
baolu.lu@linux.intel.com, ravi.v.shankar@intel.com
Subject: Re: [Patch V2 12/13] irqchip: Add IMS (Interrupt Message Store) driver
Date: Thu, 25 Mar 2021 17:43:57 +0000 [thread overview]
Message-ID: <87zgyrqgbm.wl-maz@kernel.org> (raw)
In-Reply-To: <1614370277-23235-13-git-send-email-megha.dey@intel.com>
On Fri, 26 Feb 2021 20:11:16 +0000,
Megha Dey <megha.dey@intel.com> wrote:
>
> Generic IMS(Interrupt Message Store) irq chips and irq domain
> implementations for IMS based devices which store the interrupt messages
> in an array in device memory.
>
> Allocation and freeing of interrupts happens via the generic
> msi_domain_alloc/free_irqs() interface. No special purpose IMS magic
> required as long as the interrupt domain is stored in the underlying
> device struct. The irq_set_auxdata() is used to program the pasid into
> the IMS entry.
>
> [Megha: Fixed compile time errors
> Added necessary dependencies to IMS_MSI_ARRAY config
> Fixed polarity of IMS_VECTOR_CTRL
> Added reads after writes to flush writes to device
> Added set_desc ops to IMS msi domain ops
> Tested the IMS infrastructure with the IDXD driver]
>
> Reviewed-by: Tony Luck <tony.luck@intel.com>
> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
> Signed-off-by: Megha Dey <megha.dey@intel.com>
> ---
> drivers/irqchip/Kconfig | 14 +++
> drivers/irqchip/Makefile | 1 +
> drivers/irqchip/irq-ims-msi.c | 211 ++++++++++++++++++++++++++++++++++++
> include/linux/irqchip/irq-ims-msi.h | 68 ++++++++++++
> 4 files changed, 294 insertions(+)
> create mode 100644 drivers/irqchip/irq-ims-msi.c
> create mode 100644 include/linux/irqchip/irq-ims-msi.h
>
> diff --git a/drivers/irqchip/Kconfig b/drivers/irqchip/Kconfig
> index e74fa20..2fb0c24 100644
> --- a/drivers/irqchip/Kconfig
> +++ b/drivers/irqchip/Kconfig
> @@ -586,4 +586,18 @@ config MST_IRQ
> help
> Support MStar Interrupt Controller.
>
> +config IMS_MSI
> + depends on PCI
> + select DEVICE_MSI
> + bool
> +
> +config IMS_MSI_ARRAY
> + bool "IMS Interrupt Message Store MSI controller for device memory storage arrays"
> + depends on PCI
> + select IMS_MSI
> + select GENERIC_MSI_IRQ_DOMAIN
> + help
> + Support for IMS Interrupt Message Store MSI controller
> + with IMS slot storage in a slot array in device memory
> +
> endmenu
> diff --git a/drivers/irqchip/Makefile b/drivers/irqchip/Makefile
> index c59b95a..e903201 100644
> --- a/drivers/irqchip/Makefile
> +++ b/drivers/irqchip/Makefile
> @@ -113,3 +113,4 @@ obj-$(CONFIG_LOONGSON_PCH_MSI) += irq-loongson-pch-msi.o
> obj-$(CONFIG_MST_IRQ) += irq-mst-intc.o
> obj-$(CONFIG_SL28CPLD_INTC) += irq-sl28cpld.o
> obj-$(CONFIG_MACH_REALTEK_RTL) += irq-realtek-rtl.o
> +obj-$(CONFIG_IMS_MSI) += irq-ims-msi.o
> diff --git a/drivers/irqchip/irq-ims-msi.c b/drivers/irqchip/irq-ims-msi.c
> new file mode 100644
> index 0000000..fa23207
> --- /dev/null
> +++ b/drivers/irqchip/irq-ims-msi.c
> @@ -0,0 +1,211 @@
> +// SPDX-License-Identifier: GPL-2.0
> +// (C) Copyright 2021 Thomas Gleixner <tglx@linutronix.de>
> +/*
> + * Shared interrupt chips and irq domains for IMS devices
> + */
> +#include <linux/device.h>
> +#include <linux/slab.h>
> +#include <linux/msi.h>
> +#include <linux/irq.h>
> +#include <linux/irqdomain.h>
> +
> +#include <linux/irqchip/irq-ims-msi.h>
> +
> +#ifdef CONFIG_IMS_MSI_ARRAY
Given that this covers the whole driver, what is this #defined used
for? You might as well make the driver depend on this config option.
Thanks,
M.
--
Without deviation from the norm, progress is not possible.
next prev parent reply other threads:[~2021-03-25 17:44 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-02-26 20:11 [Patch V2 00/13] Introduce dev-msi and interrupt message store Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 01/13] x86/irq: Add DEV_MSI allocation type Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 02/13] x86/msi: Rename and rework pci_msi_prepare() to cover non-PCI MSI Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 03/13] platform-msi: Provide default irq_chip:: Ack Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 04/13] genirq/proc: Take buslock on affinity write Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 05/13] genirq/msi: Provide and use msi_domain_set_default_info_flags() Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 06/13] platform-msi: Add device MSI infrastructure Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 07/13] irqdomain/msi: Provide msi_alloc/free_store() callbacks Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-03-25 17:08 ` Marc Zyngier
2021-03-25 17:08 ` Marc Zyngier
2021-03-25 18:44 ` Thomas Gleixner
2021-03-25 18:44 ` Thomas Gleixner
2021-03-26 10:14 ` Marc Zyngier
2021-03-26 10:14 ` Marc Zyngier
2021-02-26 20:11 ` [Patch V2 08/13] genirq: Set auxiliary data for an interrupt Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-03-25 17:23 ` Marc Zyngier
2021-03-25 17:23 ` Marc Zyngier
2021-03-25 18:59 ` Thomas Gleixner
2021-03-25 18:59 ` Thomas Gleixner
2021-03-26 10:32 ` Marc Zyngier
2021-03-26 10:32 ` Marc Zyngier
2021-03-26 15:09 ` Thomas Gleixner
2021-03-26 15:09 ` Thomas Gleixner
2021-02-26 20:11 ` [Patch V2 09/13] iommu/vt-d: Add DEV-MSI support Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 10/13] iommu: Add capability IOMMU_CAP_VIOMMU_HINT Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 11/13] platform-msi: Add platform check for subdevice irq domain Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-02-26 20:11 ` [Patch V2 12/13] irqchip: Add IMS (Interrupt Message Store) driver Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-03-25 17:43 ` Marc Zyngier [this message]
2021-03-25 17:43 ` Marc Zyngier
2021-03-25 19:07 ` Thomas Gleixner
2021-03-25 19:07 ` Thomas Gleixner
2021-03-26 1:03 ` Dey, Megha
2021-03-26 1:03 ` Dey, Megha
2021-02-26 20:11 ` [Patch V2 13/13] genirq/msi: Provide helpers to return Linux IRQ/dev_msi hw IRQ number Megha Dey
2021-02-26 20:11 ` Megha Dey
2021-03-25 17:53 ` Marc Zyngier
2021-03-25 17:53 ` Marc Zyngier
2021-03-26 1:02 ` Dey, Megha
2021-03-26 1:02 ` Dey, Megha
2021-03-26 12:58 ` Marc Zyngier
2021-03-26 12:58 ` Marc Zyngier
2021-03-30 1:57 ` Dey, Megha
2021-03-30 1:57 ` Dey, Megha
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=87zgyrqgbm.wl-maz@kernel.org \
--to=maz@kernel.org \
--cc=alex.williamson@redhat.com \
--cc=ashok.raj@intel.com \
--cc=bhelgaas@google.com \
--cc=dan.j.williams@intel.com \
--cc=dave.jiang@intel.com \
--cc=dwmw@amazon.co.uk \
--cc=iommu@lists.linux-foundation.org \
--cc=jgg@mellanox.com \
--cc=kevin.tian@intel.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=megha.dey@intel.com \
--cc=ravi.v.shankar@intel.com \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@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 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.