mirror of https://gitee.com/openkylin/linux.git
[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: Christoph Hellwig <hch@lst.de> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com>
This commit is contained in:
parent
6a0641e510
commit
8389998ae9
|
@ -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)
|
||||||
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)
|
||||||
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)
|
||||||
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,
|
||||||
|
|
||||||
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)
|
||||||
__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 {
|
||||||
|
|
||||||
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)
|
||||||
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 {
|
||||||
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;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue