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