[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <86802c440909271819i303df4ccw9c5df1f4d4455e36@mail.gmail.com>
Date: Sun, 27 Sep 2009 18:19:09 -0700
From: Yinghai Lu <yhlu.kernel@...il.com>
To: Dimitri Sivanich <sivanich@....com>
Cc: Ingo Molnar <mingo@...e.hu>, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] x86: limit irq affinity
On Sun, Sep 27, 2009 at 6:02 PM, Dimitri Sivanich <sivanich@....com> 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@....com>
>
> ---
>
> 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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists