An error occurred fetching the project authors.
  1. 07 Feb, 2006 1 commit
  2. 11 Jan, 2006 3 commits
    • Anton Blanchard's avatar
      [PATCH] powerpc/64: per cpu data optimisations · 7a0268fa
      Anton Blanchard authored
      The current ppc64 per cpu data implementation is quite slow. eg:
      
              lhz 11,18(13)           /* smp_processor_id() */
              ld 9,.LC63-.LCTOC1(30)  /* per_cpu__variable_name */
              ld 8,.LC61-.LCTOC1(30)  /* __per_cpu_offset */
              sldi 11,11,3            /* form index into __per_cpu_offset */
              mr 10,9
              ldx 9,11,8              /* __per_cpu_offset[smp_processor_id()] */
              ldx 0,10,9              /* load per cpu data */
      
      5 loads for something that is supposed to be fast, pretty awful. One
      reason for the large number of loads is that we have to synthesize 2
      64bit constants (per_cpu__variable_name and __per_cpu_offset).
      
      By putting __per_cpu_offset into the paca we can avoid the 2 loads
      associated with it:
      
              ld 11,56(13)            /* paca->data_offset */
              ld 9,.LC59-.LCTOC1(30)  /* per_cpu__variable_name */
              ldx 0,9,11              /* load per cpu data
      
      Longer term we can should be able to do even better than 3 loads.
      If per_cpu__variable_name wasnt a 64bit constant and paca->data_offset
      was in a register we could cut it down to one load. A suggestion from
      Rusty is to use gcc's __thread extension here. In order to do this we
      would need to free up r13 (the __thread register and where the paca
      currently is). So far Ive had a few unsuccessful attempts at doing that :)
      
      The patch also allocates per cpu memory node local on NUMA machines.
      This patch from Rusty has been sitting in my queue _forever_ but stalled
      when I hit the compiler bug. Sorry about that.
      
      Finally I also only allocate per cpu data for possible cpus, which comes
      straight out of the x86-64 port. On a pseries kernel (with NR_CPUS == 128)
      and 4 possible cpus we see some nice gains:
      
                   total       used       free     shared    buffers cached
      Mem:       4012228     212860    3799368          0          0 162424
      
                   total       used       free     shared    buffers cached
      Mem:       4016200     212984    3803216          0          0 162424
      
      A saving of 3.75MB. Quite nice for smaller machines. Note: we now have
      to be careful of per cpu users that touch data for !possible cpus.
      
      At this stage it might be worth making the NUMA and possible cpu
      optimisations generic, but per cpu init is done so early we have to be
      careful that all architectures have their possible map setup correctly.
      Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      7a0268fa
    • Michael Ellerman's avatar
      [PATCH] powerpc: Make early debugging configurable via Kconfig · 296167ae
      Michael Ellerman authored
      This patch adds Kconfig entries to control the early debugging options,
      currently in setup_64.c.
      
      Doing this via Kconfig rather than #defines means you can have one source tree,
      which is buildable for multiple platforms - and you can enable the correct
      early debug option for each platform via .config.
      
      I made udbg_early_init() a static inline because otherwise GCC is to daft to
      optimise it away when debugging is off.
      
      Now that we have udbg_init_rtas() we can make call_rtas_display_status* static.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      296167ae
    • Michael Ellerman's avatar
      [PATCH] powerpc: Early debugging support for iSeries · bf6a7112
      Michael Ellerman authored
      Connect iSeries up to the standard early debugging infrastructure.
      
      To actually use this you need to enable the iSeries early debugging
      in setup_64.c. Then after the messages are logged hit Ctrl-x Ctrl-x on
      your console to dump the Hypervisor console buffer.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      bf6a7112
  3. 10 Jan, 2006 1 commit
  4. 09 Jan, 2006 7 commits
  5. 09 Dec, 2005 1 commit
    • Olof Johansson's avatar
      [PATCH] powerpc: Set cache info defaults · dabcafd3
      Olof Johansson authored
      Cache info is setup by walking the device tree in initialize_cache_info().
      However, icache_flush_range might be called before that, in
      slb_initialize()->patch_slb_encoding, which modifies the load immediate
      instructions used with SLB fault code.
      
      Not only that, but depending on memory layout, we might take SLB faults
      during unflatten_device_tree. So that fault will load an SLB entry that
      might not contain the right LLP flags for the segment.
      
      Either we can walk the flattened device tree to setup cache info, or
      we can pick the known defaults that are known to work. Doing it in the
      flattened device tree is hairier since we need to know the machine type
      to know what property to look for, etc, etc.
      
      For now, it's just easier to go with the defaults. Worst thing that
      happens from it is that we might waste a few cycles doing too small
      dcbst/icbi increments.
      Signed-off-by: default avatarOlof Johansson <olof@lixom.net>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      dabcafd3
  6. 14 Nov, 2005 1 commit
  7. 11 Nov, 2005 1 commit
    • Benjamin Herrenschmidt's avatar
      [PATCH] powerpc: Merge vdso's and add vdso support to 32 bits kernel · a7f290da
      Benjamin Herrenschmidt authored
      This patch moves the vdso's to arch/powerpc, adds support for the 32
      bits vdso to the 32 bits kernel, rename systemcfg (finally !), and adds
      some new (still untested) routines to both vdso's: clock_gettime() with
      support for CLOCK_REALTIME and CLOCK_MONOTONIC, clock_getres() (same
      clocks) and get_tbfreq() for glibc to retreive the timebase frequency.
      
      Tom,Steve: The implementation of get_tbfreq() I've done for 32 bits
      returns a long long (r3, r4) not a long. This is such that if we ever
      add support for >4Ghz timebases on ppc32, the userland interface won't
      have to change.
      
      I have tested gettimeofday() using some glibc patches in both ppc32 and
      ppc64 kernels using 32 bits userland (I haven't had a chance to test a
      64 bits userland yet, but the implementation didn't change and was
      tested earlier). I haven't tested yet the new functions.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      a7f290da
  8. 10 Nov, 2005 2 commits
  9. 09 Nov, 2005 1 commit
  10. 08 Nov, 2005 2 commits
    • Paul Mackerras's avatar
      powerpc: Simplify and clean up the xmon terminal I/O · fca5dcd4
      Paul Mackerras authored
      This factors out the common bits of arch/powerpc/xmon/start_*.c into
      a new nonstdio.c, and removes some stuff that was supposed to make
      xmon's I/O routines somewhat stdio-like but was never used.
      
      It also makes the parsing of the xmon= command line option common,
      so that ppc32 can now use xmon={off,on,early} also.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      fca5dcd4
    • David Woodhouse's avatar
      [PATCH] powerpc: Fix ppc32 initrd · a82765b6
      David Woodhouse authored
      OK, the Fedora ppc32 and ppc64 kernels should both be arch/powerpc by
      tomorrow. They're booting on G5, POWER5, and my powerbook. I'll test
      pmac SMP and Pegasos later -- but pmac smp is known broken in arch/ppc
      anyway, and I'll live with a potential Pegasos regression for now; it
      wasn't supported officially in FC4 either.
      
      I needed to fix ppc32 initrd -- we were never setting initrd_start.
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      a82765b6
  11. 07 Nov, 2005 2 commits
    • David Gibson's avatar
      [PATCH] powerpc: Kill ppcdebug · dcad47fc
      David Gibson authored
      The ancient ppcdebug/PPCDBG mechanism is now only used in two places.
      First, in the hash setup code, one of the bits allows the size of the
      hash table to be reduced by a factor of 8 - which would be better
      accomplished with a command line option for that purpose.  The other
      was a bunch of bus walking related messages in the iSeries code, which
      would seem to be insufficient reason to keep the mechanism.
      
      This patch removes the last traces of this mechanism.
      
      Built and booted on iSeries and pSeries POWER5 LPAR (ARCH=powerpc).
      Signed-off-by: default avatarDavid Gibson <dwg@au1.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      dcad47fc
    • Benjamin Herrenschmidt's avatar
      [PATCH] ppc64: support 64k pages · 3c726f8d
      Benjamin Herrenschmidt authored
      Adds a new CONFIG_PPC_64K_PAGES which, when enabled, changes the kernel
      base page size to 64K.  The resulting kernel still boots on any
      hardware.  On current machines with 4K pages support only, the kernel
      will maintain 16 "subpages" for each 64K page transparently.
      
      Note that while real 64K capable HW has been tested, the current patch
      will not enable it yet as such hardware is not released yet, and I'm
      still verifying with the firmware architects the proper to get the
      information from the newer hypervisors.
      Signed-off-by: default avatarBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
      3c726f8d
  12. 04 Nov, 2005 2 commits
  13. 02 Nov, 2005 1 commit
  14. 01 Nov, 2005 2 commits
  15. 31 Oct, 2005 1 commit
  16. 28 Oct, 2005 2 commits
  17. 27 Oct, 2005 3 commits
  18. 20 Oct, 2005 2 commits
  19. 19 Oct, 2005 1 commit
    • Paul Mackerras's avatar
      powerpc: Merge time.c and asm/time.h. · f2783c15
      Paul Mackerras authored
      We now use the merged time.c for both 32-bit and 64-bit compilation
      with ARCH=powerpc, and for ARCH=ppc64, but not for ARCH=ppc32.
      This removes setup_default_decr (folds its function into time_init)
      and moves wakeup_decrementer into time.c.  This also makes an
      asm-powerpc/rtc.h.
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      f2783c15
  20. 11 Oct, 2005 1 commit
  21. 10 Oct, 2005 1 commit
  22. 23 Sep, 2005 2 commits