diff options
author | Jeremy Kerr <jk@ozlabs.org> | 2007-12-20 02:39:59 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2007-12-21 03:46:20 -0500 |
commit | d6ad39bc53521275d14fde86bfb94d9b2ddb7a08 (patch) | |
tree | 07dcc592b343395cb7fbfb3053aa21103fb94352 /arch/powerpc/platforms/cell/spufs/sched.c | |
parent | 8af30675c3e7b945bbaf6f57b724f246e56eb209 (diff) |
[POWERPC] spufs: rework class 0 and 1 interrupt handling
Based on original patches from
Arnd Bergmann <arnd.bergman@de.ibm.com>; and
Luke Browning <lukebr@linux.vnet.ibm.com>
Currently, spu contexts need to be loaded to the SPU in order to take
class 0 and class 1 exceptions.
This change makes the actual interrupt-handlers much simpler (ie,
set the exception information in the context save area), and defers the
handling code to the spufs_handle_class[01] functions, called from
spufs_run_spu.
This should improve the concurrency of the spu scheduling leading to
greater SPU utilization when SPUs are overcommited.
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'arch/powerpc/platforms/cell/spufs/sched.c')
-rw-r--r-- | arch/powerpc/platforms/cell/spufs/sched.c | 2 |
1 files changed, 0 insertions, 2 deletions
diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c index 52215aa2f3c6..82ea576c53a3 100644 --- a/arch/powerpc/platforms/cell/spufs/sched.c +++ b/arch/powerpc/platforms/cell/spufs/sched.c | |||
@@ -245,7 +245,6 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx) | |||
245 | spu->wbox_callback = spufs_wbox_callback; | 245 | spu->wbox_callback = spufs_wbox_callback; |
246 | spu->stop_callback = spufs_stop_callback; | 246 | spu->stop_callback = spufs_stop_callback; |
247 | spu->mfc_callback = spufs_mfc_callback; | 247 | spu->mfc_callback = spufs_mfc_callback; |
248 | spu->dma_callback = spufs_dma_callback; | ||
249 | mb(); | 248 | mb(); |
250 | spu_unmap_mappings(ctx); | 249 | spu_unmap_mappings(ctx); |
251 | spu_restore(&ctx->csa, spu); | 250 | spu_restore(&ctx->csa, spu); |
@@ -433,7 +432,6 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx) | |||
433 | spu->wbox_callback = NULL; | 432 | spu->wbox_callback = NULL; |
434 | spu->stop_callback = NULL; | 433 | spu->stop_callback = NULL; |
435 | spu->mfc_callback = NULL; | 434 | spu->mfc_callback = NULL; |
436 | spu->dma_callback = NULL; | ||
437 | spu_associate_mm(spu, NULL); | 435 | spu_associate_mm(spu, NULL); |
438 | spu->pid = 0; | 436 | spu->pid = 0; |
439 | spu->tgid = 0; | 437 | spu->tgid = 0; |