[PATCH] spufs: fix context-switch decrementer code
We found that when the 'decrementer' is saved, the PPE saves the current time 'csa->suspend_time'. When restoring the 'decrementer', (Step 34) decrementer seems to be adjusted with the number of cycles th= at a spu thread has not been running. In that code it is missing a substract ('-') because 'delta_time' is assigned a not substracted(see bellow). Acked-by: Mark Nutter <mnutter@us.ibm.com> Signed-off-by: Arnd Bergmann <arnd.bergmann@de.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
parent
f48b8296b3
commit
183b73ae7c
|
@ -1297,7 +1297,7 @@ static inline void setup_decr(struct spu_state *csa, struct spu *spu)
|
|||
cycles_t resume_time = get_cycles();
|
||||
cycles_t delta_time = resume_time - csa->suspend_time;
|
||||
|
||||
csa->lscsa->decr.slot[0] = delta_time;
|
||||
csa->lscsa->decr.slot[0] -= delta_time;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue