[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