Commit 8389998a authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Arnd Bergmann

[POWERPC] spufs: move prio to spu_context

It doesn't make any sense to have a priority field in the physical spu
structure.  Move it into the spu context instead.
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarArnd Bergmann <arnd.bergmann@de.ibm.com>
parent 6a0641e5
...@@ -53,6 +53,7 @@ struct spu_context *alloc_spu_context(struct spu_gang *gang) ...@@ -53,6 +53,7 @@ struct spu_context *alloc_spu_context(struct spu_gang *gang)
ctx->owner = get_task_mm(current); ctx->owner = get_task_mm(current);
if (gang) if (gang)
spu_gang_add_ctx(gang, ctx); spu_gang_add_ctx(gang, ctx);
ctx->prio = current->prio;
goto out; goto out;
out_free: out_free:
kfree(ctx); kfree(ctx);
...@@ -176,8 +177,7 @@ int spu_acquire_runnable(struct spu_context *ctx) ...@@ -176,8 +177,7 @@ int spu_acquire_runnable(struct spu_context *ctx)
ret = spu_activate(ctx, 0); ret = spu_activate(ctx, 0);
if (ret) if (ret)
goto out_unlock; goto out_unlock;
} else }
ctx->spu->prio = current->prio;
return 0; return 0;
......
...@@ -145,7 +145,6 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx) ...@@ -145,7 +145,6 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx)
ctx->spu = spu; ctx->spu = spu;
ctx->ops = &spu_hw_ops; ctx->ops = &spu_hw_ops;
spu->pid = current->pid; spu->pid = current->pid;
spu->prio = current->prio;
spu->mm = ctx->owner; spu->mm = ctx->owner;
mm_needs_global_tlbie(spu->mm); mm_needs_global_tlbie(spu->mm);
spu->ibox_callback = spufs_ibox_callback; spu->ibox_callback = spufs_ibox_callback;
...@@ -189,7 +188,6 @@ static int spu_unbind_context(struct spu *spu, struct spu_context *ctx) ...@@ -189,7 +188,6 @@ static int spu_unbind_context(struct spu *spu, struct spu_context *ctx)
spu->dma_callback = NULL; spu->dma_callback = NULL;
spu->mm = NULL; spu->mm = NULL;
spu->pid = 0; spu->pid = 0;
spu->prio = MAX_PRIO;
ctx->ops = &spu_backing_ops; ctx->ops = &spu_backing_ops;
ctx->spu = NULL; ctx->spu = NULL;
spu->flags = 0; spu->flags = 0;
...@@ -223,7 +221,7 @@ static inline void spu_del_wq(wait_queue_head_t * wq, wait_queue_t * wait, ...@@ -223,7 +221,7 @@ static inline void spu_del_wq(wait_queue_head_t * wq, wait_queue_t * wait,
static void spu_prio_wait(struct spu_context *ctx, u64 flags) static void spu_prio_wait(struct spu_context *ctx, u64 flags)
{ {
int prio = current->prio; int prio = ctx->prio;
wait_queue_head_t *wq = &spu_prio->waitq[prio]; wait_queue_head_t *wq = &spu_prio->waitq[prio];
DEFINE_WAIT(wait); DEFINE_WAIT(wait);
...@@ -342,8 +340,6 @@ void spu_yield(struct spu_context *ctx) ...@@ -342,8 +340,6 @@ void spu_yield(struct spu_context *ctx)
__FUNCTION__, spu->number, spu->node); __FUNCTION__, spu->number, spu->node);
spu_deactivate(ctx); spu_deactivate(ctx);
need_yield = 1; need_yield = 1;
} else {
spu->prio = MAX_PRIO;
} }
} }
mutex_unlock(&ctx->state_mutex); mutex_unlock(&ctx->state_mutex);
......
...@@ -74,6 +74,9 @@ struct spu_context { ...@@ -74,6 +74,9 @@ struct spu_context {
struct list_head gang_list; struct list_head gang_list;
struct spu_gang *gang; struct spu_gang *gang;
/* scheduler fields */
int prio;
}; };
struct spu_gang { struct spu_gang {
......
...@@ -2811,7 +2811,6 @@ static void dump_spu_fields(struct spu *spu) ...@@ -2811,7 +2811,6 @@ static void dump_spu_fields(struct spu *spu)
DUMP_FIELD(spu, "0x%lx", irqs[2]); DUMP_FIELD(spu, "0x%lx", irqs[2]);
DUMP_FIELD(spu, "0x%x", slb_replace); DUMP_FIELD(spu, "0x%x", slb_replace);
DUMP_FIELD(spu, "%d", pid); DUMP_FIELD(spu, "%d", pid);
DUMP_FIELD(spu, "%d", prio);
DUMP_FIELD(spu, "0x%p", mm); DUMP_FIELD(spu, "0x%p", mm);
DUMP_FIELD(spu, "0x%p", ctx); DUMP_FIELD(spu, "0x%p", ctx);
DUMP_FIELD(spu, "0x%p", rq); DUMP_FIELD(spu, "0x%p", rq);
......
...@@ -129,7 +129,6 @@ struct spu { ...@@ -129,7 +129,6 @@ struct spu {
struct spu_runqueue *rq; struct spu_runqueue *rq;
unsigned long long timestamp; unsigned long long timestamp;
pid_t pid; pid_t pid;
int prio;
int class_0_pending; int class_0_pending;
spinlock_t register_lock; spinlock_t register_lock;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment