[Cbe-oss-dev] [PATCH] spufs: avoid using backing operation for wbox write

Arnd Bergmann arnd at arndb.de
Tue Aug 7 09:10:48 EST 2007


On Monday 06 August 2007, André Detsch wrote:

> The problem I have is a stall on channel 29.
> Repeating some tests I've did on a QS20, now on simulator, reveals that, 
> although the channel 29 count is being written to the spu in the 
> restore_spu_mb function [out_be64(&priv2->spu_chnlcnt_RW, 
> csa->spu_chnlcnt_RW[29])], the channel 29 count reported by the 
> simulator is not being updated to the value stored in spu_chnlcnt_RW[29].

Interesting. So you also see this same behaviour on hardware and simulator,
right? Could you try printk'ing the channel count from the restore_spu_mb()
function before and after writing the channel data, as well as after
the context restore has completed?

I've also been able to spot a bug in this area in the line
'ctx->csa.prob.mb_stat_R = (((4 - slot) & 0xff) << 8);' when writing
to the mailbox from user space, we overwrite the entire mb_stat_R
state, not just the part responsible for the inbound mbox.

I have no idea how this could be related to the symptom, especially
not without the source of your test case, but it's something we
should definitely fix. Does your test case use one of the other mail
boxes as well?

	Arnd <><



More information about the cbe-oss-dev mailing list