1. 15 3月, 2011 1 次提交
    • 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
  2. 30 10月, 2010 1 次提交
    • D
      MIPS: add support for hardware performance events (skeleton) · 14f70012
      Deng-Cheng Zhu 提交于
      This patch provides the skeleton of the HW perf event support. To enable
      this feature, we can not choose the SMTC kernel; Oprofile should be
      disabled; kernel performance events be selected. Then we can enable it in
      Kernel type menu.
      
      Oprofile for MIPS platforms initializes irq at arch init time. Currently
      we do not change this logic to allow PMU reservation.
      
      If a platform has EIC, we can use the irq base and perf counter irq offset
      defines for the interrupt controller in specific init_hw_perf_events().
      
      Based on this skeleton patch, the 3 different kinds of MIPS PMU, namely,
      mipsxx/loongson2/rm9000, can be supported by adding corresponding lower
      level C files at the bottom. The suggested names of these files are
      perf_event_mipsxx.c/perf_event_loongson2.c/perf_event_rm9000.c. So, for
      example, we can do this by adding "#include perf_event_mipsxx.c" at the
      bottom of perf_event.c.
      
      In addition, PMUs with 64bit counters are also considered in this patch.
      Signed-off-by: NDeng-Cheng Zhu <dengcheng.zhu@gmail.com>
      To: linux-mips@linux-mips.org
      Cc: a.p.zijlstra@chello.nl
      Cc: paulus@samba.org
      Cc: mingo@elte.hu
      Cc: acme@redhat.com
      Cc: jamie.iles@picochip.com
      Cc: ddaney@caviumnetworks.com
      Cc: matt@console-pimps.org
      Patchwork: https://patchwork.linux-mips.org/patch/1688/Signed-off-by: NRalf Baechle <ralf@linux-mips.org>
      14f70012