mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 07:03:09 -04:00
msm: kgsl: Add inode info in kgsl mem dump
Add inode info in kgsl mem dump. This correlates egl entries in kgsl mem dump with dmabuf_dump info. Change-Id: Iabfbb456fcd7d941095ae1c75d60822af705a90f Signed-off-by: shufma <shufma@codeaurora.org>
This commit is contained in:
parent
15c30a286b
commit
8c02dc9b1f
3 changed files with 22 additions and 6 deletions
|
|
@ -3042,11 +3042,22 @@ void kgsl_get_egl_counts(struct kgsl_mem_entry *entry,
|
|||
}
|
||||
spin_unlock(&kgsl_dmabuf_lock);
|
||||
}
|
||||
|
||||
unsigned long kgsl_get_dmabuf_inode_number(struct kgsl_mem_entry *entry)
|
||||
{
|
||||
struct kgsl_dma_buf_meta *meta = entry->priv_data;
|
||||
|
||||
return meta ? file_inode(meta->dmabuf->file)->i_ino : 0;
|
||||
}
|
||||
#else
|
||||
void kgsl_get_egl_counts(struct kgsl_mem_entry *entry,
|
||||
int *egl_surface_count, int *egl_image_count)
|
||||
{
|
||||
}
|
||||
|
||||
unsigned long kgsl_get_dmabuf_inode_number(struct kgsl_mem_entry *entry)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
long kgsl_ioctl_map_user_mem(struct kgsl_device_private *dev_priv,
|
||||
|
|
|
|||
|
|
@ -453,6 +453,8 @@ void kgsl_mem_entry_destroy(struct kref *kref);
|
|||
void kgsl_get_egl_counts(struct kgsl_mem_entry *entry,
|
||||
int *egl_surface_count, int *egl_image_count);
|
||||
|
||||
unsigned long kgsl_get_dmabuf_inode_number(struct kgsl_mem_entry *entry);
|
||||
|
||||
struct kgsl_mem_entry * __must_check
|
||||
kgsl_sharedmem_find(struct kgsl_process_private *private, uint64_t gpuaddr);
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
// SPDX-License-Identifier: GPL-2.0-only
|
||||
/*
|
||||
* Copyright (c) 2002,2008-2020, The Linux Foundation. All rights reserved.
|
||||
* Copyright (c) 2002,2008-2021, The Linux Foundation. All rights reserved.
|
||||
*/
|
||||
|
||||
#include <linux/debugfs.h>
|
||||
|
|
@ -177,6 +177,7 @@ static int print_mem_entry(void *data, void *ptr)
|
|||
struct kgsl_memdesc *m = &entry->memdesc;
|
||||
unsigned int usermem_type = kgsl_memdesc_usermem_type(m);
|
||||
int egl_surface_count = 0, egl_image_count = 0;
|
||||
unsigned long inode_number = 0;
|
||||
|
||||
flags[0] = kgsl_memdesc_is_global(m) ? 'g' : '-';
|
||||
flags[1] = '-';
|
||||
|
|
@ -192,11 +193,13 @@ static int print_mem_entry(void *data, void *ptr)
|
|||
|
||||
kgsl_get_memory_usage(usage, sizeof(usage), m->flags);
|
||||
|
||||
if (usermem_type == KGSL_MEM_ENTRY_ION)
|
||||
if (usermem_type == KGSL_MEM_ENTRY_ION) {
|
||||
kgsl_get_egl_counts(entry, &egl_surface_count,
|
||||
&egl_image_count);
|
||||
inode_number = kgsl_get_dmabuf_inode_number(entry);
|
||||
}
|
||||
|
||||
seq_printf(s, "%pK %pK %16llu %5d %9s %10s %16s %5d %16llu %6d %6d",
|
||||
seq_printf(s, "%pK %pK %16llu %5d %9s %10s %16s %5d %16llu %6d %6d %10lu",
|
||||
(uint64_t *)(uintptr_t) m->gpuaddr,
|
||||
/*
|
||||
* Show zero for the useraddr - we can't reliably track
|
||||
|
|
@ -205,7 +208,7 @@ static int print_mem_entry(void *data, void *ptr)
|
|||
0, m->size, entry->id, flags,
|
||||
memtype_str(usermem_type),
|
||||
usage, (m->sgt ? m->sgt->nents : 0), m->size,
|
||||
egl_surface_count, egl_image_count);
|
||||
egl_surface_count, egl_image_count, inode_number);
|
||||
|
||||
if (entry->metadata[0] != 0)
|
||||
seq_printf(s, " %s", entry->metadata);
|
||||
|
|
@ -273,9 +276,9 @@ static void *process_mem_seq_next(struct seq_file *s, void *ptr,
|
|||
static int process_mem_seq_show(struct seq_file *s, void *ptr)
|
||||
{
|
||||
if (ptr == SEQ_START_TOKEN) {
|
||||
seq_printf(s, "%16s %16s %16s %5s %9s %10s %16s %5s %16s %6s %6s\n",
|
||||
seq_printf(s, "%16s %16s %16s %5s %9s %10s %16s %5s %16s %6s %6s %10s\n",
|
||||
"gpuaddr", "useraddr", "size", "id", "flags", "type",
|
||||
"usage", "sglen", "mapsize", "eglsrf", "eglimg");
|
||||
"usage", "sglen", "mapsize", "eglsrf", "eglimg", "inode");
|
||||
return 0;
|
||||
} else
|
||||
return print_mem_entry(s, ptr);
|
||||
|
|
|
|||
Loading…
Reference in a new issue