Loading drivers/gpu/msm/kgsl.c +11 −0 Original line number Diff line number Diff line Loading @@ -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, Loading drivers/gpu/msm/kgsl.h +2 −0 Original line number Diff line number Diff line Loading @@ -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); Loading drivers/gpu/msm/kgsl_debugfs.c +9 −6 Original line number Diff line number Diff line // 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> Loading Loading @@ -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] = '-'; Loading @@ -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 Loading @@ -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); Loading Loading @@ -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 Loading
drivers/gpu/msm/kgsl.c +11 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
drivers/gpu/msm/kgsl.h +2 −0 Original line number Diff line number Diff line Loading @@ -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); Loading
drivers/gpu/msm/kgsl_debugfs.c +9 −6 Original line number Diff line number Diff line // 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> Loading Loading @@ -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] = '-'; Loading @@ -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 Loading @@ -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); Loading Loading @@ -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