|
@@ -85,6 +85,7 @@ static inline qdf_list_t *qdf_mem_dma_list(enum qdf_debug_domain domain)
|
|
|
* @size: size of the allocation in bytes
|
|
|
* @caller: Caller of the function for which memory is allocated
|
|
|
* @header: a known value, used to detect out-of-bounds access
|
|
|
+ * @time: timestamp at which allocation was made
|
|
|
*/
|
|
|
struct qdf_mem_header {
|
|
|
qdf_list_node_t node;
|
|
@@ -95,6 +96,7 @@ struct qdf_mem_header {
|
|
|
uint32_t size;
|
|
|
void *caller;
|
|
|
uint64_t header;
|
|
|
+ uint64_t time;
|
|
|
};
|
|
|
|
|
|
static uint64_t WLAN_MEM_HEADER = 0x6162636465666768;
|
|
@@ -154,6 +156,7 @@ static void qdf_mem_header_init(struct qdf_mem_header *header, qdf_size_t size,
|
|
|
header->size = size;
|
|
|
header->caller = caller;
|
|
|
header->header = WLAN_MEM_HEADER;
|
|
|
+ header->time = qdf_get_log_timestamp();
|
|
|
}
|
|
|
|
|
|
enum qdf_mem_validation_bitmap {
|
|
@@ -359,7 +362,7 @@ static int seq_printf_printer(void *priv, const char *fmt, ...)
|
|
|
* @size: the size of allocation
|
|
|
* @caller: Address of the caller function
|
|
|
* @count: how many allocations of same type
|
|
|
- *
|
|
|
+ * @time: timestamp at which allocation happened
|
|
|
*/
|
|
|
struct __qdf_mem_info {
|
|
|
char file[QDF_MEM_FILE_NAME_SIZE];
|
|
@@ -367,6 +370,7 @@ struct __qdf_mem_info {
|
|
|
uint32_t size;
|
|
|
void *caller;
|
|
|
uint32_t count;
|
|
|
+ uint64_t time;
|
|
|
};
|
|
|
|
|
|
/*
|
|
@@ -387,7 +391,8 @@ static void qdf_mem_domain_print_header(qdf_abstract_print print,
|
|
|
{
|
|
|
print(print_priv,
|
|
|
"--------------------------------------------------------------");
|
|
|
- print(print_priv, " count size total filename caller");
|
|
|
+ print(print_priv,
|
|
|
+ " count size total filename caller timestamp");
|
|
|
print(print_priv,
|
|
|
"--------------------------------------------------------------");
|
|
|
}
|
|
@@ -417,12 +422,13 @@ static void qdf_mem_meta_table_print(struct __qdf_mem_info *table,
|
|
|
break;
|
|
|
|
|
|
print(print_priv,
|
|
|
- "%6u x %5u = %7uB @ %s:%u %pS",
|
|
|
+ "%6u x %5u = %7uB @ %s:%u %pS %llu",
|
|
|
table[i].count,
|
|
|
table[i].size,
|
|
|
table[i].count * table[i].size,
|
|
|
table[i].file,
|
|
|
- table[i].line, table[i].caller);
|
|
|
+ table[i].line, table[i].caller,
|
|
|
+ table[i].time);
|
|
|
len += qdf_scnprintf(debug_str + len,
|
|
|
sizeof(debug_str) - len,
|
|
|
" @ %s:%u %pS",
|
|
@@ -453,6 +459,7 @@ static bool qdf_mem_meta_table_insert(struct __qdf_mem_info *table,
|
|
|
table[i].size = meta->size;
|
|
|
table[i].count = 1;
|
|
|
table[i].caller = meta->caller;
|
|
|
+ table[i].time = meta->time;
|
|
|
break;
|
|
|
}
|
|
|
|