[PATCH] spufs: cooperative scheduler support
commit8b3d6663c6217e4f50cc3720935a96da9b984117
authorArnd Bergmann <arnd@arndb.de>
Tue, 15 Nov 2005 20:53:52 +0000 (15 15:53 -0500)
committerPaul Mackerras <paulus@samba.org>
Mon, 9 Jan 2006 03:49:30 +0000 (9 14:49 +1100)
tree5295c29787ac66c26ddf715868fda7fcd3ad5f97
parent05b841174c289ca62a6b42d883b8791d9ac3a4bd
[PATCH] spufs: cooperative scheduler support

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: Arnd Bergmann <arndb@de.ibm.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
14 files changed:
arch/powerpc/platforms/cell/setup.c
arch/powerpc/platforms/cell/spu_base.c
arch/powerpc/platforms/cell/spufs/Makefile
arch/powerpc/platforms/cell/spufs/backing_ops.c [new file with mode: 0644]
arch/powerpc/platforms/cell/spufs/context.c
arch/powerpc/platforms/cell/spufs/file.c
arch/powerpc/platforms/cell/spufs/hw_ops.c [new file with mode: 0644]
arch/powerpc/platforms/cell/spufs/inode.c
arch/powerpc/platforms/cell/spufs/sched.c [new file with mode: 0644]
arch/powerpc/platforms/cell/spufs/spufs.h
arch/powerpc/platforms/cell/spufs/switch.c
arch/powerpc/platforms/cell/spufs/syscalls.c
include/asm-powerpc/spu.h
include/asm-powerpc/spu_csa.h