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

André Detsch adetsch at br.ibm.com
Thu Aug 9 05:16:46 EST 2007


Arnd Bergmann wrote:
>> AFTER writing to spu_runcntl_RW:
>> in_be32(&prob->spu_status_R)=1
>> in_be32(&prob->spu_runcntl_RW)=1
> 
> This is where it gets weird. So the SPE should be blocking on a channel
> read, correct?
> 
> The expected status value for this would be 0x8 (waiting for channel),
> not 0x1. Does that match what you can see from systemsim?

No, systemsim reports 0x9 
(SPU_STATUS_WAITING_FOR_CHANNEL|SPU_STATUS_RUNNING).

Another information:
If I read the status_R and runcntl_RW two times after writing to 
runcntl_RW, the results from the first and second reads differ (probably 
due to some processing being made within the SPE):

--
B in_be32(&prob->spu_status_R)=3ffc0002 in_be32(&prob->spu_runcntl_RW)=0
A in_be32(&prob->spu_status_R)=1 in_be32(&prob->spu_runcntl_RW)=1
A in_be32(&prob->spu_status_R)=21000002 in_be32(&prob->spu_runcntl_RW)=0
--

(B is for 'before writing to spu_runcntl_RW', A, 'after...').
The values are kept this way at least until the end of restore_csa().

PS: I'm saving the in_be32 return values to temp variable, and am 
issuing an eieio right after each in_be32 operation.

--
Andre Detsch



More information about the cbe-oss-dev mailing list