Merged to master at 88501869ce07..5562ccb05015 (from, to]

You can see the entire diff with 'git diff' or at
https://github.com/brho/akaros/compare/88501869ce07...5562ccb05015



On 2017-09-27 at 11:14 Barret Rhoden <[email protected]> wrote:
> Hi -
> 
> This saves and restores FPU/XMM state when we enter vcore context.
> 
> Unfortunately, this is the best I can do for for now: every async
> vcore_entry (event/notif, trap, vmexit) will save and restore the
> FPU/XMM state.  Save/restore adds about 250 cycles on what is normally a
> 2850 cycle operation (as measured by tests/interference).
> 
> The driver for this is that there are just too many ways that vcore
> context code can clobber XMM registers.  Until we sort that out, like
> by not calling into glibc at all from VC ctx, we'll have to
> save/restore.
> 
> This bug (occasional xmm clobber) triggered all sorts of nasty things:
> - ssh+scp to VM guests of large files would fail
> - ssh connection to VM guests would occasionally die
> - Go tests in a VM guest would fail
> - Large initramfs's for the guest would fail to unpack
> - Plus whatever was happening about a year ago with Kyle and Gan
> - Plus whatever was happening about 18 months ago with Mike
> 
> Barret
> 
> 
> The following changes since commit 88501869ce07386cd7695989ab22fddf3e860b6a:
> 
>   Documentation: document running go test with u-root (2017-09-25 13:55:03 
> -0400)
> 
> are available in the git repository at:
> 
>   [email protected]:brho/akaros.git aggressive-fp-save
> 
> for you to fetch changes up to 5562ccb05015af83cc7a410e01ac9e6f56256462:
> 
>   parlib: Aggressively save and restore the FPU (2017-09-27 11:11:05 -0400)
> 
> ----------------------------------------------------------------
> View this online at:
> https://github.com/brho/akaros/compare/88501869ce07...5562ccb05015
> 
> ----------------------------------------------------------------
> Barret Rhoden (3):
>       parlib: Add a couple helpers
>       Add tests for interference
>       parlib: Aggressively save and restore the FPU
> 
>  kern/arch/x86/rdtsc_test.c           |  79 ++++++++++++++++++++
>  tests/interference.c                 | 138 
> +++++++++++++++++++++++++++++++++++
>  tests/misc-compat.h                  |   8 ++
>  user/parlib/include/parlib/uthread.h |   5 ++
>  user/parlib/include/parlib/vcore.h   |   6 ++
>  user/parlib/uthread.c                |  50 ++++++++++---
>  6 files changed, 276 insertions(+), 10 deletions(-)
>  create mode 100644 tests/interference.c

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to