Subject: Lazy FP in SMP
To: None <tech-smp@netbsd.org>
From: Matt Thomas <matt@3am-software.com>
List: tech-smp
Date: 11/20/2000 23:19:36
Let's assume we have a two processor system (for simplicity).
Proc A does some floating point on processor 1 and then blocks
for some reason (disk I/o, tty, etc) and proc B takes over but
only does integer stuff.  While all this is happening some long
term low priority job is executing on processor 2.

Now A becomes runnable.  Now two things can happen.  Since processor
1 has latent FP state for proc A, if proc A is started on processor 2
and gets a FP fault, then either the FP state for processor 1 has to be
saved into proc A's pcb by processor 1, and then A is resumed on processor
2.  Or proc B is suspended on processor 1, processor 2 runs B, and then A
is running on processor 1.

Either way, a process get screwed.  This also mean that more bookkeeping
needs to added such that you know what CPU has this processors FP state.

And for powerpc, this get worse since there's a AltiVec state that will
need to be tracked as well.
--
Matt Thomas               Internet:   matt@3am-software.com
3am Software Foundry      WWW URL:    http://www.3am-software.com/bio/matt/
Cupertino, CA             Disclaimer: I avow all knowledge of this message