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.
