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