18 Dec, 2010

1 commit

  • The irq work queue is a per cpu object and it is sufficient for
    synchronization if per cpu atomics are used. Doing so simplifies
    the code and reduces the overhead of the code.

    Before:

    christoph@linux-2.6$ size kernel/irq_work.o
    text data bss dec hex filename
    451 8 1 460 1cc kernel/irq_work.o

    After:

    christoph@linux-2.6$ size kernel/irq_work.o
    text data bss dec hex filename
    438 8 1 447 1bf kernel/irq_work.o

    Cc: Peter Zijlstra
    Signed-off-by: Christoph Lameter

    Christoph Lameter
     

18 Nov, 2010

1 commit

  • The compiler warned us about:

    kernel/irq_work.c: In function 'irq_work_run':
    kernel/irq_work.c:148: warning: value computed is not used

    Dropping the cmpxchg() result is indeed weird, but correct -
    so annotate away the warning.

    Signed-off-by: Sergio Aguirre
    Cc: Huang Ying
    Cc: Martin Schwidefsky
    Cc: Kyle McMartin
    Signed-off-by: Peter Zijlstra
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Sergio Aguirre
     

19 Oct, 2010

1 commit

  • Provide a mechanism that allows running code in IRQ context. It is
    most useful for NMI code that needs to interact with the rest of the
    system -- like wakeup a task to drain buffers.

    Perf currently has such a mechanism, so extract that and provide it as
    a generic feature, independent of perf so that others may also
    benefit.

    The IRQ context callback is generated through self-IPIs where
    possible, or on architectures like powerpc the decrementer (the
    built-in timer facility) is set to generate an interrupt immediately.

    Architectures that don't have anything like this get to do with a
    callback from the timer tick. These architectures can call
    irq_work_run() at the tail of any IRQ handlers that might enqueue such
    work (like the perf IRQ handler) to avoid undue latencies in
    processing the work.

    Signed-off-by: Peter Zijlstra
    Acked-by: Kyle McMartin
    Acked-by: Martin Schwidefsky
    [ various fixes ]
    Signed-off-by: Huang Ying
    LKML-Reference:
    Signed-off-by: Ingo Molnar

    Peter Zijlstra