From 675fd4eecd75a7156c83bb814ecfdbbcfbf27ea1 Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 20 Apr 2016 00:32:15 +0200 Subject: Add kernel profiling through sampling * NEWS: Advertise feature. * configfrac.ac (--enable-kernsample): Add option. * kern/pc_sample.h (take_pc_sample): Add usermode and pc parameter. (take_pc_sample_macro): Take usermode and pc parameters, pass as such to take_pc_sample. * kern/pc_sample.c (take_pc_sample): Use pc parameter when usermode is 1. * kern/mach_clock.c (clock_interrupt): Add pc parameter. Pass usermode and pc to take_pc_sample_macro call. * i386/i386/hardclock.c (hardclock): Pass regs->eip to clock_interrupt call on normal interrupts, NULL on interrupt interrupt. * vm/vm_fault.c (vm_fault_cleanup): Set usermode to 1 and pc to NULL in take_pc_sample_macro call. --- vm/vm_fault.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'vm/vm_fault.c') diff --git a/vm/vm_fault.c b/vm/vm_fault.c index 09e2c54d..e61a223d 100644 --- a/vm/vm_fault.c +++ b/vm/vm_fault.c @@ -154,7 +154,7 @@ vm_fault_cleanup( thread_t _thread_ = current_thread(); \ \ if (_thread_ != THREAD_NULL) \ - take_pc_sample_macro(_thread_, (flavor)); \ + take_pc_sample_macro(_thread_, (flavor), 1, NULL); \ MACRO_END #else -- cgit v1.2.3