From 13aa1795dd62ee66e705a9c3ec5017fccb775153 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 21 Jul 2009 12:09:15 +0000 Subject: [PATCH] * It seems we always have to specify all flags to make it work; removed "flags" parameter from start_system_profiler(). * Added stack depth, and interval parameters to it, though. * Profiling the boot process is now possible. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31671 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/system_profiler.h | 3 ++- src/system/kernel/debug/system_profiler.cpp | 11 ++++++----- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/headers/private/kernel/system_profiler.h b/headers/private/kernel/system_profiler.h index 4578f5ca78..6b83c7707c 100644 --- a/headers/private/kernel/system_profiler.h +++ b/headers/private/kernel/system_profiler.h @@ -15,7 +15,8 @@ struct system_profiler_parameters; __BEGIN_DECLS -status_t start_system_profiler(size_t areaSize, uint32 flags); +status_t start_system_profiler(size_t areaSize, uint32 stackDepth, + bigtime_t interval); void stop_system_profiler(); status_t _user_system_profiler_start( diff --git a/src/system/kernel/debug/system_profiler.cpp b/src/system/kernel/debug/system_profiler.cpp index 637f4f327f..ca5ba13e24 100644 --- a/src/system/kernel/debug/system_profiler.cpp +++ b/src/system/kernel/debug/system_profiler.cpp @@ -1141,7 +1141,7 @@ SystemProfiler::_ProfilingEvent(struct timer* timer) status_t -start_system_profiler(size_t areaSize, uint32 flags) +start_system_profiler(size_t areaSize, uint32 stackDepth, bigtime_t interval) { struct ParameterDeleter { ParameterDeleter(area_id area) @@ -1184,11 +1184,12 @@ start_system_profiler(size_t areaSize, uint32 flags) return B_NO_MEMORY; sRecordedParameters->buffer_area = area; - sRecordedParameters->flags - = flags | B_SYSTEM_PROFILER_SAMPLING_EVENTS; + sRecordedParameters->flags = B_SYSTEM_PROFILER_TEAM_EVENTS + | B_SYSTEM_PROFILER_THREAD_EVENTS | B_SYSTEM_PROFILER_IMAGE_EVENTS + | B_SYSTEM_PROFILER_SAMPLING_EVENTS; sRecordedParameters->locking_lookup_size = 4096; - sRecordedParameters->interval = 1000; - sRecordedParameters->stack_depth = 5; + sRecordedParameters->interval = interval; + sRecordedParameters->stack_depth = stackDepth; area_info areaInfo; get_area_info(area, &areaInfo);