commit | e76c90a5795476e5cb5870acacafcf9ecb91fef5 | [log] [tgz] |
---|---|---|
author | Nick Maniscalco <maniscalco@google.com> | Tue Oct 27 22:08:05 2020 +0000 |
committer | CQ Bot <commit-bot@chromium.org> | Tue Oct 27 22:08:05 2020 +0000 |
tree | a166f78f5e4ae68513545fec9c3118d5ec35aa6b | |
parent | 6064e383c19e39180d2087cb0f173090ea612be2 [diff] |
[kernel][x86] Save/restore regs early in syscall Save general purpose registers upon entering the kernel for a syscall. Restore general purpose registers just before returning to user mode. By saving/restoring all the registers: * Debuggers will get a more accurate picture of the thread's state. * Scratch register clearing can be removed. * Pending thread signal processing can be moved into C/C++ code in a future CL. Add new core tests, Threads.SyscallSuspendedRegisterState and Threads.SyscallDebuggerModifyResult. Performance impact appears to be about 7ns - 18ns per syscall. Bug: 60654 Bug: 62790 Test: /boot/test/core-threads Change-Id: I1feb00db839bda0788d67a0ac63ab6937fdc64e7 Reviewed-on: https://fuchsia-review.googlesource.com/c/fuchsia/+/430647 Commit-Queue: Nick Maniscalco <maniscalco@google.com> Reviewed-by: Roland McGrath <mcgrathr@google.com> Reviewed-by: Venkatesh Srinivas <venkateshs@google.com> Testability-Review: Roland McGrath <mcgrathr@google.com>
Pink + Purple == Fuchsia (a new operating system)
Fuchsia is a modular, capability-based operating system. Fuchsia runs on modern 64-bit Intel and ARM processors.
Fuchsia is an open source project with a code of conduct that we expect everyone who interacts with the project to respect.
Read more about Fuchsia's principles.
See Getting Started.
See fuchsia.dev.