Re: [PATCH] x86: limit irq affinity

From: Yinghai Lu
Date: Sun Sep 27 2009 - 21:19:27 EST


On Sun, Sep 27, 2009 at 6:02 PM, Dimitri Sivanich <sivanich@xxxxxxx> wrote:
> This patch allows for restrictions to irq affinity via a new cpumask and
> device node value in the irq_cfg structure.  The node value can then be
> used by specific x86 architectures to determine the cpumask for the
> desired cpu irq affinity domain.
>
> The mask forces IRQ affinity to remain within the specified cpu domain.
> On some UV systems, this domain will be limited to the nodes accessible
> to the given node.  Currently other X86 systems will have all bits in
> the cpumask set, so non-UV systems will remain unaffected at this time.
>
> Signed-off-by: Dimitri Sivanich <sivanich@xxxxxxx>
>
> ---
>
>  arch/x86/Kconfig                   |    1
>  arch/x86/include/asm/uv/uv_irq.h   |    2
>  arch/x86/include/asm/uv/uv_mmrs.h  |   25 ++++
>  arch/x86/kernel/apic/io_apic.c     |  166 +++++++++++++++++++++++++++------
>  arch/x86/kernel/apic/x2apic_uv_x.c |    2
>  arch/x86/kernel/uv_irq.c           |   68 +++++++++++++
>  6 files changed, 235 insertions(+), 29 deletions(-)
>
> Index: linux/arch/x86/kernel/apic/io_apic.c
> ===================================================================
> --- linux.orig/arch/x86/kernel/apic/io_apic.c   2009-09-26 15:28:04.000000000 -0500
> +++ linux/arch/x86/kernel/apic/io_apic.c        2009-09-26 16:20:04.000000000 -0500
> @@ -62,6 +62,7 @@
>  #include <asm/hw_irq.h>
>  #include <asm/uv/uv_hub.h>
>  #include <asm/uv/uv_irq.h>
> +#include <asm/uv/uv.h>
>
>  #include <asm/apic.h>
>
> @@ -149,6 +150,8 @@ struct irq_cfg {
>        struct irq_pin_list *irq_2_pin;
>        cpumask_var_t domain;
>        cpumask_var_t old_domain;
> +       cpumask_var_t allowed;
> +       int node;
>        unsigned move_cleanup_count;
>        u8 vector;
>        u8 move_in_progress : 1;
> @@ -184,6 +187,18 @@ void __init io_apic_disable_legacy(void)
>        nr_irqs_gsi = 0;
>  }
>

original irq affinity in irq_desc does not work?

YH
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/