aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/irq_vectors.h
diff options
context:
space:
mode:
authorThomas Gleixner <tglx@linutronix.de>2023-06-21 10:12:47 -0700
committerThomas Gleixner <tglx@linutronix.de>2023-08-06 14:15:10 +0200
commitbdc1dad299bb1d38ce329de0dad0beadc76badf4 (patch)
treec676fc79065a3e283d0fac5b6a1713383845ad87 /arch/x86/include/asm/irq_vectors.h
parentx86/vector: Rename send_cleanup_vector() to vector_schedule_cleanup() (diff)
downloadlinux-bdc1dad299bb1d38ce329de0dad0beadc76badf4.tar.gz
linux-bdc1dad299bb1d38ce329de0dad0beadc76badf4.zip
x86/vector: Replace IRQ_MOVE_CLEANUP_VECTOR with a timer callback
The left overs of a moved interrupt are cleaned up once the interrupt is raised on the new target CPU. Keeping the vector valid on the original target CPU guarantees that there can't be an interrupt lost if the affinity change races with an concurrent interrupt from the device. This cleanup utilizes the lowest priority interrupt vector for this cleanup, which makes sure that in the unlikely case when the to be cleaned up interrupt is pending in the local APICs IRR the cleanup vector does not live lock. But there is no real reason to use an interrupt vector for cleaning up the leftovers of a moved interrupt. It's not a high performance operation. The only requirement is that it happens on the original target CPU. Convert it to use a timer instead and adjust the code accordingly. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Xin Li <xin3.li@intel.com> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Link: https://lore.kernel.org/r/20230621171248.6805-3-xin3.li@intel.com
Diffstat (limited to 'arch/x86/include/asm/irq_vectors.h')
-rw-r--r--arch/x86/include/asm/irq_vectors.h7
1 files changed, 0 insertions, 7 deletions
diff --git a/arch/x86/include/asm/irq_vectors.h b/arch/x86/include/asm/irq_vectors.h
index 43dcb9284208..3a19904c2db6 100644
--- a/arch/x86/include/asm/irq_vectors.h
+++ b/arch/x86/include/asm/irq_vectors.h
@@ -35,13 +35,6 @@
*/
#define FIRST_EXTERNAL_VECTOR 0x20
-/*
- * Reserve the lowest usable vector (and hence lowest priority) 0x20 for
- * triggering cleanup after irq migration. 0x21-0x2f will still be used
- * for device interrupts.
- */
-#define IRQ_MOVE_CLEANUP_VECTOR FIRST_EXTERNAL_VECTOR
-
#define IA32_SYSCALL_VECTOR 0x80
/*