lkml.org 
[lkml]   [2009]   [Jun]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 6/9] exec_path 6/9: add struct spu::tsk
    Pass down task_struct too.

    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    ---
    arch/powerpc/include/asm/spu.h | 3 ++-
    arch/powerpc/platforms/cell/spu_base.c | 11 ++++++-----
    arch/powerpc/platforms/cell/spufs/sched.c | 4 ++--
    3 files changed, 10 insertions(+), 8 deletions(-)

    diff --git a/arch/powerpc/include/asm/spu.h b/arch/powerpc/include/asm/spu.h
    index 0ab8d86..f9b1bcf 100644
    --- a/arch/powerpc/include/asm/spu.h
    +++ b/arch/powerpc/include/asm/spu.h
    @@ -135,6 +135,7 @@ struct spu {
    u64 class_1_dsisr;
    size_t ls_size;
    unsigned int slb_replace;
    + struct task_struct *tsk;
    struct mm_struct *mm;
    struct spu_context *ctx;
    struct spu_runqueue *rq;
    @@ -212,7 +213,7 @@ static inline void crash_register_spus(struct list_head *list)
    #endif

    extern void spu_invalidate_slbs(struct spu *spu);
    -extern void spu_associate_mm(struct spu *spu, struct mm_struct *mm);
    +extern void spu_associate_task(struct spu *spu, struct task_struct *tsk);
    int spu_64k_pages_available(void);

    /* Calls from the memory management to the SPU */
    diff --git a/arch/powerpc/platforms/cell/spu_base.c b/arch/powerpc/platforms/cell/spu_base.c
    index 9abd210..46f4a63 100644
    --- a/arch/powerpc/platforms/cell/spu_base.c
    +++ b/arch/powerpc/platforms/cell/spu_base.c
    @@ -117,17 +117,18 @@ static inline void mm_needs_global_tlbie(struct mm_struct *mm)
    bitmap_fill(cpumask_bits(mm_cpumask(mm)), nr);
    }

    -void spu_associate_mm(struct spu *spu, struct mm_struct *mm)
    +void spu_associate_task(struct spu *spu, struct task_struct *tsk)
    {
    unsigned long flags;

    spin_lock_irqsave(&spu_full_list_lock, flags);
    - spu->mm = mm;
    + spu->tsk = tsk;
    + spu->mm = tsk ? tsk->mm : NULL;
    spin_unlock_irqrestore(&spu_full_list_lock, flags);
    - if (mm)
    - mm_needs_global_tlbie(mm);
    + if (tsk && tsk->mm)
    + mm_needs_global_tlbie(tsk->mm);
    }
    -EXPORT_SYMBOL_GPL(spu_associate_mm);
    +EXPORT_SYMBOL_GPL(spu_associate_task);

    int spu_64k_pages_available(void)
    {
    diff --git a/arch/powerpc/platforms/cell/spufs/sched.c b/arch/powerpc/platforms/cell/spufs/sched.c
    index 9fbd87a..2f7e497 100644
    --- a/arch/powerpc/platforms/cell/spufs/sched.c
    +++ b/arch/powerpc/platforms/cell/spufs/sched.c
    @@ -230,7 +230,7 @@ static void spu_bind_context(struct spu *spu, struct spu_context *ctx)
    ctx->stats.slb_flt_base = spu->stats.slb_flt;
    ctx->stats.class2_intr_base = spu->stats.class2_intr;

    - spu_associate_mm(spu, ctx->owner->mm);
    + spu_associate_task(spu, ctx->owner);

    spin_lock_irq(&spu->register_lock);
    spu->ctx = ctx;
    @@ -470,7 +470,7 @@ static void spu_unbind_context(struct spu *spu, struct spu_context *ctx)
    spu->ctx = NULL;
    spin_unlock_irq(&spu->register_lock);

    - spu_associate_mm(spu, NULL);
    + spu_associate_task(spu, NULL);

    ctx->stats.slb_flt +=
    (spu->stats.slb_flt - ctx->stats.slb_flt_base);

    \
     
     \ /
      Last update: 2009-06-04 01:17    [W:4.877 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site