[ros-dev] RE: [ros-diffs] [CVS reactos] FPU/SSE state saving ontaskswitching, FPU and SSE exception support.

Gregor Anich blight at blight.eu.org
Sun Nov 21 20:44:08 CET 2004


Hartmut Birr wrote:

>Hi,
>
>  
>
>>-----Original Message-----
>>From: ros-dev-bounces at reactos.com 
>>[mailto:ros-dev-bounces at reactos.com] On Behalf Of Anich Gregor
>>Sent: Sunday, November 21, 2004 2:47 PM
>>To: ReactOS Development List
>>Subject: Re: [ros-dev] RE: [ros-diffs] [CVS reactos] FPU/SSE 
>>state saving ontaskswitching, FPU and SSE exception support.
>>
>>The KPCR is per-processor, isnt it?
>>    
>>
>
>Correct.
>
>
>  
>
>>Is it possible that in a SMP system there is one CPU which 
>>has less features 
>>than the other (i.e. FXSR) or is it somewhere specified that 
>>you must use 
>>exactly same CPUs?
>>    
>>
>
>The cpu's are the same and KiCheckFPU is called for both cpu's. I think that
>the problem is NpxThread. If a thread uses the fpu and is switched between
>different cpu's, the state of the fpu is only saved if an other thread uses
>the fpu.
>
>
>  
>
I do not know how threads are scheduled for SMP, but I guess they can 
move between CPUs at any time? If so we cannot delay saving of the FPU 
state on SMP machines I think because it will not be possible (at least 
not easy) to get the FPU state of another CPU if the thread has moved 
and needs the FPU state which it has left behind on the other.
Then I would change the behaviour for SMP to save the FPU state when a 
thread is switched away from and delay loading it.

>>I will try to find out how to fix the fpu stuff on SMP...
>>
>>    
>>
>
>I've revert some parts of fpu.c to your first patch. It works now on my smp
>machine. 
>
>  
>
What have you changed? Did you do what I described above or is the 
problem something different?

>The current cvs tree doesn't work on a smp machine. If someone will test ros
>on a smp machine, I should clean up and commit my changes in ntoskrnl and in
>hal.
>
>  
>
Good to know! I have spent all afternoon trying to compile bochs for 
windows with SMP support but no luck so far.

>- Hartmut
>  
>
:-)


More information about the Ros-dev mailing list