[ros-dev] Re: [ros-diffs] [CVS reactos] - Saved the state of the fpu at a win32 call and restored the state

Gregor Anich blight at blight.eu.org
Sun Nov 28 00:40:26 CET 2004


Hello!

Do you mean line 462 in revision 1.17? If so then my "fix for SMP" has 
not fixed the problem I guess. It should be like this:
When a thread uses the FPU for the first time after it was switched to 
the KiHandleFpuFault ors the NpxState with NPX_STATE_DIRTY and unsets TS 
in cr0, then the thread can happily use the FPU. When the thread is 
switched away from it is checked wether the FPU state is dirty and if it 
is dirty the state is saved and set to NPX_STATE_VALID (so 
NPX_STATE_DIRTY is unset there) and then TS in cr0 is set again, so only 
after NPX_STATE_DIRTY was unset KiHandleFpuFault should be called.
If the dirty flag is still set it means that the FPU context was not 
saved where it should have been saved (i.e. when setting TS in cr0)

Have you already commited your SMP fixes? Then I could try to get 
reactos with SMP running with bochs and look at it myself.

- blight

Hartmut Birr wrote:

>Hi,
>
>I've made this changes, because syssetup does always crash ros in
>KiHandleFpuFault line #462 on my smp machine. The crash is triggered from
>fxsave in tskswitch.S after a win32 callback. I revert my changes.
>
>- Hartmut  
>  
>


More information about the Ros-dev mailing list