• D
    MIPS, Perf-events: Work with irq_work · 91f01737
    Deng-Cheng Zhu 提交于
    This is the MIPS part of the following commit by Peter Zijlstra:
    
    - e360adbe
        irq_work: Add generic hardirq context callbacks
    
        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.
    
    For MIPSXX, we need to call irq_work_run() at the tail of the perf IRQ
    handler as described above.
    Reported-by: NWu Zhangjin <wuzhangjin@gmail.com>
    Acked-by: NPeter Zijlstra <a.p.zijlstra@chello.nl>
    Acked-by: NDavid Daney <ddaney@caviumnetworks.com>
    Signed-off-by: NDeng-Cheng Zhu <dengcheng.zhu@gmail.com>
    To: fweisbec@gmail.com
    To: will.deacon@arm.com
    Cc: linux-mips@linux-mips.org
    Cc: linux-kernel@vger.kernel.org
    Cc: paulus@samba.org
    Cc: mingo@elte.hu
    Cc: acme@redhat.com
    Cc: matt@console-pimps.org
    Cc: sshtylyov@mvista.com,
    Patchwork: http://patchwork.linux-mips.org/patch/2011/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
    91f01737
perf_event_mipsxx.c 27.4 KB