Commit 5052fa84 authored by Neil Horman's avatar Neil Horman

prevent constant rescan on banned irqs

If you ban irqs with --polscript, the rescan detection code doesn't check the
banned irq list, so it treats them as new, and forces a rescan constantly.  Fix
this by teaching get_irq_info to check the banned list as well.  We can
differentiate banned vs. non-banned irqs by the new flags field here as well

Fixes https://code.google.com/p/irqbalance/issues/detail?id=52Signed-off-by: 's avatarNeil Horman <nhorman@tuxdriver.com>
parent e744a209
......@@ -90,6 +90,7 @@ void add_banned_irq(int irq)
}
new->irq = irq;
new->flags |= IRQ_FLAG_BANNED;
banned_irqs = g_list_append(banned_irqs, new);
return;
......@@ -535,6 +536,10 @@ struct irq_info *get_irq_info(int irq)
find.irq = irq;
entry = g_list_find_custom(interrupts_db, &find, compare_ints);
if (!entry)
entry = g_list_find_custom(banned_irqs, &find, compare_ints);
return entry ? entry->data : NULL;
}
......
......@@ -30,6 +30,11 @@
#define IRQ_TYPE_MSIX 2
#define IRQ_TYPE_VIRT_EVENT 3
/*
* IRQ Internal tracking flags
*/
#define IRQ_FLAG_BANNED 1
enum obj_type_e {
OBJ_TYPE_CPU,
OBJ_TYPE_CACHE,
......@@ -55,6 +60,7 @@ struct irq_info {
int class;
int type;
int level;
int flags;
struct topo_obj *numa_node;
cpumask_t cpumask;
cpumask_t affinity_hint;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment