irq: make sure irq_desc for legacy irq get correct node setting
PATCH 1/1 irq: make sure irq_desc for legacy irq get correct node setting
when there is no ram on node 0
--- kernel/irq/handle.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-)
kernel/irq/handle.c +4 -1
@@ -161,7 +161,7 @@ int __init early_irq_init(void) desc = irq_desc_legacy; legacy_count =ARRAY_SIZE (irq_desc_legacy); - node = first_online_node; + node = first_online_node;/* allocate irq_desc_ptrs array based on nr_irqs */ irq_desc_ptrs =kcalloc (nr_irqs,sizeof (void *),GFP_NOWAIT );
@@ -172,6 +172,9 @@ int __init early_irq_init(void)for (i =0 ; i < legacy_count; i++) { desc[i].irq = i; +#ifdef CONFIG_SMP + desc[i].node = node; +#endif desc[i].kstat_irqs = kstat_irqs_legacy + i * nr_cpu_ids;lockdep_set_class (&desc[i].lock, &irq_desc_lock_class);alloc_desc_masks (&desc[i], node, true);
PATCH 1/1 irq: add irq_node
to return irq_desc node info
--- include/linux/irqnr.h | 6 ++++++ 1 file changed, 6 insertions(+)
include/linux/irqnr.h +6 -0
@@ -41,6 +41,12 @@ extern struct irq_desc *irq_to_desc(unsi ; \ else +#ifdef CONFIG_SMP +#define irq_node (irq) (irq_to_desc(irq)->node) +#else +#define irq_node (irq) 0 +#endif +#endif /* CONFIG_GENERIC_HARDIRQS */ #define for_each_irq_nr (irq) \
PATCH 1/1 pci/intr_remapping: allocate irq_iommu on node -v3
make it use node from irq_desc.
v3: use irq_node
--- drivers/pci/intr_remapping.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)
drivers/pci/intr_remapping.c +3 -11
@@ -55,15 +55,12 @@ static struct irq_2_iommu *irq_2_iommu(ureturn desc->irq_2_iommu; } -static struct irq_2_iommu *irq_2_iommu_alloc_node (unsigned int irq,int node) +static struct irq_2_iommu *irq_2_iommu_alloc (unsigned int irq) {struct irq_desc *desc;struct irq_2_iommu *irq_iommu; -/* -* alloc irq desc if not allocated already. -*/ - desc =irq_to_desc_alloc_node (irq, node); + desc =irq_to_desc (irq);if (!desc) {printk (KERN_INFO "can not get irq_desc for %d\n" , irq);return NULL ;
@@ -72,16 +69,11 @@ static struct irq_2_iommu *irq_2_iommu_a irq_iommu = desc->irq_2_iommu;if (!irq_iommu) - desc->irq_2_iommu =get_one_free_irq_2_iommu (node); + desc->irq_2_iommu =get_one_free_irq_2_iommu (irq_node (irq)); return desc->irq_2_iommu; } -static struct irq_2_iommu *irq_2_iommu_alloc (unsigned int irq) -{ -return irq_2_iommu_alloc_node (irq,cpu_to_node (boot_cpu_id)); -} -#else /* !CONFIG_SPARSE_IRQ */ static struct irq_2_iommu irq_2_iommuX[NR_IRQS ];
Re: [PATCH] pci/intr_remapping: allocate irq_iommu on node -v3
Ingo, I assume you took these two?
Thanks,
Jesse
Quoted 51 lines · On Thu, 13 Aug 2009 18:47:06 -0700 Yinghai Lu <[email protected]> wrote:
make it use node from
irq_desc.
v3: useirq_nodeSigned-off-by Yinghai Lu <[email protected]>--- drivers/pci/intr_remapping.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-)Index:
linux-2.6/drivers/pci/intr_remapping.c
===================================================================drivers/pci/intr_remapping.c +0
-1@@ -55,15 +55,12 @@ static struct irq_2_iommu *irq_2_iommu(ureturn desc->irq_2_iommu; } -static struct irq_2_iommu *irq_2_iommu_alloc_node(unsigned int irq,int node) +static struct
irq_2_iommu*irq_2_iommu_alloc(unsigned int irq) {drivers/pci/intr_remapping.c +1
-4struct irq_desc *desc;struct irq_2_iommu *irq_iommu; -/* -* alloc irq desc if not allocated already. -*/ - desc =irq_to_desc_alloc_node (irq, node); + desc =irq_to_desc (irq);if (!desc) { printk(KERN_INFO "can not get irq_desc for %d\n",irq); return NULL;
drivers/pci/intr_remapping.c +1
-6@@ -72,16 +69,11 @@ static struct irq_2_iommu *irq_2_iommu_a irq_iommu = desc->irq_2_iommu;if (!irq_iommu) - desc->irq_2_iommu =get_one_free_irq_2_iommu (node); + desc->irq_2_iommu =get_one_free_irq_2_iommu (irq_node (irq)); return desc->irq_2_iommu; } -static struct irq_2_iommu *irq_2_iommu_alloc (unsigned int irq) -{ -return irq_2_iommu_alloc_node (irq,cpu_to_node (boot_cpu_id)); -} -#else /* !CONFIG_SPARSE_IRQ */ static struct irq_2_iommu irq_2_iommuX[NR_IRQS ];
Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center
Re: [PATCH] pci/intr_remapping: allocate irq_iommu on node -v3
Quoted 1 line · Jesse Barnes
Ingo, I assume you took these two?
not yet - was waiting on noises from you and David. So the series looks good to you from a PCI perspective and i can add your acked-by? Would go into the IRQ tree.
Ingo
Jesse Barnes
Acked-byRe: [PATCH] pci/intr_remapping: allocate irq_iommu on node -v3
Quoted 8 lines · On Wed, 26 Aug 2009 09:31:01 +0200 Ingo Molnar <[email protected]> wrote:
Quoted 1 line · Jesse Barnes
Ingo, I assume you took these two?
not yet - was waiting on noises from you and David. So the series looks good to you from a PCI perspective and i can add your acked-by? Would go into the IRQ tree.
Yeah, latest ones look good.
Signature · 1 line
Jesse Barnes, Intel Open Source Technology Center