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/linux | |
| 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/linux')
| -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 | */ |
