On Tue, Feb 19, 2002 at 10:28:35PM -0500, Greg Lindahl wrote:
>
> Alpha seems to always save the fpu state (the comments say that gcc
> always generates code that uses it in every user process.)
>
I think the comment might be an execuse. :-) Never heard of gcc
generating unnecessary floating point code.
> I suspect that the optimization of not saving the fpu state for a
> process that doesn't use the fpu is the most critical optimization.
> And that you do already.
If you do use floating point, I think it is pretty common to have
only process that uses fpu and runs for very long. In that case,
leaving FPU owned by the process also saves quite a bit.
> What you propose, locking the fpu owner to the current cpu, will not
> result in a fair solution. Imagine a 2 cpu machine with 2 processes
> using integer math and 1 using floating point... how much cpu time
> will each process get?
In this case, proc that uses fpu gets about 50% of one cpu, i.e., 25% of total
load, while the other two integer math proces split the rest 75%, which
gives 37.5% each. Not too bad in my opinion.
> Imagine all the funky effects. Now add in a
> MIPS design in which interrupts are not delivered uniformly to all the
> cpus...
This is chip-specific, I think. Not related to general MIPS arch.
Jun
|