OpenCloudOS-Kernel/arch/um/sys-x86_64/shared/sysdep
Ingo van Lil fbfe9c847e um: Save FPU registers between task switches
Some time ago Jeff prepared 42daba3165 ("uml: stop saving process FP
state") for UML to stop saving the process FP state between task
switches.  The assumption was that since with SKAS0 every guest process
runs inside a host process context the host OS will take care of keeping
the proper FP state.

Unfortunately this is not true for multi-threaded applications, where
all guest threads share a single host process context yet all may use
the FPU on their own.  Although I haven't verified it I suspect things
to be even worse in SKAS3 mode where all guest processes run inside a
single host process.

The patch reintroduces the saving and restoring of the FP context
between task switches.

[richard@nod.at: Ingo posted this patch in 2009, sadly it was never applied
and got lost. Now in 2011 the problem was reported by Gunnar.]

Signed-off-by: Ingo van Lil <inguin@gmx.de>
Signed-off-by: Richard Weinberger <richard@nod.at>
Reported-by: <gunnarlindroth@hotmail.com>
Tested-by: <gunnarlindroth@hotmail.com>
Cc: Stanislav Meduna <stano@meduna.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2011-09-14 18:09:37 -07:00
..
archsetjmp.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
barrier.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
checksum.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
faultinfo.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
host_ldt.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
kernel-offsets.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
ptrace.h um: Save FPU registers between task switches 2011-09-14 18:09:37 -07:00
ptrace_user.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
sc.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
sigcontext.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
skas_ptrace.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
stub.h x86, um: get rid of excessive includes of uml-config.h 2008-10-22 22:55:22 -07:00
syscalls.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
system.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
tls.h x86, um: get rid of header symlinks 2008-10-22 22:55:22 -07:00
vm-flags.h um: clean up vm-flags.h 2011-07-25 20:57:12 -07:00