[CELL] spufs: extension of spu_create to support affinity definition
This patch adds support for additional flags at spu_create, which relate to the establishment of affinity between contexts and contexts to memory. A fourth, optional, parameter is supported. This parameter represent a affinity neighbor of the context being created, and is used when defining SPU-SPU affinity. Affinity is represented as a doubly linked list of spu_contexts. Signed-off-by: Andre Detsch <adetsch@br.ibm.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
This commit is contained in:

committed by
Arnd Bergmann

parent
3ad216cae8
commit
8e68e2f248
@@ -196,6 +196,7 @@ extern struct cbe_spu_info cbe_spu_info[];
|
||||
|
||||
struct spu *spu_alloc(void);
|
||||
struct spu *spu_alloc_node(int node);
|
||||
struct spu *spu_alloc_spu(struct spu *spu);
|
||||
void spu_free(struct spu *spu);
|
||||
int spu_irq_class_0_bottom(struct spu *spu);
|
||||
int spu_irq_class_1_bottom(struct spu *spu);
|
||||
@@ -227,7 +228,8 @@ extern long spu_sys_callback(struct spu_syscall_block *s);
|
||||
struct file;
|
||||
extern struct spufs_calls {
|
||||
asmlinkage long (*create_thread)(const char __user *name,
|
||||
unsigned int flags, mode_t mode);
|
||||
unsigned int flags, mode_t mode,
|
||||
struct file *neighbor);
|
||||
asmlinkage long (*spu_run)(struct file *filp, __u32 __user *unpc,
|
||||
__u32 __user *ustatus);
|
||||
struct module *owner;
|
||||
@@ -254,8 +256,10 @@ struct spu_coredump_calls {
|
||||
#define SPU_CREATE_GANG 0x0002
|
||||
#define SPU_CREATE_NOSCHED 0x0004
|
||||
#define SPU_CREATE_ISOLATE 0x0008
|
||||
#define SPU_CREATE_AFFINITY_SPU 0x0010
|
||||
#define SPU_CREATE_AFFINITY_MEM 0x0020
|
||||
|
||||
#define SPU_CREATE_FLAG_ALL 0x000f /* mask of all valid flags */
|
||||
#define SPU_CREATE_FLAG_ALL 0x003f /* mask of all valid flags */
|
||||
|
||||
|
||||
#ifdef CONFIG_SPU_FS_MODULE
|
||||
|
Reference in New Issue
Block a user