msm: kgsl: Print map count instead of map size
/sys/kernel/debug/kgsl/proc/<pid>/mem prints incorrect map size in some cases. Currently, memdesc size is printed as map size. Because of this, map size shows non-zero value even for unmapped buffers. Since kgsl buffers can be mapped multiple times, update the print to map count instead of map size. Change-Id: I7970580bc3b1c9a30ca0d72d9caf89af1ce09740 Signed-off-by: Kamal Agrawal <kamaagra@codeaurora.org>
This commit is contained in:
parent
52838777d3
commit
097e7abad2
@ -178,6 +178,7 @@ static int print_mem_entry(void *data, void *ptr)
|
||||
unsigned int usermem_type = kgsl_memdesc_usermem_type(m);
|
||||
int egl_surface_count = 0, egl_image_count = 0;
|
||||
unsigned long inode_number = 0;
|
||||
u32 map_count = atomic_read(&entry->map_count);
|
||||
|
||||
flags[0] = kgsl_memdesc_is_global(m) ? 'g' : '-';
|
||||
flags[1] = '-';
|
||||
@ -186,7 +187,7 @@ static int print_mem_entry(void *data, void *ptr)
|
||||
flags[4] = get_cacheflag(m);
|
||||
flags[5] = kgsl_memdesc_use_cpu_map(m) ? 'p' : '-';
|
||||
/* Show Y if at least one vma has this entry mapped (could be multiple) */
|
||||
flags[6] = atomic_read(&entry->map_count) ? 'Y' : 'N';
|
||||
flags[6] = map_count ? 'Y' : 'N';
|
||||
flags[7] = kgsl_memdesc_is_secured(m) ? 's' : '-';
|
||||
flags[8] = '-';
|
||||
flags[9] = '\0';
|
||||
@ -199,7 +200,7 @@ static int print_mem_entry(void *data, void *ptr)
|
||||
inode_number = kgsl_get_dmabuf_inode_number(entry);
|
||||
}
|
||||
|
||||
seq_printf(s, "%pK %pK %16llu %5d %9s %10s %16s %5d %16llu %6d %6d %10lu",
|
||||
seq_printf(s, "%pK %pK %16llu %5d %10s %10s %16s %5d %10d %6d %6d %10lu",
|
||||
(uint64_t *)(uintptr_t) m->gpuaddr,
|
||||
/*
|
||||
* Show zero for the useraddr - we can't reliably track
|
||||
@ -207,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,
|
||||
usage, (m->sgt ? m->sgt->nents : 0), map_count,
|
||||
egl_surface_count, egl_image_count, inode_number);
|
||||
|
||||
if (entry->metadata[0] != 0)
|
||||
@ -276,9 +277,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 %10s\n",
|
||||
seq_printf(s, "%16s %16s %16s %5s %10s %10s %16s %5s %10s %6s %6s %10s\n",
|
||||
"gpuaddr", "useraddr", "size", "id", "flags", "type",
|
||||
"usage", "sglen", "mapsize", "eglsrf", "eglimg", "inode");
|
||||
"usage", "sglen", "mapcnt", "eglsrf", "eglimg", "inode");
|
||||
return 0;
|
||||
} else
|
||||
return print_mem_entry(s, ptr);
|
||||
|
Loading…
Reference in New Issue
Block a user