Skip to content

Commit 6bef484

Browse files
Christian Gmeinerlynxeye-dev
authored andcommitted
drm/etnaviv: Add fdinfo support for memory stats
Use the new helper to export stats about memory usage. Signed-off-by: Christian Gmeiner <[email protected]> Reviewed-by: Tvrtko Ursulin <[email protected]> Signed-off-by: Lucas Stach <[email protected]>
1 parent a807cb2 commit 6bef484

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

drivers/gpu/drm/etnaviv/etnaviv_drv.c

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,16 @@ static const struct drm_ioctl_desc etnaviv_ioctls[] = {
488488
ETNA_IOCTL(PM_QUERY_SIG, pm_query_sig, DRM_RENDER_ALLOW),
489489
};
490490

491-
DEFINE_DRM_GEM_FOPS(fops);
491+
static void etnaviv_show_fdinfo(struct drm_printer *p, struct drm_file *file)
492+
{
493+
drm_show_memory_stats(p, file);
494+
}
495+
496+
static const struct file_operations fops = {
497+
.owner = THIS_MODULE,
498+
DRM_GEM_FOPS,
499+
.show_fdinfo = drm_show_fdinfo,
500+
};
492501

493502
static const struct drm_driver etnaviv_drm_driver = {
494503
.driver_features = DRIVER_GEM | DRIVER_RENDER,
@@ -498,6 +507,7 @@ static const struct drm_driver etnaviv_drm_driver = {
498507
#ifdef CONFIG_DEBUG_FS
499508
.debugfs_init = etnaviv_debugfs_init,
500509
#endif
510+
.show_fdinfo = etnaviv_show_fdinfo,
501511
.ioctls = etnaviv_ioctls,
502512
.num_ioctls = DRM_ETNAVIV_NUM_IOCTLS,
503513
.fops = &fops,

drivers/gpu/drm/etnaviv/etnaviv_gem.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -540,6 +540,17 @@ void etnaviv_gem_obj_add(struct drm_device *dev, struct drm_gem_object *obj)
540540
mutex_unlock(&priv->gem_lock);
541541
}
542542

543+
static enum drm_gem_object_status etnaviv_gem_status(struct drm_gem_object *obj)
544+
{
545+
struct etnaviv_gem_object *etnaviv_obj = to_etnaviv_bo(obj);
546+
enum drm_gem_object_status status = 0;
547+
548+
if (etnaviv_obj->pages)
549+
status |= DRM_GEM_OBJECT_RESIDENT;
550+
551+
return status;
552+
}
553+
543554
static const struct vm_operations_struct vm_ops = {
544555
.fault = etnaviv_gem_fault,
545556
.open = drm_gem_vm_open,
@@ -553,6 +564,7 @@ static const struct drm_gem_object_funcs etnaviv_gem_object_funcs = {
553564
.get_sg_table = etnaviv_gem_prime_get_sg_table,
554565
.vmap = etnaviv_gem_prime_vmap,
555566
.mmap = etnaviv_gem_mmap,
567+
.status = etnaviv_gem_status,
556568
.vm_ops = &vm_ops,
557569
};
558570

0 commit comments

Comments
 (0)