aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/cell/spufs/sched.c
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2007-12-20 02:39:59 -0500
committerPaul Mackerras <paulus@samba.org>2007-12-21 03:46:20 -0500
commitd6ad39bc53521275d14fde86bfb94d9b2ddb7a08 (patch)
tree07dcc592b343395cb7fbfb3053aa21103fb94352 /arch/powerpc/platforms/cell/spufs/sched.c
parent8af30675c3e7b945bbaf6f57b724f246e56eb209 (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.c2
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;