1. 09 Jan, 2006 10 commits
    • Arnd Bergmann's avatar
      [PATCH] spufs: cooperative scheduler support · 8b3d6663
      Arnd Bergmann authored
      This adds a scheduler for SPUs to make it possible to use
      more logical SPUs than physical ones are present in the
      system.
      
      Currently, there is no support for preempting a running
      SPU thread, they have to leave the SPU by either triggering
      an event on the SPU that causes it to return to the
      owning thread or by sending a signal to it.
      
      This patch also adds operations that enable accessing an SPU
      in either runnable or saved state. We use an RW semaphore
      to protect the state of the SPU from changing underneath
      us, while we are holding it readable. In order to change
      the state, it is acquired writeable and a context save
      or restore is executed before downgrading the semaphore
      to read-only.
      
      From: Mark Nutter <mnutter@us.ibm.com>,
            Uli Weigand <Ulrich.Weigand@de.ibm.com>
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      8b3d6663
    • Mark Nutter's avatar
      [PATCH] spufs: add spu-side context switch code · 05b84117
      Mark Nutter authored
      Add the source code that is used to generate spu_save_dump.h and
      spu_restore_dump.h. Since a full spu tool chain is needed to
      generate these files, the default remains to use the shipped
      versions in order to keep the number of tools for building the
      kernel down.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      05b84117
    • Mark Nutter's avatar
      [PATCH] kernel-side context switch code for spufs · 7c038749
      Mark Nutter authored
      This adds the code needed to perform a context switch from
      spufs, following the recommended 76-step sequence.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      7c038749
    • Mark Nutter's avatar
      [PATCH] spufs: switchable spu contexts · 5473af04
      Mark Nutter authored
      Add some infrastructure for saving and restoring the context of an
      SPE. This patch creates a new structure that can hold the whole
      state of a physical SPE in memory. It also contains code that
      avoids races during the context switch and the binary code that
      is loaded to the SPU in order to access its registers.
      
      The actual PPE- and SPE-side context switch code are two separate
      patches.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      5473af04
    • Arnd Bergmann's avatar
      [PATCH] spufs: The SPU file system, base · 67207b96
      Arnd Bergmann authored
      This is the current version of the spu file system, used
      for driving SPEs on the Cell Broadband Engine.
      
      This release is almost identical to the version for the
      2.6.14 kernel posted earlier, which is available as part
      of the Cell BE Linux distribution from
      http://www.bsc.es/projects/deepcomputing/linuxoncell/.
      
      The first patch provides all the interfaces for running
      spu application, but does not have any support for
      debugging SPU tasks or for scheduling. Both these
      functionalities are added in the subsequent patches.
      
      See Documentation/filesystems/spufs.txt on how to use
      spufs.
      Signed-off-by: default avatarArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      67207b96
    • Heiko J Schick's avatar
      [PATCH] powerpc: IBMEBUS bus support · d7a30103
      Heiko J Schick authored
      This patch adds the necessary core bus support used by device drivers
      that sit on the IBM GX bus on modern pSeries machines like the Galaxy
      infiniband for example. It provide transparent DMA ops (the low level
      driver works with virtual addresses directly) along with a simple bus
      layer using the Open Firmware matching routines.
      Signed-off-by: default avatarHeiko J Schick <schickhj@de.ibm.com>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      d7a30103
    • David Woodhouse's avatar
      [PATCH] syscall entry/exit revamp · 401d1f02
      David Woodhouse authored
      This cleanup patch speeds up the null syscall path on ppc64 by about 3%,
      and brings the ppc32 and ppc64 code slightly closer together.
      
      The ppc64 code was checking current_thread_info()->flags twice in the
      syscall exit path; once for TIF_SYSCALL_T_OR_A before disabling
      interrupts, and then again for TIF_SIGPENDING|TIF_NEED_RESCHED etc after
      disabling interrupts. Now we do the same as ppc32 -- check the flags
      only once in the fast path, and re-enable interrupts if necessary in the
      ptrace case.
      
      The patch abolishes the 'syscall_noerror' member of struct thread_info
      and replaces it with a TIF_NOERROR bit in the flags, which is handled in
      the slow path. This shortens the syscall entry code, which no longer
      needs to clear syscall_noerror.
      
      The patch adds a TIF_SAVE_NVGPRS flag which causes the syscall exit slow
      path to save the non-volatile GPRs into a signal frame. This removes the
      need for the assembly wrappers around sys_sigsuspend(),
      sys_rt_sigsuspend(), et al which existed solely to save those registers
      in advance. It also means I don't have to add new wrappers for ppoll()
      and pselect(), which is what I was supposed to be doing when I got
      distracted into this...
      
      Finally, it unifies the ppc64 and ppc32 methods of handling syscall exit
      directly into a signal handler (as required by sigsuspend et al) by
      introducing a TIF_RESTOREALL flag which causes _all_ the registers to be
      reloaded from the pt_regs by taking the ret_from_exception path, instead
      of the normal syscall exit path which stomps on the callee-saved GPRs.
      
      It appears to pass an LTP test run on ppc64, and passes basic testing on
      ppc32 too. Brief tests of ptrace functionality with strace and gdb also
      appear OK. I wouldn't send it to Linus for 2.6.15 just yet though :)
      Signed-off-by: default avatarDavid Woodhouse <dwmw2@infradead.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      401d1f02
    • Kumar Gala's avatar
      [PATCH] powerpc: moved ipic code to arch/powerpc · 1cd8e506
      Kumar Gala authored
      Moved 83xx and QUICC Engine interrupt handling code into arch/powerpc
      as a precursor of getting 83xx sub-arch building in arch/powerpc.
      Signed-off-by: default avatarKumar Gala <galak@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      1cd8e506
    • Michael Ellerman's avatar
      [PATCH] powerpc: Merge kexec · 3d1229d6
      Michael Ellerman authored
      This patch merges, to some extent, the PPC32 and PPC64 kexec implementations.
      
      We adopt the PPC32 approach of having ppc_md callbacks for the kexec functions.
      The current PPC64 implementation becomes the "default" implementation for PPC64
      which platforms can select if they need no special treatment.
      
      I've added these default callbacks to pseries/maple/cell/powermac, this means
      iSeries no longer supports kexec - but it never worked anyway.
      
      I've renamed PPC32's machine_kexec_simple to default_machine_kexec, inline with
      PPC64. Judging by the comments it might be better named machine_kexec_non_of,
      or something, but at the moment it's the only implementation for PPC32 so it's
      the "default".
      
      Kexec requires machine_shutdown(), which is in machine_kexec.c on PPC32, but we
      already have in setup-common.c on powerpc. All this does is call
      ppc_md.nvram_sync, which only powermac implements, so instead make
      machine_shutdown a ppc_md member and have it call core99_nvram_sync directly
      on powermac.
      
      I've also stuck relocate_kernel.S into misc_32.S for powerpc.
      
      Built for ARCH=ppc, and 32 & 64 bit ARCH=powerpc, with KEXEC=y/n. Booted on
      P5 LPAR and successfully kexec'ed.
      
      Should apply on top of 493f25ef.
      Signed-off-by: default avatarMichael Ellerman <michael@ellerman.id.au>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      3d1229d6
    • Adrian Bunk's avatar
      [PATCH] PPC_PREP: remove unneeded exports · afcc2472
      Adrian Bunk authored
      This patch removes the EXPORT_SYMBOL'ed but completely unused variable
      ucSystemType and removes the unneeded EXPORT_SYMBOL(_prep_type).
      Signed-off-by: default avatarAdrian Bunk <bunk@stusta.de>
      Acked-by: default avatarTom Rini <trini@kernel.crashing.org>
      Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
      afcc2472
  2. 07 Jan, 2006 18 commits
  3. 06 Jan, 2006 12 commits