[ros-dev] Re: [ros-diffs] [CVS reactos] - Saved the state of
the fpu at a win32 call and restored the state
blight at blight.eu.org
Sun Nov 28 00:40:26 CET 2004
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.
Hartmut Birr wrote:
>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.
More information about the Ros-dev