drm/radeon: track memory statistics about VRAM and GTT usage and buffer moves v2
The statistics are: - VRAM usage in bytes - GTT usage in bytes - number of bytes moved by TTM The last one is actually a counter, so you need to sample it before and after command submission and take the difference. This is useful for finding performance bottlenecks. Userspace queries are also added. v2: use atomic64_t Signed-off-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com>
This commit is contained in:

committed by
Christian König

parent
bda72d58a2
commit
67e8e3f970
@@ -486,6 +486,21 @@ static int radeon_info_ioctl(struct drm_device *dev, void *data, struct drm_file
|
||||
case RADEON_INFO_VCE_FB_VERSION:
|
||||
*value = rdev->vce.fb_version;
|
||||
break;
|
||||
case RADEON_INFO_NUM_BYTES_MOVED:
|
||||
value = (uint32_t*)&value64;
|
||||
value_size = sizeof(uint64_t);
|
||||
value64 = atomic64_read(&rdev->num_bytes_moved);
|
||||
break;
|
||||
case RADEON_INFO_VRAM_USAGE:
|
||||
value = (uint32_t*)&value64;
|
||||
value_size = sizeof(uint64_t);
|
||||
value64 = atomic64_read(&rdev->vram_usage);
|
||||
break;
|
||||
case RADEON_INFO_GTT_USAGE:
|
||||
value = (uint32_t*)&value64;
|
||||
value_size = sizeof(uint64_t);
|
||||
value64 = atomic64_read(&rdev->gtt_usage);
|
||||
break;
|
||||
default:
|
||||
DRM_DEBUG_KMS("Invalid request %d\n", info->request);
|
||||
return -EINVAL;
|
||||
|
Reference in New Issue
Block a user