lkml.org 
[lkml]   [2006]   [Jun]   [20]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 20/25] irq: Generalize the check for HARDIRQ_BITS.
    Date
    This patch adds support for systems that cannot receive every interrupt
    on a single cpu simultaneously, in the check to see if we have enough HARDIRQ_BITS.

    MAX_HARDIRQS_PER_CPU becomes the count of the maximum number of hardare
    generated interrupts per cpu.

    On architectures that support per cpu interrupt delivery this can be a
    significant space savings and scalability bonus.

    This patch adds support for systems that cannot receive every interrupt on

    Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
    ---
    include/asm-x86_64/hardirq.h | 3 +++
    include/linux/hardirq.h | 7 ++++++-
    2 files changed, 9 insertions(+), 1 deletions(-)

    diff --git a/include/asm-x86_64/hardirq.h b/include/asm-x86_64/hardirq.h
    index 64a65ce..95d5e09 100644
    --- a/include/asm-x86_64/hardirq.h
    +++ b/include/asm-x86_64/hardirq.h
    @@ -6,6 +6,9 @@ #include <linux/irq.h>
    #include <asm/pda.h>
    #include <asm/apic.h>

    +/* We can have at most NR_VECTORS irqs routed to a cpu at a time */
    +#define MAX_HARDIRQS_PER_CPU NR_VECTORS
    +
    #define __ARCH_IRQ_STAT 1

    #define local_softirq_pending() read_pda(__softirq_pending)
    diff --git a/include/linux/hardirq.h b/include/linux/hardirq.h
    index ccabda7..f60b8c3 100644
    --- a/include/linux/hardirq.h
    +++ b/include/linux/hardirq.h
    @@ -27,11 +27,16 @@ #define SOFTIRQ_BITS 8

    #ifndef HARDIRQ_BITS
    #define HARDIRQ_BITS 12
    +
    +#ifndef MAX_HARDIRQS_PER_CPU
    +#define MAX_HARDIRQS_PER_CPU NR_IRQS
    +#endif
    +
    /*
    * The hardirq mask has to be large enough to have space for potentially
    * all IRQ sources in the system nesting on a single CPU.
    */
    -#if (1 << HARDIRQ_BITS) < NR_IRQS
    +#if (1 << HARDIRQ_BITS) < MAX_HARDIRQS_PER_CPU
    # error HARDIRQ_BITS is too low!
    #endif
    #endif
    --
    1.4.0.gc07e
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2006-06-21 00:32    [W:0.024 / U:0.616 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site