From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Bjorn Helgaas <bhelgaas@google.com>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Grant Likely <grant.likely@linaro.org>,
Marc Zyngier <marc.zyngier@arm.com>,
Yingjoe Chen <yingjoe.chen@mediatek.com>,
x86@kernel.org, Joerg Roedel <joro@8bytes.org>,
Matthias Brugger <matthias.bgg@gmail.com>
Cc: Tony Luck <tony.luck@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
linux-kernel@vger.kernel.org, linux-acpi@vger.kernel.org,
iommu@lists.linux-foundation.org, linux-pci@vger.kernel.org,
Andrew Morton <akpm@linux-foundation.org>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [Patch Part2 v4 13/31] x86: irq_remapping: Introduce new interfaces to support hierarchy irqdomain
Date: Thu, 6 Nov 2014 19:43:19 +0800 [thread overview]
Message-ID: <545B5ED7.7090901@huawei.com> (raw)
In-Reply-To: <1415102525-9898-14-git-send-email-jiang.liu@linux.intel.com>
> +
> +enum irq_alloc_type {
> + X86_IRQ_ALLOC_TYPE_IOAPIC = 1,
> + X86_IRQ_ALLOC_TYPE_HPET,
> + X86_IRQ_ALLOC_TYPE_MSI,
> + X86_IRQ_ALLOC_TYPE_MSIX,
> +};
Hi Gerry, why not to use X86_IRQ_ALLOC_TYPE_MSI to represent both MSI and MSI-X type?
There are some differences to process MSI and MSI-X in irq remapping domain ?
>
> +extern struct irq_domain *irq_remapping_get_ir_irq_domain(
> + struct irq_alloc_info *info);
> +extern struct irq_domain *irq_remapping_get_irq_domain(
> + struct irq_alloc_info *info);
The two functions are too similar, and both get irq_domain by irq_alloc_info, possible to merge them ?
> +extern void irq_remapping_print_chip(struct irq_data *data, struct seq_file *p);
> +
> +/*
> + * Create MSI/MSIx irqdomain for interrupt remapping device, use @parent as
> + * parent irqdomain.
> + */
> +static inline struct irq_domain *
> +arch_create_msi_irq_domain(struct irq_domain *parent)
> +{
> + return NULL;
> +}
> +
> +/* Get parent irqdomain for interrupt remapping irqdomain */
> +static inline struct irq_domain *arch_get_ir_parent_domain(void)
> +{
> + return x86_vector_domain;
> +}
> +
> #else /* CONFIG_IRQ_REMAP */
>
> static inline void setup_irq_remapping_ops(void) { }
> @@ -101,6 +126,20 @@ static inline bool setup_remapped_irq(int irq,
> {
> return false;
> }
> +
> +static inline struct irq_domain *
> +irq_remapping_get_ir_irq_domain(struct irq_alloc_info *info)
> +{
> + return NULL;
> +}
> +
> +static inline struct irq_domain *
> +irq_remapping_get_irq_domain(struct irq_alloc_info *info)
> +{
> + return NULL;
> +}
> +
> +#define irq_remapping_print_chip NULL
> #endif /* CONFIG_IRQ_REMAP */
>
> extern int dmar_alloc_hwirq(void);
> diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
> index 63886bafed9f..176ff4372b7d 100644
> --- a/drivers/iommu/irq_remapping.c
> +++ b/drivers/iommu/irq_remapping.c
> @@ -377,7 +377,7 @@ void panic_if_irq_remap(const char *msg)
> panic(msg);
> }
>
> -static void ir_ack_apic_edge(struct irq_data *data)
> +void ir_ack_apic_edge(struct irq_data *data)
> {
> ack_APIC_irq();
> }
> @@ -388,6 +388,19 @@ static void ir_ack_apic_level(struct irq_data *data)
> eoi_ioapic_irq(data->irq, irqd_cfg(data));
> }
>
> +void irq_remapping_print_chip(struct irq_data *data, struct seq_file *p)
> +{
> + /*
> + * Assume interrupt is remapped if the parent irqdomain isn't the
> + * vector domain, which is true for MSI, HPET and IOAPIC on x86
> + * platforms.
> + */
> + if (data->domain && data->domain->parent != arch_get_ir_parent_domain())
> + seq_printf(p, " IR-%s", data->chip->name);
> + else
> + seq_printf(p, " %s", data->chip->name);
> +}
> +
> static void ir_print_prefix(struct irq_data *data, struct seq_file *p)
> {
> seq_printf(p, " IR-%s", data->chip->name);
> @@ -409,3 +422,36 @@ bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
> irq_remap_modify_chip_defaults(chip);
> return true;
> }
> +
> +/**
> + * irq_remapping_get_ir_irq_domain - Get the irqdomain associated the IOMMU
> + * device serving @info
> + * @info: interrupt allocation information, used to find the IOMMU device
> + *
> + * It's used to get parent irqdomain for HPET and IOAPIC domains.
> + * Returns pointer to IRQ domain, or NULL on failure.
> + */
> +struct irq_domain *
> +irq_remapping_get_ir_irq_domain(struct irq_alloc_info *info)
> +{
> + if (!remap_ops || !remap_ops->get_ir_irq_domain)
> + return NULL;
> +
> + return remap_ops->get_ir_irq_domain(info);
> +}
> +
> +/**
> + * irq_remapping_get_irq_domain - Get the irqdomain serving the MSI interrupt
> + * @info: interrupt allocation information, used to find the IOMMU device
> + *
> + * It's used to get irqdomain for MSI/MSIx interrupt allocation.
> + * Returns pointer to IRQ domain, or NULL on failure.
> + */
> +struct irq_domain *
> +irq_remapping_get_irq_domain(struct irq_alloc_info *info)
> +{
> + if (!remap_ops || !remap_ops->get_irq_domain)
> + return NULL;
> +
> + return remap_ops->get_irq_domain(info);
> +}
> diff --git a/drivers/iommu/irq_remapping.h b/drivers/iommu/irq_remapping.h
> index fde250f86e60..8c159d6fac46 100644
> --- a/drivers/iommu/irq_remapping.h
> +++ b/drivers/iommu/irq_remapping.h
> @@ -30,6 +30,8 @@ struct irq_data;
> struct cpumask;
> struct pci_dev;
> struct msi_msg;
> +struct irq_domain;
> +struct irq_alloc_info;
>
> extern int disable_irq_remap;
> extern int irq_remap_broken;
> @@ -81,11 +83,19 @@ struct irq_remap_ops {
>
> /* Setup interrupt remapping for an HPET MSI */
> int (*alloc_hpet_msi)(unsigned int, unsigned int);
> +
> + /* Get the irqdomain associated the IOMMU device */
> + struct irq_domain *(*get_ir_irq_domain)(struct irq_alloc_info *);
> +
> + /* Get the MSI irqdomain associated with the IOMMU device */
> + struct irq_domain *(*get_irq_domain)(struct irq_alloc_info *);
> };
>
> extern struct irq_remap_ops intel_irq_remap_ops;
> extern struct irq_remap_ops amd_iommu_irq_ops;
>
> +extern void ir_ack_apic_edge(struct irq_data *data);
> +
> #else /* CONFIG_IRQ_REMAP */
>
> #define irq_remapping_enabled 0
>
--
Thanks!
Yijing
WARNING: multiple messages have this Message-ID (diff)
From: Yijing Wang <wangyijing@huawei.com>
To: Jiang Liu <jiang.liu@linux.intel.com>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
"Rafael J. Wysocki" <rjw@rjwysocki.net>,
Bjorn Helgaas <bhelgaas@google.com>,
Randy Dunlap <rdunlap@infradead.org>,
Yinghai Lu <yinghai@kernel.org>, Borislav Petkov <bp@alien8.de>,
Grant Likely <grant.likely@linaro.org>,
Marc Zyngier <marc.zyngier@arm.com>,
Yingjoe Chen <yingjoe.chen@mediatek.com>, <x86@kernel.org>,
Joerg Roedel <joro@8bytes.org>,
Matthias Brugger <matthias.bgg@gmail.com>
Cc: Tony Luck <tony.luck@intel.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
<linux-kernel@vger.kernel.org>, <linux-acpi@vger.kernel.org>,
<iommu@lists.linux-foundation.org>, <linux-pci@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
<linux-arm-kernel@lists.infradead.org>
Subject: Re: [Patch Part2 v4 13/31] x86: irq_remapping: Introduce new interfaces to support hierarchy irqdomain
Date: Thu, 6 Nov 2014 19:43:19 +0800 [thread overview]
Message-ID: <545B5ED7.7090901@huawei.com> (raw)
In-Reply-To: <1415102525-9898-14-git-send-email-jiang.liu@linux.intel.com>
> +
> +enum irq_alloc_type {
> + X86_IRQ_ALLOC_TYPE_IOAPIC = 1,
> + X86_IRQ_ALLOC_TYPE_HPET,
> + X86_IRQ_ALLOC_TYPE_MSI,
> + X86_IRQ_ALLOC_TYPE_MSIX,
> +};
Hi Gerry, why not to use X86_IRQ_ALLOC_TYPE_MSI to represent both MSI and MSI-X type?
There are some differences to process MSI and MSI-X in irq remapping domain ?
>
> +extern struct irq_domain *irq_remapping_get_ir_irq_domain(
> + struct irq_alloc_info *info);
> +extern struct irq_domain *irq_remapping_get_irq_domain(
> + struct irq_alloc_info *info);
The two functions are too similar, and both get irq_domain by irq_alloc_info, possible to merge them ?
> +extern void irq_remapping_print_chip(struct irq_data *data, struct seq_file *p);
> +
> +/*
> + * Create MSI/MSIx irqdomain for interrupt remapping device, use @parent as
> + * parent irqdomain.
> + */
> +static inline struct irq_domain *
> +arch_create_msi_irq_domain(struct irq_domain *parent)
> +{
> + return NULL;
> +}
> +
> +/* Get parent irqdomain for interrupt remapping irqdomain */
> +static inline struct irq_domain *arch_get_ir_parent_domain(void)
> +{
> + return x86_vector_domain;
> +}
> +
> #else /* CONFIG_IRQ_REMAP */
>
> static inline void setup_irq_remapping_ops(void) { }
> @@ -101,6 +126,20 @@ static inline bool setup_remapped_irq(int irq,
> {
> return false;
> }
> +
> +static inline struct irq_domain *
> +irq_remapping_get_ir_irq_domain(struct irq_alloc_info *info)
> +{
> + return NULL;
> +}
> +
> +static inline struct irq_domain *
> +irq_remapping_get_irq_domain(struct irq_alloc_info *info)
> +{
> + return NULL;
> +}
> +
> +#define irq_remapping_print_chip NULL
> #endif /* CONFIG_IRQ_REMAP */
>
> extern int dmar_alloc_hwirq(void);
> diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
> index 63886bafed9f..176ff4372b7d 100644
> --- a/drivers/iommu/irq_remapping.c
> +++ b/drivers/iommu/irq_remapping.c
> @@ -377,7 +377,7 @@ void panic_if_irq_remap(const char *msg)
> panic(msg);
> }
>
> -static void ir_ack_apic_edge(struct irq_data *data)
> +void ir_ack_apic_edge(struct irq_data *data)
> {
> ack_APIC_irq();
> }
> @@ -388,6 +388,19 @@ static void ir_ack_apic_level(struct irq_data *data)
> eoi_ioapic_irq(data->irq, irqd_cfg(data));
> }
>
> +void irq_remapping_print_chip(struct irq_data *data, struct seq_file *p)
> +{
> + /*
> + * Assume interrupt is remapped if the parent irqdomain isn't the
> + * vector domain, which is true for MSI, HPET and IOAPIC on x86
> + * platforms.
> + */
> + if (data->domain && data->domain->parent != arch_get_ir_parent_domain())
> + seq_printf(p, " IR-%s", data->chip->name);
> + else
> + seq_printf(p, " %s", data->chip->name);
> +}
> +
> static void ir_print_prefix(struct irq_data *data, struct seq_file *p)
> {
> seq_printf(p, " IR-%s", data->chip->name);
> @@ -409,3 +422,36 @@ bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
> irq_remap_modify_chip_defaults(chip);
> return true;
> }
> +
> +/**
> + * irq_remapping_get_ir_irq_domain - Get the irqdomain associated the IOMMU
> + * device serving @info
> + * @info: interrupt allocation information, used to find the IOMMU device
> + *
> + * It's used to get parent irqdomain for HPET and IOAPIC domains.
> + * Returns pointer to IRQ domain, or NULL on failure.
> + */
> +struct irq_domain *
> +irq_remapping_get_ir_irq_domain(struct irq_alloc_info *info)
> +{
> + if (!remap_ops || !remap_ops->get_ir_irq_domain)
> + return NULL;
> +
> + return remap_ops->get_ir_irq_domain(info);
> +}
> +
> +/**
> + * irq_remapping_get_irq_domain - Get the irqdomain serving the MSI interrupt
> + * @info: interrupt allocation information, used to find the IOMMU device
> + *
> + * It's used to get irqdomain for MSI/MSIx interrupt allocation.
> + * Returns pointer to IRQ domain, or NULL on failure.
> + */
> +struct irq_domain *
> +irq_remapping_get_irq_domain(struct irq_alloc_info *info)
> +{
> + if (!remap_ops || !remap_ops->get_irq_domain)
> + return NULL;
> +
> + return remap_ops->get_irq_domain(info);
> +}
> diff --git a/drivers/iommu/irq_remapping.h b/drivers/iommu/irq_remapping.h
> index fde250f86e60..8c159d6fac46 100644
> --- a/drivers/iommu/irq_remapping.h
> +++ b/drivers/iommu/irq_remapping.h
> @@ -30,6 +30,8 @@ struct irq_data;
> struct cpumask;
> struct pci_dev;
> struct msi_msg;
> +struct irq_domain;
> +struct irq_alloc_info;
>
> extern int disable_irq_remap;
> extern int irq_remap_broken;
> @@ -81,11 +83,19 @@ struct irq_remap_ops {
>
> /* Setup interrupt remapping for an HPET MSI */
> int (*alloc_hpet_msi)(unsigned int, unsigned int);
> +
> + /* Get the irqdomain associated the IOMMU device */
> + struct irq_domain *(*get_ir_irq_domain)(struct irq_alloc_info *);
> +
> + /* Get the MSI irqdomain associated with the IOMMU device */
> + struct irq_domain *(*get_irq_domain)(struct irq_alloc_info *);
> };
>
> extern struct irq_remap_ops intel_irq_remap_ops;
> extern struct irq_remap_ops amd_iommu_irq_ops;
>
> +extern void ir_ack_apic_edge(struct irq_data *data);
> +
> #else /* CONFIG_IRQ_REMAP */
>
> #define irq_remapping_enabled 0
>
--
Thanks!
Yijing
WARNING: multiple messages have this Message-ID (diff)
From: wangyijing@huawei.com (Yijing Wang)
To: linux-arm-kernel@lists.infradead.org
Subject: [Patch Part2 v4 13/31] x86: irq_remapping: Introduce new interfaces to support hierarchy irqdomain
Date: Thu, 6 Nov 2014 19:43:19 +0800 [thread overview]
Message-ID: <545B5ED7.7090901@huawei.com> (raw)
In-Reply-To: <1415102525-9898-14-git-send-email-jiang.liu@linux.intel.com>
> +
> +enum irq_alloc_type {
> + X86_IRQ_ALLOC_TYPE_IOAPIC = 1,
> + X86_IRQ_ALLOC_TYPE_HPET,
> + X86_IRQ_ALLOC_TYPE_MSI,
> + X86_IRQ_ALLOC_TYPE_MSIX,
> +};
Hi Gerry, why not to use X86_IRQ_ALLOC_TYPE_MSI to represent both MSI and MSI-X type?
There are some differences to process MSI and MSI-X in irq remapping domain ?
>
> +extern struct irq_domain *irq_remapping_get_ir_irq_domain(
> + struct irq_alloc_info *info);
> +extern struct irq_domain *irq_remapping_get_irq_domain(
> + struct irq_alloc_info *info);
The two functions are too similar, and both get irq_domain by irq_alloc_info, possible to merge them ?
> +extern void irq_remapping_print_chip(struct irq_data *data, struct seq_file *p);
> +
> +/*
> + * Create MSI/MSIx irqdomain for interrupt remapping device, use @parent as
> + * parent irqdomain.
> + */
> +static inline struct irq_domain *
> +arch_create_msi_irq_domain(struct irq_domain *parent)
> +{
> + return NULL;
> +}
> +
> +/* Get parent irqdomain for interrupt remapping irqdomain */
> +static inline struct irq_domain *arch_get_ir_parent_domain(void)
> +{
> + return x86_vector_domain;
> +}
> +
> #else /* CONFIG_IRQ_REMAP */
>
> static inline void setup_irq_remapping_ops(void) { }
> @@ -101,6 +126,20 @@ static inline bool setup_remapped_irq(int irq,
> {
> return false;
> }
> +
> +static inline struct irq_domain *
> +irq_remapping_get_ir_irq_domain(struct irq_alloc_info *info)
> +{
> + return NULL;
> +}
> +
> +static inline struct irq_domain *
> +irq_remapping_get_irq_domain(struct irq_alloc_info *info)
> +{
> + return NULL;
> +}
> +
> +#define irq_remapping_print_chip NULL
> #endif /* CONFIG_IRQ_REMAP */
>
> extern int dmar_alloc_hwirq(void);
> diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
> index 63886bafed9f..176ff4372b7d 100644
> --- a/drivers/iommu/irq_remapping.c
> +++ b/drivers/iommu/irq_remapping.c
> @@ -377,7 +377,7 @@ void panic_if_irq_remap(const char *msg)
> panic(msg);
> }
>
> -static void ir_ack_apic_edge(struct irq_data *data)
> +void ir_ack_apic_edge(struct irq_data *data)
> {
> ack_APIC_irq();
> }
> @@ -388,6 +388,19 @@ static void ir_ack_apic_level(struct irq_data *data)
> eoi_ioapic_irq(data->irq, irqd_cfg(data));
> }
>
> +void irq_remapping_print_chip(struct irq_data *data, struct seq_file *p)
> +{
> + /*
> + * Assume interrupt is remapped if the parent irqdomain isn't the
> + * vector domain, which is true for MSI, HPET and IOAPIC on x86
> + * platforms.
> + */
> + if (data->domain && data->domain->parent != arch_get_ir_parent_domain())
> + seq_printf(p, " IR-%s", data->chip->name);
> + else
> + seq_printf(p, " %s", data->chip->name);
> +}
> +
> static void ir_print_prefix(struct irq_data *data, struct seq_file *p)
> {
> seq_printf(p, " IR-%s", data->chip->name);
> @@ -409,3 +422,36 @@ bool setup_remapped_irq(int irq, struct irq_cfg *cfg, struct irq_chip *chip)
> irq_remap_modify_chip_defaults(chip);
> return true;
> }
> +
> +/**
> + * irq_remapping_get_ir_irq_domain - Get the irqdomain associated the IOMMU
> + * device serving @info
> + * @info: interrupt allocation information, used to find the IOMMU device
> + *
> + * It's used to get parent irqdomain for HPET and IOAPIC domains.
> + * Returns pointer to IRQ domain, or NULL on failure.
> + */
> +struct irq_domain *
> +irq_remapping_get_ir_irq_domain(struct irq_alloc_info *info)
> +{
> + if (!remap_ops || !remap_ops->get_ir_irq_domain)
> + return NULL;
> +
> + return remap_ops->get_ir_irq_domain(info);
> +}
> +
> +/**
> + * irq_remapping_get_irq_domain - Get the irqdomain serving the MSI interrupt
> + * @info: interrupt allocation information, used to find the IOMMU device
> + *
> + * It's used to get irqdomain for MSI/MSIx interrupt allocation.
> + * Returns pointer to IRQ domain, or NULL on failure.
> + */
> +struct irq_domain *
> +irq_remapping_get_irq_domain(struct irq_alloc_info *info)
> +{
> + if (!remap_ops || !remap_ops->get_irq_domain)
> + return NULL;
> +
> + return remap_ops->get_irq_domain(info);
> +}
> diff --git a/drivers/iommu/irq_remapping.h b/drivers/iommu/irq_remapping.h
> index fde250f86e60..8c159d6fac46 100644
> --- a/drivers/iommu/irq_remapping.h
> +++ b/drivers/iommu/irq_remapping.h
> @@ -30,6 +30,8 @@ struct irq_data;
> struct cpumask;
> struct pci_dev;
> struct msi_msg;
> +struct irq_domain;
> +struct irq_alloc_info;
>
> extern int disable_irq_remap;
> extern int irq_remap_broken;
> @@ -81,11 +83,19 @@ struct irq_remap_ops {
>
> /* Setup interrupt remapping for an HPET MSI */
> int (*alloc_hpet_msi)(unsigned int, unsigned int);
> +
> + /* Get the irqdomain associated the IOMMU device */
> + struct irq_domain *(*get_ir_irq_domain)(struct irq_alloc_info *);
> +
> + /* Get the MSI irqdomain associated with the IOMMU device */
> + struct irq_domain *(*get_irq_domain)(struct irq_alloc_info *);
> };
>
> extern struct irq_remap_ops intel_irq_remap_ops;
> extern struct irq_remap_ops amd_iommu_irq_ops;
>
> +extern void ir_ack_apic_edge(struct irq_data *data);
> +
> #else /* CONFIG_IRQ_REMAP */
>
> #define irq_remapping_enabled 0
>
--
Thanks!
Yijing
next prev parent reply other threads:[~2014-11-06 11:43 UTC|newest]
Thread overview: 157+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-11-04 12:01 [Patch Part2 v4 00/31] Enable hierarchy irqdomian on x86 platforms Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 01/31] irqdomain: Introduce new interfaces to support hierarchy irqdomains Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-05 23:48 ` Thomas Gleixner
2014-11-05 23:48 ` Thomas Gleixner
2014-11-06 6:09 ` Jiang Liu
2014-11-06 6:09 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 02/31] irqdomain: Do irq_find_mapping and set_type for hierarchy irqdomain in case OF Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 03/31] genirq: Introduce helper functions to support stacked irq_chip Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 04/31] genirq: Introduce irq_chip.irq_compose_msi_msg() to support stacked irqchip Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 05/31] genirq: Add IRQ_SET_MASK_OK_DONE " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 06/31] x86, irq: Save destination CPU ID in irq_cfg Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 07/31] x86, irq: Use hierarchy irqdomain to manage CPU interrupt vectors Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 08/31] x86, hpet: Use new irqdomain interfaces to allocate/free IRQ Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 09/31] x86, MSI: " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 10/31] x86, uv: " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 11/31] x86, htirq: " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 13/31] x86: irq_remapping: Introduce new interfaces to support hierarchy irqdomain Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-06 11:43 ` Yijing Wang [this message]
2014-11-06 11:43 ` Yijing Wang
2014-11-06 11:43 ` Yijing Wang
2014-11-04 12:01 ` [Patch Part2 v4 17/31] x86, hpet: Enhance HPET IRQ " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 18/31] PCI/MSI, trivial: Fix minor syntax issues according to coding styles Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-05 22:10 ` Bjorn Helgaas
2014-11-05 22:10 ` Bjorn Helgaas
2014-11-05 22:10 ` Bjorn Helgaas
2014-11-05 22:10 ` Bjorn Helgaas
2014-11-04 12:01 ` [Patch Part2 v4 20/31] PCI/MSI: Kill redundant calling for irq_set_msi_desc() for MSIx interrupts Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-05 22:45 ` Bjorn Helgaas
2014-11-05 22:45 ` Bjorn Helgaas
2014-11-06 1:32 ` Yijing Wang
2014-11-06 1:32 ` Yijing Wang
2014-11-06 1:32 ` Yijing Wang
2014-11-06 4:04 ` Bjorn Helgaas
2014-11-06 4:04 ` Bjorn Helgaas
2014-11-06 4:04 ` Bjorn Helgaas
2014-11-06 4:31 ` Jiang Liu
2014-11-06 4:31 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 21/31] PCI/MSI: enhance PCI MSI core to support hierarchy irqdomain Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-05 23:09 ` Bjorn Helgaas
2014-11-05 23:09 ` Bjorn Helgaas
2014-11-05 23:09 ` Bjorn Helgaas
2014-11-06 1:58 ` Yijing Wang
2014-11-06 1:58 ` Yijing Wang
2014-11-06 1:58 ` Yijing Wang
2014-11-06 4:10 ` Bjorn Helgaas
2014-11-06 4:10 ` Bjorn Helgaas
2014-11-06 4:10 ` Bjorn Helgaas
2014-11-06 4:54 ` Yijing Wang
2014-11-06 4:54 ` Yijing Wang
2014-11-06 4:54 ` Yijing Wang
2014-11-06 5:06 ` Jiang Liu
2014-11-06 5:06 ` Jiang Liu
2014-11-06 5:42 ` Yijing Wang
2014-11-06 5:42 ` Yijing Wang
2014-11-06 5:42 ` Yijing Wang
2014-11-06 4:58 ` Jiang Liu
2014-11-06 4:58 ` Jiang Liu
2014-11-06 4:58 ` Jiang Liu
2014-11-06 5:28 ` Bjorn Helgaas
2014-11-06 5:28 ` Bjorn Helgaas
2014-11-06 5:28 ` Bjorn Helgaas
2014-11-06 10:01 ` Thomas Gleixner
2014-11-06 10:01 ` Thomas Gleixner
2014-11-06 10:01 ` Thomas Gleixner
2014-11-06 10:30 ` Thomas Gleixner
2014-11-06 10:30 ` Thomas Gleixner
2014-11-06 10:30 ` Thomas Gleixner
2014-11-06 11:41 ` Jiang Liu
2014-11-06 11:41 ` Jiang Liu
2014-11-06 11:41 ` Jiang Liu
2014-11-06 11:59 ` Thomas Gleixner
2014-11-06 11:59 ` Thomas Gleixner
2014-11-06 11:59 ` Thomas Gleixner
2014-11-04 12:01 ` [Patch Part2 v4 23/31] x86, irq: Directly call native_compose_msi_msg() for DMAR IRQ Jiang Liu
2014-11-04 12:01 ` Jiang Liu
[not found] ` <1415102525-9898-1-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2014-11-04 12:01 ` [Patch Part2 v4 12/31] x86, dmar: Use new irqdomain interfaces to allocate/free IRQ Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 14/31] iommu/vt-d: Change prototypes to prepare for enabling hierarchy irqdomain Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 15/31] iommu/vt-d: Enhance Intel IR driver to suppport " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 16/31] iommu/amd: Enhance AMD " Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 19/31] PCI/MSI: Simplify PCI MSI code by initializing msi_desc.nvec_used earlier Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
[not found] ` <1415102525-9898-20-git-send-email-jiang.liu-VuQAYsv1563Yd54FQh9/CA@public.gmane.org>
2014-11-05 22:35 ` Bjorn Helgaas
2014-11-05 22:35 ` Bjorn Helgaas
2014-11-05 22:35 ` Bjorn Helgaas
2014-11-04 12:01 ` [Patch Part2 v4 22/31] x86, PCI, MSI: Use hierarchy irqdomain to manage MSI interrupts Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 24/31] iommu/vt-d: Clean up unused MSI related code Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:02 ` [Patch Part2 v4 26/31] x86: irq_remapping: " Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` [Patch Part2 v4 28/31] iommu/vt-d: Refine the interfaces to create IRQ for DMAR unit Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:01 ` [Patch Part2 v4 25/31] iommu/amd: Clean up unused MSI related code Jiang Liu
2014-11-04 12:01 ` Jiang Liu
2014-11-04 12:02 ` [Patch Part2 v4 27/31] x86, irq: Clean up unused MSI related code and interfaces Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` [Patch Part2 v4 29/31] x86, irq: Use hierarchy irqdomain to manage DMAR interrupts Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` [Patch Part2 v4 30/31] x86, htirq: Use hierarchy irqdomain to manage Hypertransport interrupts Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 12:02 ` [Patch Part2 v4 31/31] x86, uv: Use hierarchy irqdomain to manage UV interrupts Jiang Liu
2014-11-04 12:02 ` Jiang Liu
2014-11-04 14:47 ` [Patch Part2 v4 00/31] Enable hierarchy irqdomian on x86 platforms Joerg Roedel
2014-11-04 14:47 ` Joerg Roedel
2014-11-04 15:12 ` Jiang Liu
2014-11-04 15:12 ` Jiang Liu
2014-11-04 15:32 ` Joerg Roedel
2014-11-04 15:32 ` Joerg Roedel
2014-11-05 8:51 ` Joerg Roedel
2014-11-05 8:51 ` Joerg Roedel
2014-11-05 9:04 ` Jiang Liu
2014-11-05 9:04 ` Jiang Liu
2014-11-05 9:41 ` Jiang Liu
2014-11-05 9:41 ` Jiang Liu
2014-11-05 9:58 ` Joerg Roedel
2014-11-05 9:58 ` Joerg Roedel
2014-11-05 10:28 ` Jiang Liu
2014-11-05 10:28 ` Jiang Liu
2014-11-05 11:10 ` Joerg Roedel
2014-11-05 11:10 ` Joerg Roedel
2014-11-06 13:07 ` Joerg Roedel
2014-11-06 13:07 ` Joerg Roedel
2014-11-06 13:35 ` Jiang Liu
2014-11-06 13:35 ` Jiang Liu
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=545B5ED7.7090901@huawei.com \
--to=wangyijing@huawei.com \
--cc=akpm@linux-foundation.org \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=bp@alien8.de \
--cc=grant.likely@linaro.org \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux-foundation.org \
--cc=jiang.liu@linux.intel.com \
--cc=joro@8bytes.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=marc.zyngier@arm.com \
--cc=matthias.bgg@gmail.com \
--cc=mingo@redhat.com \
--cc=rdunlap@infradead.org \
--cc=rjw@rjwysocki.net \
--cc=tglx@linutronix.de \
--cc=tony.luck@intel.com \
--cc=x86@kernel.org \
--cc=yinghai@kernel.org \
--cc=yingjoe.chen@mediatek.com \
/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.