Hartmut Birr wrote:
Hi,
-----Original Message-----
From: ros-dev-bounces(a)reactos.com
[mailto:ros-dev-bounces@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
:-)