History

nouveau: add an ioctl to report vram usage

This reports the currently used vram allocations. userspace using this has been proposed for nvk, but it's a rather trivial uapi addition.

Dave Airlie committed 2 years ago

Commit 72fa02f1 parent 3f4d8aa2 files · +12 −0Browse files

Unified · Split

2 files
  1. drivers/gpu/drm/nouveau/nouveau_abi16.c +5 −0
  2. include/uapi/drm/nouveau_drm.h +7 −0
drivers/gpu/drm/nouveau/nouveau_abi16.c+5−0
@@ -267,6 +267,11 @@ nouveau_abi16_ioctl_getparam(ABI16_IOCTL_ARGS) · 266 unmodified lines
267 case NOUVEAU_GETPARAM_VRAM_BAR_SIZE:267 case NOUVEAU_GETPARAM_VRAM_BAR_SIZE:
268 getparam->value = nvkm_device->func->resource_size(nvkm_device, 1);268 getparam->value = nvkm_device->func->resource_size(nvkm_device, 1);
269 break;269 break;
270 case NOUVEAU_GETPARAM_VRAM_USED: {
271 struct ttm_resource_manager *vram_mgr = ttm_manager_type(&drm->ttm.bdev, TTM_PL_VRAM);
272 getparam->value = (u64)ttm_resource_manager_usage(vram_mgr) << PAGE_SHIFT;
273 break;
274 }
270 default:275 default:
271 NV_PRINTK(dbg, cli, "unknown parameter %lld\n", getparam->param);276 NV_PRINTK(dbg, cli, "unknown parameter %lld\n", getparam->param);
272 return -EINVAL;277 return -EINVAL;
include/uapi/drm/nouveau_drm.h+7−0
@@ -61,6 +61,13 @@ extern "C" { · 60 unmodified lines
61 */61 */
62#define NOUVEAU_GETPARAM_VRAM_BAR_SIZE 1862#define NOUVEAU_GETPARAM_VRAM_BAR_SIZE 18
63 63
64/*
65 * NOUVEAU_GETPARAM_VRAM_USED
66 *
67 * Get remaining VRAM size.
68 */
69#define NOUVEAU_GETPARAM_VRAM_USED 19
70
64struct drm_nouveau_getparam {71struct drm_nouveau_getparam {
65 __u64 param;72 __u64 param;
66 __u64 value;73 __u64 value;