From 3a6fc6d0aa75843000d6bff9ebc64b38f48d1e7f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Wed, 25 Nov 2009 16:14:52 +0000 Subject: [PATCH] * Improved debug output. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34246 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/low_resource_manager.cpp | 29 ++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/system/kernel/low_resource_manager.cpp b/src/system/kernel/low_resource_manager.cpp index 407b797ebe..feb137916a 100644 --- a/src/system/kernel/low_resource_manager.cpp +++ b/src/system/kernel/low_resource_manager.cpp @@ -109,7 +109,7 @@ call_handlers(uint32 lowResources) // swap with handler sLowResourceHandlers.Swap(&marker, handler); marker.priority = handler->priority; - + int32 resources = handler->resources & lowResources; if (resources != 0) { recursive_lock_unlock(&sLowResourceLock); @@ -201,7 +201,7 @@ low_resource_manager(void *) continue; call_handlers(sLowResources); - + if (state == B_LOW_RESOURCE_WARNING) timeout = kWarnResourceInterval; else @@ -213,9 +213,34 @@ low_resource_manager(void *) } +static const char* +state_to_string(uint32 state) +{ + switch (state) { + case B_LOW_RESOURCE_CRITICAL: + return "critical"; + case B_LOW_RESOURCE_WARNING: + return "warning"; + case B_LOW_RESOURCE_NOTE: + return "note"; + + default: + return "normal"; + } +} + + static int dump_handlers(int argc, char **argv) { + kprintf("current state: %c%c%c\n", + (sLowResources & B_KERNEL_RESOURCE_PAGES) != 0 ? 'p' : '-', + (sLowResources & B_KERNEL_RESOURCE_MEMORY) != 0 ? 'm' : '-', + (sLowResources & B_KERNEL_RESOURCE_SEMAPHORES) != 0 ? 's' : '-'); + kprintf(" pages: %s\n", state_to_string(sLowPagesState)); + kprintf(" memory: %s\n", state_to_string(sLowMemoryState)); + kprintf(" sems: %s\n\n", state_to_string(sLowSemaphoresState)); + HandlerList::Iterator iterator = sLowResourceHandlers.GetIterator(); kprintf("function data resources prio function-name\n");