An error occurred fetching the project authors.
  1. 11 Oct, 2012 1 commit
  2. 23 Jul, 2012 1 commit
    • Kelvin Cheung's avatar
      MIPS: Add CPU support for Loongson1B · 2fa36399
      Kelvin Cheung authored
      Loongson 1B is a 32-bit SoC designed by Institute of Computing Technology
      (ICT) and the Chinese Academy of Sciences (CAS), which implements the
      MIPS32 release 2 instruction set.
      
      [ralf@linux-mips.org: But which is not strictly a MIPS32 compliant device
      which also is why it identifies itself with the Legacy Vendor ID in the
      PrID register.  When applying the patch I shoveled some code around to
      keep things in alphabetical order and avoid forward declarations.]
      Signed-off-by: default avatarKelvin Cheung <keguang.zhang@gmail.com>
      Cc: To: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: wuzhangjin@gmail.com
      Cc: zhzhl555@gmail.com
      Cc: Kelvin Cheung <keguang.zhang@gmail.com>
      Patchwork: https://patchwork.linux-mips.org/patch/3976/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      2fa36399
  3. 19 Jul, 2012 1 commit
  4. 15 May, 2012 1 commit
  5. 09 May, 2012 1 commit
  6. 05 Mar, 2012 1 commit
  7. 07 Dec, 2011 4 commits
    • Deng-Cheng Zhu's avatar
      MIPS/Perf-events: Cleanup event->destroy at event init · ff5d7265
      Deng-Cheng Zhu authored
      Simplify the code by changing the place of event->destroy().
      Signed-off-by: default avatarDeng-Cheng Zhu <dczhu@mips.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Cc: David Daney <david.daney@cavium.com>
      Cc: Eyal Barzilay <eyal@mips.com>
      Cc: Zenon Fortuna <zenon@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/3109/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      ff5d7265
    • Deng-Cheng Zhu's avatar
      MIPS/Perf-events: Remove pmu and event state checking in validate_event() · 266623b7
      Deng-Cheng Zhu authored
      Why removing pmu checking:
      Since 3.2-rc1, when arch level event init is called, the event is already
      connected to its PMU. Also, validate_event() is _only_ called by
      validate_group() in event init, so there is no need of checking or
      temporarily assigning event pmu during validate_group().
      
      Why removing event state checking:
      Events could be created in PERF_EVENT_STATE_OFF (attr->disabled == 1), when
      these events go through this checking, validate_group() does dummy work.
      But we do need to do group scheduling emulation for them in event init.
      Again, validate_event() is _only_ called by validate_group().
      
      Reference: http://www.spinics.net/lists/mips/msg42190.htmlSigned-off-by: default avatarDeng-Cheng Zhu <dczhu@mips.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Cc: David Daney <david.daney@cavium.com>
      Cc: Eyal Barzilay <eyal@mips.com>
      Cc: Zenon Fortuna <zenon@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/3108/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      266623b7
    • Deng-Cheng Zhu's avatar
      MIPS/Perf-events: Remove erroneous check on active_events · 74653ccf
      Deng-Cheng Zhu authored
      Port the following patch for ARM by Mark Rutland:
      
      - 57ce9bb3
          ARM: 6902/1: perf: Remove erroneous check on active_events
      
          When initialising a PMU, there is a check to protect against races with
          other CPUs filling all of the available event slots. Since armpmu_add
          checks that an event can be scheduled, we do not need to do this at
          initialisation time. Furthermore the current code is broken because it
          assumes that atomic_inc_not_zero will unconditionally increment
          active_counts and then tries to decrement it again on failure.
      
          This patch removes the broken, redundant code.
      Signed-off-by: default avatarDeng-Cheng Zhu <dczhu@mips.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Cc: David Daney <david.daney@cavium.com>
      Cc: Eyal Barzilay <eyal@mips.com>
      Cc: Zenon Fortuna <zenon@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/3106/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      74653ccf
    • Deng-Cheng Zhu's avatar
      MIPS/Perf-events: Don't do validation on raw events · 2c1b54d3
      Deng-Cheng Zhu authored
      MIPS licensees may want to modify performance counters to count extra
      events. Also, now that the user is working on raw events, the manual is
      being used for sure. And feeding unsupported events shouldn't cause
      hardware failure and the like.
      
      [ralf@linux-mips.org: performance events also being used in internal
      performance evaluation and have a tendency to change as the micro-
      architecture evolves, even for minor revisions that may not be
      distinguishable by PrID.  It's not very practicable to maintain a list
      of all events and there is no real benefit.]
      Signed-off-by: default avatarDeng-Cheng Zhu <dczhu@mips.com>
      Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: Paul Mackerras <paulus@samba.org>
      Cc: Ingo Molnar <mingo@elte.hu>
      Cc: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>
      Cc: David Daney <david.daney@cavium.com>
      Cc: Eyal Barzilay <eyal@mips.com>
      Cc: Zenon Fortuna <zenon@mips.com>
      Patchwork: https://patchwork.linux-mips.org/patch/3107/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      2c1b54d3
  8. 14 Nov, 2011 1 commit
  9. 24 Oct, 2011 4 commits
  10. 01 Jul, 2011 1 commit
    • Peter Zijlstra's avatar
      perf, arch: Add generic NODE cache events · 89d6c0b5
      Peter Zijlstra authored
      Add a NODE level to the generic cache events which is used to measure
      local vs remote memory accesses. Like all other cache events, an
      ACCESS is HIT+MISS, if there is no way to distinguish between reads
      and writes do reads only etc..
      
      The below needs filling out for !x86 (which I filled out with
      unsupported events).
      
      I'm fairly sure ARM can leave it like that since it doesn't strike me as
      an architecture that even has NUMA support. SH might have something since
      it does appear to have some NUMA bits.
      
      Sparc64, PowerPC and MIPS certainly want a good look there since they
      clearly are NUMA capable.
      Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Cc: David Miller <davem@davemloft.net>
      Cc: Anton Blanchard <anton@samba.org>
      Cc: David Daney <ddaney@caviumnetworks.com>
      Cc: Deng-Cheng Zhu <dengcheng.zhu@gmail.com>
      Cc: Paul Mundt <lethal@linux-sh.org>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Robert Richter <robert.richter@amd.com>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/r/1303508226.4865.8.camel@laptopSigned-off-by: default avatarIngo Molnar <mingo@elte.hu>
      89d6c0b5
  11. 31 Mar, 2011 1 commit
  12. 14 Mar, 2011 2 commits
    • Deng-Cheng Zhu's avatar
      MIPS, Perf-events: Work with the new PMU interface · 404ff638
      Deng-Cheng Zhu authored
      This is the MIPS part of the following commits by Peter Zijlstra:
      
      - a4eaf7f1
          perf: Rework the PMU methods
      
          Replace pmu::{enable,disable,start,stop,unthrottle} with
          pmu::{add,del,start,stop}, all of which take a flags argument.
      
          The new interface extends the capability to stop a counter while
          keeping it scheduled on the PMU. We replace the throttled state with
          the generic stopped state.
      
          This also allows us to efficiently stop/start counters over certain
          code paths (like IRQ handlers).
      
          It also allows scheduling a counter without it starting, allowing for
          a generic frozen state (useful for rotating stopped counters).
      
          The stopped state is implemented in two different ways, depending on
          how the architecture implemented the throttled state:
      
           1) We disable the counter:
              a) the pmu has per-counter enable bits, we flip that
              b) we program a NOP event, preserving the counter state
      
           2) We store the counter state and ignore all read/overflow events
      
      For MIPSXX, the stopped state is implemented in the way of 1.b as above.
      
      - 33696fc0
          perf: Per PMU disable
      
          Changes perf_disable() into perf_pmu_disable().
      
      - 24cd7f54
          perf: Reduce perf_disable() usage
      
          Since the current perf_disable() usage is only an optimization,
          remove it for now. This eases the removal of the __weak
          hw_perf_enable() interface.
      
      - b0a873eb
          perf: Register PMU implementations
      
          Simple registration interface for struct pmu, this provides the
          infrastructure for removing all the weak functions.
      
      - 51b0fe39
          perf: Deconstify struct pmu
      
          sed -ie 's/const struct pmu\>/struct pmu/g' `git grep -l "const struct pmu\>"`
      Reported-by: default avatarWu Zhangjin <wuzhangjin@gmail.com>
      Acked-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      Signed-off-by: default avatarDeng-Cheng Zhu <dengcheng.zhu@gmail.com>
      To: a.p.zijlstra@chello.nl
      To: fweisbec@gmail.com
      To: will.deacon@arm.com
      Cc: linux-mips@linux-mips.org
      Cc: linux-kernel@vger.kernel.org
      Cc: wuzhangjin@gmail.com
      Cc: paulus@samba.org
      Cc: mingo@elte.hu
      Cc: acme@redhat.com
      Cc: dengcheng.zhu@gmail.com
      Cc: matt@console-pimps.org
      Cc: sshtylyov@mvista.com
      Cc: ddaney@caviumnetworks.com
      Patchwork: http://patchwork.linux-mips.org/patch/2012/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      404ff638
    • Deng-Cheng Zhu's avatar
      MIPS, Perf-events: Work with irq_work · 91f01737
      Deng-Cheng Zhu authored
      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: default avatarWu Zhangjin <wuzhangjin@gmail.com>
      Acked-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
      Acked-by: default avatarDavid Daney <ddaney@caviumnetworks.com>
      Signed-off-by: default avatarDeng-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: default avatarRalf Baechle <ralf@linux-mips.org>
      91f01737
  13. 26 Nov, 2010 1 commit
  14. 29 Oct, 2010 1 commit
    • Deng-Cheng Zhu's avatar
      MIPS: Add support for hardware performance events (mipsxx) · 3a9ab99e
      Deng-Cheng Zhu authored
      This patch adds the mipsxx Perf-events support based on the skeleton.
      Generic hardware events and cache events are now fully implemented for
      the 24K/34K/74K/1004K cores. To support other cores in mipsxx (such as
      R10000/SB1), the generic hardware event tables and cache event tables
      need to be filled out. To support other CPUs which have different PMU
      than mipsxx, such as RM9000 and LOONGSON2, the additional files
      perf_event_$cpu.c need to be created.
      
      Raw event is an important part of Perf-events. It helps the user collect
      performance data for events that are not listed as the generic hardware
      events and cache events but ARE supported by the CPU's PMU.
      
      This patch also adds this feature for mipsxx 24K/34K/74K/1004K. For how to
      use it, please refer to processor core software user's manual and the
      comments for mipsxx_pmu_map_raw_event() for more details.
      
      Please note that this is a "precise" implementation, which means the
      kernel will check whether the requested raw events are supported by this
      CPU and which hardware counters can be assigned for them.
      
      To test the functionality of Perf-event, you may want to compile the tool
      "perf" for your MIPS platform. You can refer to the following URL:
      http://www.linux-mips.org/archives/linux-mips/2010-10/msg00126.html
      
      You also need to customize the CFLAGS and LDFLAGS in tools/perf/Makefile
      for your libs, includes, etc.
      
      In case you encounter the boot failure in SMVP kernel on multi-threading
      CPUs, you may take a look at:
      http://www.linux-mips.org/git?p=linux-mti.git;a=commitdiff;h=5460815027d802697b879644c74f0e8365254020Signed-off-by: default avatarDeng-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/1689/Signed-off-by: default avatarRalf Baechle <ralf@linux-mips.org>
      
       create mode 100644 arch/mips/kernel/perf_event_mipsxx.c
      3a9ab99e