Hi - Kevin and I had an old joke. You can classify any idea in CS (or maybe in general!) as either: a paper topic, a startup, or a work of art.
The acrobatics involved with NMIs fall into the latter category. Also, VMs in the guest won't get backtraces, but their PCs will show up as user samples (probably unresolved). Barret The following changes since commit 1c7ae8e546970102308614b13bc84e4a90ae255a: Change vmrunkernel to use getopt() (2016-07-26 18:35:26 -0400) are available in the git repository at: [email protected]:brho/akaros.git NMI for you to fetch changes up to 2f2f4e30f03b2254e4469cd6d073456c2ffdd0c5: x86: Don't backtrace from trampoline asm (2016-07-28 18:11:25 -0400) ---------------------------------------------------------------- View this online at: https://github.com/brho/akaros/compare/1c7ae8e54697...2f2f4e30f03b ---------------------------------------------------------------- Barret Rhoden (14): perf: Only record PC once x86: Upgrade backtrace perf: Have arches handle the backtrace Clean up smp_idle's stack jumping Jump stacks before unlocking semaphores x86: Use a separate stack and handler for NMIs x86: Prevent NMIs from nesting perf: Use NMIs for sampling HW and VM TFs Clear excess parts of contexts when finalizing Remove SEM_TRACE_BLOCKERS and TRACEME Remove backtraces from trace_printk() x86: Add protection from NMI contexts that trap x86: Secure eflags when securing contexts x86: Don't backtrace from trampoline asm Kconfig | 16 --- config-default | 1 - kern/arch/x86/kdebug.c | 43 ++++-- kern/arch/x86/perfmon.c | 81 ++++++++++- kern/arch/x86/perfmon.h | 2 + kern/arch/x86/process64.c | 28 +++- kern/arch/x86/smp_boot.c | 18 +++ kern/arch/x86/trap.c | 320 +++++++++++++++++++++++++++++++++++------ kern/arch/x86/trap64.h | 42 ------ kern/arch/x86/trapentry64.S | 344 +++++++++++++++++++++++++++++++++++++++++++- kern/drivers/dev/kprof.c | 23 +-- kern/include/kdebug.h | 4 +- kern/include/kprof.h | 4 +- kern/include/monitor.h | 1 + kern/include/profiler.h | 8 +- kern/include/smp.h | 2 + kern/include/stdio.h | 2 +- kern/src/kthread.c | 59 +++++--- kern/src/monitor.c | 55 ++++++- kern/src/printf.c | 2 +- kern/src/profiler.c | 58 ++------ kern/src/smp.c | 15 +- 22 files changed, 894 insertions(+), 234 deletions(-) -- 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.
