ACPICA: acpiexec: Add option to dump extra info for memory leaks
authorBob Moore <robert.moore@intel.com>
Mon, 14 Jan 2019 17:55:24 +0000 (09:55 -0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 15 Jan 2019 17:04:02 +0000 (18:04 +0100)
ACPICA commit f77565e28b90ee7e06f53a474183ef72300c3574

Dump entire object/buffer for any memory leaks detected by
the object/cache tracking mechanism.

Link: https://github.com/acpica/acpica/commit/f77565e2
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Erik Schmauss <erik.schmauss@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/acglobal.h
drivers/acpi/acpica/utdecode.c
drivers/acpi/acpica/uttrack.c

index 87d6eb0..7a0aeb7 100644 (file)
@@ -164,6 +164,7 @@ ACPI_GLOBAL(struct acpi_memory_list *, acpi_gbl_global_list);
 ACPI_GLOBAL(struct acpi_memory_list *, acpi_gbl_ns_node_list);
 ACPI_GLOBAL(u8, acpi_gbl_display_final_mem_stats);
 ACPI_GLOBAL(u8, acpi_gbl_disable_mem_tracking);
+ACPI_GLOBAL(u8, acpi_gbl_verbose_leak_dump);
 #endif
 
 /*****************************************************************************
index dad02b8..d0a375c 100644 (file)
@@ -284,7 +284,7 @@ const char *acpi_ut_get_node_name(void *object)
 
 static const char *acpi_gbl_desc_type_names[] = {
        /* 00 */ "Not a Descriptor",
-       /* 01 */ "Cached",
+       /* 01 */ "Cached Object",
        /* 02 */ "State-Generic",
        /* 03 */ "State-Update",
        /* 04 */ "State-Package",
@@ -295,10 +295,10 @@ static const char *acpi_gbl_desc_type_names[] = {
        /* 09 */ "State-Result",
        /* 10 */ "State-Notify",
        /* 11 */ "State-Thread",
-       /* 12 */ "Walk",
-       /* 13 */ "Parser",
-       /* 14 */ "Operand",
-       /* 15 */ "Node"
+       /* 12 */ "Tree Walk State",
+       /* 13 */ "Parse Tree Op",
+       /* 14 */ "Operand Object",
+       /* 15 */ "Namespace Node"
 };
 
 const char *acpi_ut_get_descriptor_name(void *object)
index 016a662..f6b55e2 100644 (file)
@@ -588,6 +588,18 @@ void acpi_ut_dump_allocations(u32 component, const char *module)
                                             acpi_ut_get_descriptor_name
                                             (descriptor));
 
+                                       /* Optional object hex dump */
+
+                                       if (acpi_gbl_verbose_leak_dump) {
+                                               acpi_os_printf("\n");
+                                               acpi_ut_dump_buffer((u8 *)
+                                                                   descriptor,
+                                                                   element->
+                                                                   size,
+                                                                   DB_BYTE_DISPLAY,
+                                                                   0);
+                                       }
+
                                        /* Validate the descriptor type using Type field and length */
 
                                        descriptor_type = 0;    /* Not a valid descriptor type */