minix/kernel/system
Tomas Hruby cbc9586c13 Lazy FPU
- FPU context is stored only if conflict between 2 FPU users or while
  exporting context of a process to userspace while it is the active
  user of FPU

- FPU has its owner (fpu_owner) which points to the process whose
  state is currently loaded in FPU

- the FPU exception is only turned on when scheduling a process which
  is not the owner of FPU

- FPU state is restored for the process that generated the FPU
  exception. This process runs immediately without letting scheduler
  to pick a new process to resolve the FPU conflict asap, to minimize
  the FPU thrashing and FPU exception hadler execution

- faster all non-FPU-exception kernel entries as FPU state is not
  checked nor saved

- removed MF_USED_FPU flag, only MF_FPU_INITIALIZED remains to signal
  that a process has used FPU in the past
2010-06-07 07:43:17 +00:00
..
do_abort.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_clear.c Lazy FPU 2010-06-07 07:43:17 +00:00
do_copy.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
do_cprofile.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_devio.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_endksig.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_exec.c Lazy FPU 2010-06-07 07:43:17 +00:00
do_exit.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_fork.c Lazy FPU 2010-06-07 07:43:17 +00:00
do_getinfo.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_getksig.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_irqctl.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
do_kill.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_mcontext.c Lazy FPU 2010-06-07 07:43:17 +00:00
do_memset.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_newmap.c Oops, last commit included more than was intended 2010-05-20 08:07:47 +00:00
do_privctl.c reset alarm timer on PRIVCTL 2010-05-26 07:10:28 +00:00
do_profbuf.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
do_runctl.c RTS_SYS_LOCK and do_runctl() 2010-04-06 11:18:04 +00:00
do_safecopy.c Fix range checking in safecopy. 2010-06-04 18:05:38 +00:00
do_safemap.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_schedctl.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_schedule.c scheduling - time quantum in miliseconds 2010-05-25 08:06:14 +00:00
do_segctl.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_setalarm.c Removed a buggy assert unintentionally commted in r7044 2010-06-04 10:54:43 +00:00
do_setgrant.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_sigreturn.c Lazy FPU 2010-06-07 07:43:17 +00:00
do_sigsend.c Lazy FPU 2010-06-07 07:43:17 +00:00
do_sprofile.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_statectl.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
do_stime.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_sysctl.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_times.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
do_trace.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_umap.c Convert kernel over to bsdmake 2010-04-01 22:22:33 +00:00
do_update.c Driver refactory for live update and crash recovery. 2010-04-08 13:41:35 +00:00
do_vdevio.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
do_vmctl.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
do_vtimer.c KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00
Makefile.inc KCall methods do not depend on m_source and m_type fields 2010-06-01 08:54:31 +00:00