fpu context switching for x86_64: the patch by Andrei Poenaru, 2017.01.14 14:24
authorAdam Turowski <adam.turowski@inf.ethz.ch>
Mon, 16 Jan 2017 08:53:19 +0000 (09:53 +0100)
committerAdam Turowski <adam.turowski@inf.ethz.ch>
Mon, 16 Jan 2017 09:16:17 +0000 (10:16 +0100)
commit100cd2db172eda73fa4a707572bd0b52c555cd9f
tree386ae4655250802025caa6583deed96530025613
parent18a1a4a43d0f36bfe14bd39130e821a87bc0c858
fpu context switching for x86_64: the patch by Andrei Poenaru, 2017.01.14 14:24
Dear all,
While working on context switching I found a bug regarding the FPU context switching on the LRPC path: no FPU switching is performed on that path.
When 2 domains (using the FPU) communicate via LRPC the data stored in the registers is not correctly preserved. I was able to derive a test starting from 'lrpc_bench'.
In order to fix the issue, I implemented in assembly, on the LRPC path, the same logic as in 'fpu_lazy_top' (function called during a context switch on the normal kernel path).

Signed-off-by: Adam Turowski <adam.turowski@inf.ethz.ch>
hake/symbolic_targets.mk
kernel/arch/x86_64/entry.S
tools/asmoffsets/asmoffsets.c
usr/tests/lrpc_fpu/Hakefile [new file with mode: 0644]
usr/tests/lrpc_fpu/lrpc_fpu.c [new file with mode: 0644]