Commit afbb9e65 authored by Valery A. Podrezov's avatar Valery A. Podrezov Committed by Len Brown

ACPICA: Enhance debugger statistics/memory command.

Debugger: Enhanced the Statistics/Memory command to emit the
total (maximum) memory used during execution, as well as the
maximum memory consumed by each of the various object types.
Signed-off-by: default avatarAlexey Starikovskiy <alexey.y.starikovskiy@intel.com>
Signed-off-by: default avatarLen Brown <len.brown@intel.com>
parent ea541578
...@@ -61,6 +61,9 @@ ACPI_MODULE_NAME("nsalloc") ...@@ -61,6 +61,9 @@ ACPI_MODULE_NAME("nsalloc")
struct acpi_namespace_node *acpi_ns_create_node(u32 name) struct acpi_namespace_node *acpi_ns_create_node(u32 name)
{ {
struct acpi_namespace_node *node; struct acpi_namespace_node *node;
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
u32 temp;
#endif
ACPI_FUNCTION_TRACE(ns_create_node); ACPI_FUNCTION_TRACE(ns_create_node);
...@@ -71,6 +74,15 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name) ...@@ -71,6 +74,15 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name)
ACPI_MEM_TRACKING(acpi_gbl_ns_node_list->total_allocated++); ACPI_MEM_TRACKING(acpi_gbl_ns_node_list->total_allocated++);
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
temp =
acpi_gbl_ns_node_list->total_allocated -
acpi_gbl_ns_node_list->total_freed;
if (temp > acpi_gbl_ns_node_list->max_occupied) {
acpi_gbl_ns_node_list->max_occupied = temp;
}
#endif
node->name.integer = name; node->name.integer = name;
ACPI_SET_DESCRIPTOR_TYPE(node, ACPI_DESC_TYPE_NAMED); ACPI_SET_DESCRIPTOR_TYPE(node, ACPI_DESC_TYPE_NAMED);
return_PTR(node); return_PTR(node);
......
...@@ -289,6 +289,14 @@ void *acpi_os_acquire_object(struct acpi_memory_list *cache) ...@@ -289,6 +289,14 @@ void *acpi_os_acquire_object(struct acpi_memory_list *cache)
ACPI_MEM_TRACKING(cache->total_allocated++); ACPI_MEM_TRACKING(cache->total_allocated++);
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
if ((cache->total_allocated - cache->total_freed) >
cache->max_occupied) {
cache->max_occupied =
cache->total_allocated - cache->total_freed;
}
#endif
/* Avoid deadlock with ACPI_ALLOCATE_ZEROED */ /* Avoid deadlock with ACPI_ALLOCATE_ZEROED */
status = acpi_ut_release_mutex(ACPI_MTX_CACHES); status = acpi_ut_release_mutex(ACPI_MTX_CACHES);
......
...@@ -159,6 +159,10 @@ void ...@@ -159,6 +159,10 @@ void
acpi_db_create_execution_threads(char *num_threads_arg, acpi_db_create_execution_threads(char *num_threads_arg,
char *num_loops_arg, char *method_name_arg); char *num_loops_arg, char *method_name_arg);
#ifdef ACPI_DBG_TRACK_ALLOCATIONS
u32 acpi_db_get_cache_info(struct acpi_memory_list *cache);
#endif
/* /*
* dbfileio - Debugger file I/O commands * dbfileio - Debugger file I/O commands
*/ */
......
...@@ -954,6 +954,8 @@ struct acpi_memory_list { ...@@ -954,6 +954,8 @@ struct acpi_memory_list {
u32 total_allocated; u32 total_allocated;
u32 total_freed; u32 total_freed;
u32 max_occupied;
u32 total_size;
u32 current_total_size; u32 current_total_size;
u32 requests; u32 requests;
u32 hits; u32 hits;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment