aboutsummaryrefslogtreecommitdiffstats
path: root/include/asm-powerpc/spu.h
diff options
context:
space:
mode:
authorMark Nutter <mnutter@us.ibm.com>2006-10-04 11:26:12 -0400
committerPaul Mackerras <paulus@samba.org>2006-10-04 19:21:00 -0400
commita68cf983f635930ea35f9e96b27d96598550dea0 (patch)
tree531ea91b3f293130a0828c7579c514830b31e9e1 /include/asm-powerpc/spu.h
parent27d5bf2a35c0762f1358e9ef39776733cd942121 (diff)
[POWERPC] spufs: scheduler support for NUMA.
This patch adds NUMA support to the the spufs scheduler. The new arch/powerpc/platforms/cell/spufs/sched.c is greatly simplified, in an attempt to reduce complexity while adding support for NUMA scheduler domains. SPUs are allocated starting from the calling thread's node, moving to others as supported by current->cpus_allowed. Preemption is gone as it was buggy, but should be re-enabled in another patch when stable. The new arch/powerpc/platforms/cell/spu_base.c maintains idle lists on a per-node basis, and allows caller to specify which node(s) an SPU should be allocated from, while passing -1 tells spu_alloc() that any node is allowed. Since the patch removes the currently implemented preemptive scheduling, it is technically a regression, but practically all users have since migrated to this version, as it is part of the IBM SDK and the yellowdog distribution, so there is not much point holding it back while the new preemptive scheduling patch gets delayed further. Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc/spu.h')
-rw-r--r--include/asm-powerpc/spu.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/asm-powerpc/spu.h b/include/asm-powerpc/spu.h
index b42b53c40f5d..f6c0a95e8209 100644
--- a/include/asm-powerpc/spu.h
+++ b/include/asm-powerpc/spu.h
@@ -147,6 +147,7 @@ struct spu {
147}; 147};
148 148
149struct spu *spu_alloc(void); 149struct spu *spu_alloc(void);
150struct spu *spu_alloc_node(int node);
150void spu_free(struct spu *spu); 151void spu_free(struct spu *spu);
151int spu_irq_class_0_bottom(struct spu *spu); 152int spu_irq_class_0_bottom(struct spu *spu);
152int spu_irq_class_1_bottom(struct spu *spu); 153int spu_irq_class_1_bottom(struct spu *spu);