1. 19 9月, 2007 1 次提交
    • J
      [POWERPC] cell: Unify spufs syscall path · 98f06978
      Jeremy Kerr 提交于
      At present, a built-in spufs will not use the spufs_calls callbacks, but
      directly call sys_spu_create.  This saves us an indirect branch, but
      means we have duplicated functions - one for CONFIG_SPU_FS=y and one for
      =m.
      
      This change unifies the spufs syscall path, and provides access to the
      spufs_calls structure through a get/put pair.  At present, the only user
      of the spufs_calls structure is spu_syscalls.c, but this will facilitate
      adding the coredump calls later.
      
      Everyone likes numbers, right?  Here's a before/after comparison with
      CONFIG_SPU_FS=y, doing spu_create(); close(); 64k times.
      
      Before:
      	[jk@cell ~]$ time ./spu_create
      	performing 65536 spu_create calls
      
      	real    0m24.075s
      	user    0m0.146s
      	sys     0m23.925s
      
      After:
      	[jk@cell ~]$ time ./spu_create
      	performing 65536 spu_create calls
      
      	real    0m24.777s
      	user    0m0.141s
      	sys     0m24.631s
      
      So, we're adding around 11us per syscall, at the benefit of having
      only one syscall path.
      Signed-off-by: NJeremy Kerr <jk@ozlabs.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      98f06978
  2. 21 7月, 2007 2 次提交
  3. 07 2月, 2007 1 次提交
  4. 04 12月, 2006 2 次提交
    • D
      [POWERPC] coredump: Add SPU elf notes to coredump. · bf1ab978
      Dwayne Grant McConnell 提交于
      This patch adds SPU elf notes to the coredump. It creates a separate note
      for each of /regs, /fpcr, /lslr, /decr, /decr_status, /mem, /signal1,
      /signal1_type, /signal2, /signal2_type, /event_mask, /event_status,
      /mbox_info, /ibox_info, /wbox_info, /dma_info, /proxydma_info, /object-id.
      
      A new macro, ARCH_HAVE_EXTRA_NOTES, was created for architectures to
      specify they have extra elf core notes.
      
      A new macro, ELF_CORE_EXTRA_NOTES_SIZE, was created so the size of the
      additional notes could be calculated and added to the notes phdr entry.
      
      A new macro, ELF_CORE_WRITE_EXTRA_NOTES, was created so the new notes
      would be written after the existing notes.
      
      The SPU coredump code resides in spufs. Stub functions are provided in the
      kernel which are hooked into the spufs code which does the actual work via
      register_arch_coredump_calls().
      
      A new set of __spufs_<file>_read/get() functions was provided to allow the
      coredump code to read from the spufs files without having to lock the
      SPU context for each file read from.
      
      Cc: <linux-arch@vger.kernel.org>
      Signed-off-by: NDwayne Grant McConnell <decimal@us.ibm.com>
      Signed-off-by: NArnd Bergmann <arnd.bergmann@de.ibm.com>
      bf1ab978
    • B
      [POWERPC] Cell "Spider" MMIO workarounds · 014da7ff
      Benjamin Herrenschmidt 提交于
      This patch implements a workaround for a Spider PCI host bridge bug
      where it doesn't enforce some of the PCI ordering rules unless some
      manual manipulation of a special register is done. In order to be
      fully compliant with the PCI spec, I do this on every MMIO read
      operation.
      Signed-off-by: NBenjamin Herrenschmidt <benh@kernel.crashing.org>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      014da7ff
  5. 25 10月, 2006 3 次提交
  6. 21 6月, 2006 3 次提交
  7. 27 3月, 2006 1 次提交
    • A
      [PATCH] spufs: allow SPU code to do syscalls · 2dd14934
      Arnd Bergmann 提交于
      An SPU does not have a way to implement system calls
      itself, but it can create intercepts to the kernel.
      
      This patch uses the method defined by the JSRE interface
      for C99 host library calls from an SPU to implement
      Linux system calls. It uses the reserved SPU stop code
      0x2104 for this, using the structure layout and syscall
      numbers for ppc64-linux.
      
      I'm still undecided wether it is better to have a list
      of allowed syscalls or a list of forbidden syscalls,
      since we can't allow an SPU to call all syscalls that
      are defined for ppc64-linux.
      
      This patch implements the easier choice of them, with a
      blacklist that only prevents an SPU from calling anything
      that interacts with its own execution, e.g fork, execve,
      clone, vfork, exit, spu_run and spu_create and everything
      that deals with signals.
      Signed-off-by: NArnd Bergmann <arnd.bergmann@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      2dd14934
  8. 07 2月, 2006 1 次提交
  9. 09 1月, 2006 3 次提交
    • A
      [PATCH] spufs: abstract priv1 register access. · f0831acc
      Arnd Bergmann 提交于
      In a hypervisor based setup, direct access to the first
      priviledged register space can typically not be allowed
      to the kernel and has to be implemented through hypervisor
      calls.
      
      As suggested by Masato Noguchi, let's abstract the register
      access trough a number of function calls. Since there is
      currently no public specification of actual hypervisor
      calls to implement this, I only provide a place that
      makes it easier to hook into.
      
      Cc: Masato Noguchi <Masato.Noguchi@jp.sony.com>
      Cc: Geoff Levand <geoff.levand@am.sony.com>
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      f0831acc
    • A
      [PATCH] cell: enable pause(0) in cpu_idle · c902be71
      Arnd Bergmann 提交于
      This patch enables support for pause(0) power management state
      for the Cell Broadband Processor, which is import for power efficient
      operation. The pervasive infrastructure will in the future enable
      us to introduce more functionality specific to the Cell's
      pervasive unit.
      
      From: Maximino Aguilar <maguilar@us.ibm.com>
      Signed-off-by: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      c902be71
    • A
      [PATCH] spufs: The SPU file system, base · 67207b96
      Arnd Bergmann 提交于
      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: NArnd Bergmann <arndb@de.ibm.com>
      Signed-off-by: NPaul Mackerras <paulus@samba.org>
      67207b96
  10. 01 11月, 2005 2 次提交