[Cbe-oss-dev] [PATCH] spufs: not calling spu_run_init on spu_reacquire_runnable
Christoph Hellwig
hch at lst.de
Sat Aug 11 13:54:41 EST 2007
On Thu, Aug 09, 2007 at 05:11:56PM -0300, Andre Detsch wrote:
> Subject: spufs: not calling spu_run_init on spu_reacquire_runnable
>
> From: Andre Detsch <adetsch at br.ibm.com>
>
> This patch fixes a major bug which was happening when a SPU thread
> advances its execution right after being restored to a SPU. A potentially
> outdated NPC value was being (re)written to the SPU.
>
> So, spu_run_init, in this case, was either not doing anything relevant,
> or breaking the execution of the SPU thread.
>
> This fixes a common problem of losing a mailbox write when it was done
> to a saved context.
Looks fine on bare hardware. Could anyone who owns a ps3 test a workload
that requires context switching with this patch?
>
> Signed-off-by: Andre Detsch <adetsch at br.ibm.com>
>
> Index: linux-2.6.22/arch/powerpc/platforms/cell/spufs/run.c
> ===================================================================
> --- linux-2.6.22.orig/arch/powerpc/platforms/cell/spufs/run.c
> +++ linux-2.6.22/arch/powerpc/platforms/cell/spufs/run.c
> @@ -196,11 +196,7 @@ static int spu_reacquire_runnable(struct
> if (ret)
> return ret;
>
> - ret = spu_run_init(ctx, npc);
> - if (ret) {
> - spu_release(ctx);
> - return ret;
> - }
> + spuctx_switch_state(ctx, SPUCTX_UTIL_USER);
> return 0;
> }
>
> _______________________________________________
> cbe-oss-dev mailing list
> cbe-oss-dev at ozlabs.org
> https://ozlabs.org/mailman/listinfo/cbe-oss-dev
---end quoted text---
More information about the cbe-oss-dev
mailing list