drm: Nuke legacy maps debugfs files
GEM stopped using those a while ago, and no one should ever need to use them again to debug legacy horror show drivers. Nuke it all. Aside: It would kinda be nice if we'd have some generic debugfs dumps for at least kms ... Acked-by: Chris Wilson <chris@chris-wilson.co.uk> Acked-by: Emil Velikov <emil.l.velikov@gmail.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: http://patchwork.freedesktop.org/patch/msgid/1465930269-7883-2-git-send-email-daniel.vetter@ffwll.ch
This commit is contained in:
parent
a0877f5203
commit
e1b1cf2f02
|
@ -46,11 +46,8 @@
|
|||
|
||||
static const struct drm_info_list drm_debugfs_list[] = {
|
||||
{"name", drm_name_info, 0},
|
||||
{"vm", drm_vm_info, 0},
|
||||
{"clients", drm_clients_info, 0},
|
||||
{"bufs", drm_bufs_info, 0},
|
||||
{"gem_names", drm_gem_name_info, DRIVER_GEM},
|
||||
{"vma", drm_vma_info, 0},
|
||||
};
|
||||
#define DRM_DEBUGFS_ENTRIES ARRAY_SIZE(drm_debugfs_list)
|
||||
|
||||
|
|
|
@ -65,94 +65,6 @@ int drm_name_info(struct seq_file *m, void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when "/proc/dri/.../vm" is read.
|
||||
*
|
||||
* Prints information about all mappings in drm_device::maplist.
|
||||
*/
|
||||
int drm_vm_info(struct seq_file *m, void *data)
|
||||
{
|
||||
struct drm_info_node *node = (struct drm_info_node *) m->private;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
struct drm_local_map *map;
|
||||
struct drm_map_list *r_list;
|
||||
|
||||
/* Hardcoded from _DRM_FRAME_BUFFER,
|
||||
_DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and
|
||||
_DRM_SCATTER_GATHER and _DRM_CONSISTENT */
|
||||
const char *types[] = { "FB", "REG", "SHM", "AGP", "SG", "PCI" };
|
||||
const char *type;
|
||||
int i;
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
seq_printf(m, "slot offset size type flags address mtrr\n\n");
|
||||
i = 0;
|
||||
list_for_each_entry(r_list, &dev->maplist, head) {
|
||||
map = r_list->map;
|
||||
if (!map)
|
||||
continue;
|
||||
if (map->type < 0 || map->type > 5)
|
||||
type = "??";
|
||||
else
|
||||
type = types[map->type];
|
||||
|
||||
seq_printf(m, "%4d 0x%016llx 0x%08lx %4.4s 0x%02x 0x%08lx ",
|
||||
i,
|
||||
(unsigned long long)map->offset,
|
||||
map->size, type, map->flags,
|
||||
(unsigned long) r_list->user_token);
|
||||
if (map->mtrr < 0)
|
||||
seq_printf(m, "none\n");
|
||||
else
|
||||
seq_printf(m, "%4d\n", map->mtrr);
|
||||
i++;
|
||||
}
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when "/proc/dri/.../bufs" is read.
|
||||
*/
|
||||
int drm_bufs_info(struct seq_file *m, void *data)
|
||||
{
|
||||
struct drm_info_node *node = (struct drm_info_node *) m->private;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
struct drm_device_dma *dma;
|
||||
int i, seg_pages;
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
dma = dev->dma;
|
||||
if (!dma) {
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
seq_printf(m, " o size count free segs pages kB\n\n");
|
||||
for (i = 0; i <= DRM_MAX_ORDER; i++) {
|
||||
if (dma->bufs[i].buf_count) {
|
||||
seg_pages = dma->bufs[i].seg_count * (1 << dma->bufs[i].page_order);
|
||||
seq_printf(m, "%2d %8d %5d %5d %5d %5d %5ld\n",
|
||||
i,
|
||||
dma->bufs[i].buf_size,
|
||||
dma->bufs[i].buf_count,
|
||||
0,
|
||||
dma->bufs[i].seg_count,
|
||||
seg_pages,
|
||||
seg_pages * PAGE_SIZE / 1024);
|
||||
}
|
||||
}
|
||||
seq_printf(m, "\n");
|
||||
for (i = 0; i < dma->buf_count; i++) {
|
||||
if (i && !(i % 32))
|
||||
seq_printf(m, "\n");
|
||||
seq_printf(m, " %d", dma->buflist[i]->list);
|
||||
}
|
||||
seq_printf(m, "\n");
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when "/proc/dri/.../clients" is read.
|
||||
*
|
||||
|
@ -194,7 +106,6 @@ int drm_clients_info(struct seq_file *m, void *data)
|
|||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int drm_gem_one_name_info(int id, void *ptr, void *data)
|
||||
{
|
||||
struct drm_gem_object *obj = ptr;
|
||||
|
|
|
@ -35,9 +35,6 @@ int drm_pci_set_unique(struct drm_device *dev,
|
|||
int drm_irq_by_busid(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_priv);
|
||||
|
||||
/* drm_vm.c */
|
||||
int drm_vma_info(struct seq_file *m, void *data);
|
||||
|
||||
/* drm_prime.c */
|
||||
int drm_prime_handle_to_fd_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_priv);
|
||||
|
@ -51,8 +48,6 @@ void drm_prime_remove_buf_handle_locked(struct drm_prime_file_private *prime_fpr
|
|||
|
||||
/* drm_info.c */
|
||||
int drm_name_info(struct seq_file *m, void *data);
|
||||
int drm_vm_info(struct seq_file *m, void *data);
|
||||
int drm_bufs_info(struct seq_file *m, void *data);
|
||||
int drm_clients_info(struct seq_file *m, void* data);
|
||||
int drm_gem_name_info(struct seq_file *m, void *data);
|
||||
|
||||
|
|
|
@ -670,57 +670,3 @@ void drm_legacy_vma_flush(struct drm_device *dev)
|
|||
kfree(vma);
|
||||
}
|
||||
}
|
||||
|
||||
int drm_vma_info(struct seq_file *m, void *data)
|
||||
{
|
||||
struct drm_info_node *node = (struct drm_info_node *) m->private;
|
||||
struct drm_device *dev = node->minor->dev;
|
||||
struct drm_vma_entry *pt;
|
||||
struct vm_area_struct *vma;
|
||||
unsigned long vma_count = 0;
|
||||
#if defined(__i386__)
|
||||
unsigned int pgprot;
|
||||
#endif
|
||||
|
||||
mutex_lock(&dev->struct_mutex);
|
||||
list_for_each_entry(pt, &dev->vmalist, head)
|
||||
vma_count++;
|
||||
|
||||
seq_printf(m, "vma use count: %lu, high_memory = %pK, 0x%pK\n",
|
||||
vma_count, high_memory,
|
||||
(void *)(unsigned long)virt_to_phys(high_memory));
|
||||
|
||||
list_for_each_entry(pt, &dev->vmalist, head) {
|
||||
vma = pt->vma;
|
||||
if (!vma)
|
||||
continue;
|
||||
seq_printf(m,
|
||||
"\n%5d 0x%pK-0x%pK %c%c%c%c%c%c 0x%08lx000",
|
||||
pt->pid,
|
||||
(void *)vma->vm_start, (void *)vma->vm_end,
|
||||
vma->vm_flags & VM_READ ? 'r' : '-',
|
||||
vma->vm_flags & VM_WRITE ? 'w' : '-',
|
||||
vma->vm_flags & VM_EXEC ? 'x' : '-',
|
||||
vma->vm_flags & VM_MAYSHARE ? 's' : 'p',
|
||||
vma->vm_flags & VM_LOCKED ? 'l' : '-',
|
||||
vma->vm_flags & VM_IO ? 'i' : '-',
|
||||
vma->vm_pgoff);
|
||||
|
||||
#if defined(__i386__)
|
||||
pgprot = pgprot_val(vma->vm_page_prot);
|
||||
seq_printf(m, " %c%c%c%c%c%c%c%c%c",
|
||||
pgprot & _PAGE_PRESENT ? 'p' : '-',
|
||||
pgprot & _PAGE_RW ? 'w' : 'r',
|
||||
pgprot & _PAGE_USER ? 'u' : 's',
|
||||
pgprot & _PAGE_PWT ? 't' : 'b',
|
||||
pgprot & _PAGE_PCD ? 'u' : 'c',
|
||||
pgprot & _PAGE_ACCESSED ? 'a' : '-',
|
||||
pgprot & _PAGE_DIRTY ? 'd' : '-',
|
||||
pgprot & _PAGE_PSE ? 'm' : 'k',
|
||||
pgprot & _PAGE_GLOBAL ? 'g' : 'l');
|
||||
#endif
|
||||
seq_printf(m, "\n");
|
||||
}
|
||||
mutex_unlock(&dev->struct_mutex);
|
||||
return 0;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue