powerpc fptask issue again
Till Straumann
strauman at SLAC.Stanford.EDU
Fri Apr 19 00:37:30 UTC 2002
Hi.
I'm sure this does not appear on this list for the first time.
Can somebody explain to me why enabling deferred/lazy
floating point context save/restore (as is currently the default
for the Powerpc/new_exception_processing) and NOT
disabling MSR_FP for integer tasks (current behavior)
is assumed to be safe ???
How about this scenario:
1) task A (FP) holds the FP engine, fpr3 is e.g. 0.0
2) task B (integer) preempts A, stores fpr3 on the stack
3) task C (FP) is scheduled and does a lazy FP context save for A.
C sets fpr3 to 3.14159
4) task C is blocked, task B gets the CPU again
5) task B's routine that does the fpr push/pop operation
returns, i.e. fpr3 is popped from the stack, now 0.0
again.
6) task C gets the CPU. It realizes that it still holds
the FPU and does nothing. However, fpr3 is now 0.0
BUMMER.
Thanks
-- Till
More information about the users
mailing list