diff options
author | Yinghai Lu <yinghai@kernel.org> | 2008-12-11 03:15:01 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-12-16 18:14:01 -0500 |
commit | 48a1b10aff588833b73994704c47bbd0deb73e9c (patch) | |
tree | deb3c7b486346c3afa54014b3c3516344c2708f2 /include | |
parent | 13bd41bc227a48d6cf8992a3286bf6eba3c71a0c (diff) |
x86, sparseirq: move irq_desc according to smp_affinity, v7
Impact: improve NUMA handling by migrating irq_desc on smp_affinity changes
if CONFIG_NUMA_MIGRATE_IRQ_DESC is set:
- make irq_desc to go with affinity aka irq_desc moving etc
- call move_irq_desc in irq_complete_move()
- legacy irq_desc is not moved, because they are allocated via static array
for logical apic mode, need to add move_desc_in_progress_in_same_domain,
otherwise it will not be moved ==> also could need two phases to get
irq_desc moved.
Signed-off-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/irq.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/include/linux/irq.h b/include/linux/irq.h index b5749db3e5a1..36a015746788 100644 --- a/include/linux/irq.h +++ b/include/linux/irq.h | |||
@@ -227,6 +227,16 @@ extern struct irq_desc *move_irq_desc(struct irq_desc *old_desc, int cpu); | |||
227 | 227 | ||
228 | #endif | 228 | #endif |
229 | 229 | ||
230 | static inline struct irq_desc * | ||
231 | irq_remap_to_desc(unsigned int irq, struct irq_desc *desc) | ||
232 | { | ||
233 | #ifdef CONFIG_NUMA_MIGRATE_IRQ_DESC | ||
234 | return irq_to_desc(irq); | ||
235 | #else | ||
236 | return desc; | ||
237 | #endif | ||
238 | } | ||
239 | |||
230 | /* | 240 | /* |
231 | * Migration helpers for obsolete names, they will go away: | 241 | * Migration helpers for obsolete names, they will go away: |
232 | */ | 242 | */ |