You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
[PATCH] genirq: x86_64 irq: make vector_irq per cpu
This refactors the irq handling code to make the vectors a per cpu resource so the same vector number can be simultaneously used on multiple cpus for different irqs. This should make systems that were hitting limits on the total number of irqs much more livable. [akpm@osdl.org: build fix] [akpm@osdl.org: __target_IO_APIC_irq is unneeded on UP] Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Cc: Rajesh Shah <rajesh.shah@intel.com> Cc: Andi Kleen <ak@muc.de> Cc: "Protasevich, Natalie" <Natalie.Protasevich@UNISYS.com> Cc: "Luck, Tony" <tony.luck@intel.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
e500f57436
commit
550f2299ac
@@ -19,6 +19,7 @@
|
||||
#include <asm/irq.h>
|
||||
#include <linux/profile.h>
|
||||
#include <linux/smp.h>
|
||||
#include <linux/percpu.h>
|
||||
#endif
|
||||
|
||||
#define NMI_VECTOR 0x02
|
||||
@@ -73,8 +74,9 @@
|
||||
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
extern u8 irq_vector[NR_IRQ_VECTORS];
|
||||
extern int vector_irq[NR_VECTORS];
|
||||
extern unsigned int irq_vector[NR_IRQ_VECTORS];
|
||||
typedef int vector_irq_t[NR_VECTORS];
|
||||
DECLARE_PER_CPU(vector_irq_t, vector_irq);
|
||||
#define IO_APIC_VECTOR(irq) (irq_vector[irq])
|
||||
|
||||
/*
|
||||
|
||||
@@ -31,8 +31,8 @@
|
||||
|
||||
#define FIRST_SYSTEM_VECTOR 0xef /* duplicated in hw_irq.h */
|
||||
|
||||
#define NR_IRQS 224
|
||||
#define NR_IRQ_VECTORS (32 * NR_CPUS)
|
||||
#define NR_IRQS (NR_VECTORS + (32 *NR_CPUS))
|
||||
#define NR_IRQ_VECTORS NR_IRQS
|
||||
|
||||
static __inline__ int irq_canonicalize(int irq)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user