From: Mykola Kvach <mykola_kv...@epam.com> SGI and PPI descriptors are banked and stored in the per-CPU local_irq_desc array, so not all elements of the global irq_desc array are used. This is already accounted for in the descriptor lookup logic inside __irq_to_desc: return &irq_desc[irq - NR_LOCAL_IRQS];
Therefore, the size of the irq_desc array can be reduced by NR_LOCAL_IRQS, saving (NR_LOCAL_IRQS * L1_CACHE_BYTES) bytes of memory. Signed-off-by: Mykola Kvach <mykola_kv...@epam.com> --- xen/arch/arm/irq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/xen/arch/arm/irq.c b/xen/arch/arm/irq.c index b9757d7ad3..03fbb90c6c 100644 --- a/xen/arch/arm/irq.c +++ b/xen/arch/arm/irq.c @@ -45,7 +45,7 @@ void irq_end_none(struct irq_desc *irq) gic_hw_ops->gic_host_irq_type->end(irq); } -static irq_desc_t irq_desc[NR_IRQS]; +static irq_desc_t irq_desc[NR_IRQS - NR_LOCAL_IRQS]; static DEFINE_PER_CPU(irq_desc_t[NR_LOCAL_IRQS], local_irq_desc); struct irq_desc *__irq_to_desc(unsigned int irq) -- 2.43.0