1. 26 2月, 2009 1 次提交
    • P
      perfcounters/powerpc: Add support for POWER5 processors · 742bd95b
      Paul Mackerras 提交于
      This adds the back-end for the PMU on the POWER5 processor.  This knows
      how to use the fixed-function PMC5 and PMC6 (instructions completed and
      run cycles).  Unlike POWER6, PMC5/6 obey the freeze conditions and can
      generate interrupts, so their use doesn't impose any extra restrictions.
      
      POWER5+ is different and is not supported by this patch.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      742bd95b
  2. 10 1月, 2009 3 次提交
    • P
      powerpc/perf_counter: Add support for POWER6 · f7862837
      Paul Mackerras 提交于
      This adds the back-end for the PMU on the POWER6 processor.
      Fortunately, the event selection hardware is somewhat simpler on
      POWER6 than on other POWER family processors, so the constraints
      fit into only 32 bits.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f7862837
    • P
      powerpc/perf_counter: Add support for PPC970 family · 16b06799
      Paul Mackerras 提交于
      This adds the back-end for the PMU on the PPC970 family.
      
      The PPC970 allows events from the ISU to be selected in two different
      ways.  Rather than use alternative event codes to express this, we
      instead use a single encoding for ISU events and express the
      resulting constraint (that you can't select events from all three
      of FPU/IFU/VPU, ISU and IDU/STS at the same time, since they all come
      in through only 2 multiplexers) using a NAND constraint field, and
      work out which multiplexer is used for ISU events at compute_mmcr
      time.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      16b06799
    • P
      powerpc/perf_counter: Add generic support for POWER-family PMU hardware · 4574910e
      Paul Mackerras 提交于
      This provides the architecture-specific functions needed to access
      PMU hardware on the 64-bit PowerPC processors.  It has been designed
      for the IBM POWER family (POWER 4/4+/5/5+/6 and PPC970) but will
      hopefully also suit other 64-bit PowerPC machines (although probably
      not Cell given how different it is in this area).  This doesn't
      include back-ends for any specific processors.
      
      This implements a system which allows back-ends to express the
      constraints that their hardware has on what events can be counted
      simultaneously.  The constraints are expressed as a 64-bit mask +
      64-bit value for each event, and the encoding is capable of
      expressing the constraints arising from having a set of multiplexers
      feeding an event bus, with some events being available through
      multiple multiplexer settings, such as we get on POWER4 and PPC970.
      Furthermore, the back-end can supply alternative event codes for
      each event, and the constraint checking code will try all possible
      combinations of alternative event codes to try to find a combination
      that will fit.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      4574910e
  3. 08 1月, 2009 1 次提交
    • N
      powerpc: Rewrite sysfs processor cache info code · 93197a36
      Nathan Lynch 提交于
      The current code for providing processor cache information in sysfs
      has the following deficiencies:
      - several complex functions that are hard to understand
      - implicit recursion (cache_desc_release -> kobject_put -> cache_desc_release)
      - explicit recursion (create_cache_index_info)
      - use of two per-cpu arrays when one would suffice
      - duplication of work on systems where CPUs share cache
      
      Also, when I looked at implementing support for a shared_cpu_map
      attribute, it was pretty much impossible to handle hotplug without
      checking every single online CPU's cache_desc list and fixing things
      up... not that this is a hot path, but it would have introduced
      O(n^2)-ish behavior during boot.  Addressing this involved rethinking
      the core data structures used, which didn't lend itself to an
      incremental approach.
      
      This implementation maintains a "forest" (potentially more than one
      tree) of cache objects which reflects the system's cache topology.
      Cache objects are instantiated as needed as CPUs come online.  A
      per-cpu array is used mainly for sysfs-related bookkeeping; the
      objects in the array just point to the appropriate points in the
      forest.
      
      This maintains compatibility with the existing code and includes some
      enhancements:
      - Implement the shared_cpu_map attribute, which is essential for
        enabling userspace to discover the system's overall cache topology.
      - Use cache-block-size properties if cache-line-size is not available.
      
      I chose to place this implementation in a new file since it would have
      roughly doubled the size of sysfs.c, which is already kind of messy.
      Signed-off-by: NNathan Lynch <ntl@pobox.com>
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      93197a36
  4. 23 12月, 2008 2 次提交
  5. 28 11月, 2008 1 次提交
    • S
      powerpc/ppc32: static ftrace fixes for PPC32 · f1eecf0e
      Steven Rostedt 提交于
      Impact: fix for PowerPC 32 code
      
      There were some early init code that was not safe for static
      ftrace to boot on my PowerBook. This code must only use relative
      addressing, and static mcount performs a compare of the
      ftrace_trace_function pointer, and gets that with an absolute address.
      In the early init boot up code, this will cause a fault.
      
      This patch removes tracing from the files containing the offending
      functions.
      Signed-off-by: NSteven Rostedt <srostedt@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@elte.hu>
      f1eecf0e
  6. 21 10月, 2008 1 次提交
  7. 25 9月, 2008 3 次提交
  8. 16 9月, 2008 1 次提交
    • P
      powerpc: Make the 64-bit kernel as a position-independent executable · 549e8152
      Paul Mackerras 提交于
      This implements CONFIG_RELOCATABLE for 64-bit by making the kernel as
      a position-independent executable (PIE) when it is set.  This involves
      processing the dynamic relocations in the image in the early stages of
      booting, even if the kernel is being run at the address it is linked at,
      since the linker does not necessarily fill in words in the image for
      which there are dynamic relocations.  (In fact the linker does fill in
      such words for 64-bit executables, though not for 32-bit executables,
      so in principle we could avoid calling relocate() entirely when we're
      running a 64-bit kernel at the linked address.)
      
      The dynamic relocations are processed by a new function relocate(addr),
      where the addr parameter is the virtual address where the image will be
      run.  In fact we call it twice; once before calling prom_init, and again
      when starting the main kernel.  This means that reloc_offset() returns
      0 in prom_init (since it has been relocated to the address it is running
      at), which necessitated a few adjustments.
      
      This also changes __va and __pa to use an equivalent definition that is
      simpler.  With the relocatable kernel, PAGE_OFFSET and MEMORY_START are
      constants (for 64-bit) whereas PHYSICAL_START is a variable (and
      KERNELBASE ideally should be too, but isn't yet).
      
      With this, relocatable kernels still copy themselves down to physical
      address 0 and run there.
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      549e8152
  9. 03 9月, 2008 1 次提交
    • T
      powerpc: Work around gcc's -fno-omit-frame-pointer bug · 7563dc64
      Tony Breeds 提交于
      This bug is causing random crashes
      (http://bugzilla.kernel.org/show_bug.cgi?id=11414).
      
      -fno-omit-frame-pointer is only needed on powerpc when -pg is also
      supplied, and there is a gcc bug that causes incorrect code generation
      on 32-bit powerpc when -fno-omit-frame-pointer is used---it uses stack
      locations below the stack pointer, which is not allowed by the ABI
      because those locations can and sometimes do get corrupted by an
      interrupt.
      
      This ensures that CONFIG_FRAME_POINTER is only selected by ftrace.
      When CONFIG_FTRACE is enabled we also pass -mno-sched-epilog to work
      around the gcc codegen bug.
      
      Patch based on work by:
      	Andreas Schwab <schwab@suse.de>
      	Segher Boessenkool <segher@kernel.crashing.org>
      Signed-off-by: NTony Breeds <tony@bakeyournoodle.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      7563dc64
  10. 20 8月, 2008 1 次提交
  11. 04 8月, 2008 1 次提交
  12. 24 7月, 2008 1 次提交
    • J
      kgdb, powerpc: arch specific powerpc kgdb support · 17ce452f
      Jason Wessel 提交于
      This patch removes the old kgdb reminants from ARCH=powerpc and
      implements the new style arch specific stub for the common kgdb core
      interface.
      
      It is possible to have xmon and kgdb in the same kernel, but you
      cannot use both at the same time because there is only one set of
      debug hooks.
      
      The arch specific kgdb implementation saves the previous state of the
      debug hooks and restores them if you unconfigure the kgdb I/O driver.
      Kgdb should have no impact on a kernel that has no kgdb I/O driver
      configured.
      Signed-off-by: NJason Wessel <jason.wessel@windriver.com>
      17ce452f
  13. 01 7月, 2008 1 次提交
  14. 26 6月, 2008 1 次提交
  15. 24 5月, 2008 1 次提交
  16. 12 5月, 2008 1 次提交
  17. 29 4月, 2008 1 次提交
  18. 24 4月, 2008 1 次提交
  19. 18 4月, 2008 1 次提交
  20. 17 4月, 2008 1 次提交
  21. 14 2月, 2008 1 次提交
  22. 07 2月, 2008 2 次提交
  23. 24 1月, 2008 1 次提交
  24. 17 1月, 2008 1 次提交
  25. 20 12月, 2007 1 次提交
    • S
      [POWERPC] Stop the TOC overflowing for large builds · 08a644ec
      Stephen Rothwell 提交于
      We were using -mno-minimal-toc on everything in arch/powerpc/kernel,
      which means that all the functions in there were putting all their
      TOC entries in the top-level TOC, and it was overflowing on an
      allyesconfig build.  For various reasons, prom_init.c does need
      -mno-minimal-toc, but the other .c files in there can use sub-TOCs
      quite happily.  This change is sufficient for now to stop the TOC
      overflowing; other directories under arch/powerpc also use
      -mno-minimal-toc and could also be changed later if necessary.
      
      Lmbench runs with and without this patch showed no significant speed
      differences.
      Signed-off-by: NStephen Rothwell <sfr@canb.auug.org.au>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      08a644ec
  26. 05 10月, 2007 1 次提交
    • S
      [POWERPC] 8xx: Move softemu8xx.c from arch/ppc · 5dd57a13
      Scott Wood 提交于
      Previously, Soft_emulate_8xx was called with no implementation, resulting in
      build failures whenever building 8xx without math emulation.  The
      implementation is copied from arch/ppc to resolve this issue.
      
      However, this sort of minimal emulation is not a very good idea other than
      for compatibility with existing userspaces, as it's less efficient than
      soft-float and can mislead users into believing they have soft-float.  Thus,
      it is made a configurable option, off by default.
      Signed-off-by: NScott Wood <scottwood@freescale.com>
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      5dd57a13
  27. 04 10月, 2007 1 次提交
  28. 03 10月, 2007 3 次提交
  29. 22 8月, 2007 1 次提交
  30. 20 8月, 2007 1 次提交
  31. 15 8月, 2007 1 次提交
  32. 30 7月, 2007 1 次提交