diff options
-rw-r--r-- | drivers/acpi/namespace/nsalloc.c | 12 | ||||
-rw-r--r-- | drivers/acpi/utilities/utcache.c | 8 | ||||
-rw-r--r-- | include/acpi/acdebug.h | 4 | ||||
-rw-r--r-- | include/acpi/aclocal.h | 2 |
4 files changed, 26 insertions, 0 deletions
diff --git a/drivers/acpi/namespace/nsalloc.c b/drivers/acpi/namespace/nsalloc.c index 55b407aae266..1e6a1b02dfd7 100644 --- a/drivers/acpi/namespace/nsalloc.c +++ b/drivers/acpi/namespace/nsalloc.c | |||
@@ -61,6 +61,9 @@ ACPI_MODULE_NAME("nsalloc") | |||
61 | struct acpi_namespace_node *acpi_ns_create_node(u32 name) | 61 | struct acpi_namespace_node *acpi_ns_create_node(u32 name) |
62 | { | 62 | { |
63 | struct acpi_namespace_node *node; | 63 | struct acpi_namespace_node *node; |
64 | #ifdef ACPI_DBG_TRACK_ALLOCATIONS | ||
65 | u32 temp; | ||
66 | #endif | ||
64 | 67 | ||
65 | ACPI_FUNCTION_TRACE(ns_create_node); | 68 | ACPI_FUNCTION_TRACE(ns_create_node); |
66 | 69 | ||
@@ -71,6 +74,15 @@ struct acpi_namespace_node *acpi_ns_create_node(u32 name) | |||
71 | 74 | ||
72 | ACPI_MEM_TRACKING(acpi_gbl_ns_node_list->total_allocated++); | 75 | ACPI_MEM_TRACKING(acpi_gbl_ns_node_list->total_allocated++); |
73 | 76 | ||
77 | #ifdef ACPI_DBG_TRACK_ALLOCATIONS | ||
78 | temp = | ||
79 | acpi_gbl_ns_node_list->total_allocated - | ||
80 | acpi_gbl_ns_node_list->total_freed; | ||
81 | if (temp > acpi_gbl_ns_node_list->max_occupied) { | ||
82 | acpi_gbl_ns_node_list->max_occupied = temp; | ||
83 | } | ||
84 | #endif | ||
85 | |||
74 | node->name.integer = name; | 86 | node->name.integer = name; |
75 | ACPI_SET_DESCRIPTOR_TYPE(node, ACPI_DESC_TYPE_NAMED); | 87 | ACPI_SET_DESCRIPTOR_TYPE(node, ACPI_DESC_TYPE_NAMED); |
76 | return_PTR(node); | 88 | return_PTR(node); |
diff --git a/drivers/acpi/utilities/utcache.c b/drivers/acpi/utilities/utcache.c index 1a1f8109159c..d796fcac33af 100644 --- a/drivers/acpi/utilities/utcache.c +++ b/drivers/acpi/utilities/utcache.c | |||
@@ -289,6 +289,14 @@ void *acpi_os_acquire_object(struct acpi_memory_list *cache) | |||
289 | 289 | ||
290 | ACPI_MEM_TRACKING(cache->total_allocated++); | 290 | ACPI_MEM_TRACKING(cache->total_allocated++); |
291 | 291 | ||
292 | #ifdef ACPI_DBG_TRACK_ALLOCATIONS | ||
293 | if ((cache->total_allocated - cache->total_freed) > | ||
294 | cache->max_occupied) { | ||
295 | cache->max_occupied = | ||
296 | cache->total_allocated - cache->total_freed; | ||
297 | } | ||
298 | #endif | ||
299 | |||
292 | /* Avoid deadlock with ACPI_ALLOCATE_ZEROED */ | 300 | /* Avoid deadlock with ACPI_ALLOCATE_ZEROED */ |
293 | 301 | ||
294 | status = acpi_ut_release_mutex(ACPI_MTX_CACHES); | 302 | status = acpi_ut_release_mutex(ACPI_MTX_CACHES); |
diff --git a/include/acpi/acdebug.h b/include/acpi/acdebug.h index 47296ffef7dd..c46a33abe457 100644 --- a/include/acpi/acdebug.h +++ b/include/acpi/acdebug.h | |||
@@ -159,6 +159,10 @@ void | |||
159 | acpi_db_create_execution_threads(char *num_threads_arg, | 159 | acpi_db_create_execution_threads(char *num_threads_arg, |
160 | char *num_loops_arg, char *method_name_arg); | 160 | char *num_loops_arg, char *method_name_arg); |
161 | 161 | ||
162 | #ifdef ACPI_DBG_TRACK_ALLOCATIONS | ||
163 | u32 acpi_db_get_cache_info(struct acpi_memory_list *cache); | ||
164 | #endif | ||
165 | |||
162 | /* | 166 | /* |
163 | * dbfileio - Debugger file I/O commands | 167 | * dbfileio - Debugger file I/O commands |
164 | */ | 168 | */ |
diff --git a/include/acpi/aclocal.h b/include/acpi/aclocal.h index 9b7e05c87595..e135dab905f8 100644 --- a/include/acpi/aclocal.h +++ b/include/acpi/aclocal.h | |||
@@ -954,6 +954,8 @@ struct acpi_memory_list { | |||
954 | 954 | ||
955 | u32 total_allocated; | 955 | u32 total_allocated; |
956 | u32 total_freed; | 956 | u32 total_freed; |
957 | u32 max_occupied; | ||
958 | u32 total_size; | ||
957 | u32 current_total_size; | 959 | u32 current_total_size; |
958 | u32 requests; | 960 | u32 requests; |
959 | u32 hits; | 961 | u32 hits; |