[RFC PATCH 133/162] drm/i915/dg1: Track swap in/out stats via debugfs
Matthew Auld
matthew.auld at intel.com
Fri Nov 27 12:06:49 UTC 2020
From: Sudeep Dutt <sudeep.dutt at intel.com>
cat /sys/kernel/debug/dri/0/i915_gem_objects
num_bytes_swapped_out 94170000 num_bytes_swapped_in 56120000
Signed-off-by: Sudeep Dutt <sudeep.dutt at intel.com>
---
drivers/gpu/drm/i915/gem/i915_gem_region.c | 6 ++++++
drivers/gpu/drm/i915/i915_debugfs.c | 3 +++
drivers/gpu/drm/i915/i915_drv.h | 3 +++
3 files changed, 12 insertions(+)
diff --git a/drivers/gpu/drm/i915/gem/i915_gem_region.c b/drivers/gpu/drm/i915/gem/i915_gem_region.c
index e1793c5f8d8c..ed108dbcb34e 100644
--- a/drivers/gpu/drm/i915/gem/i915_gem_region.c
+++ b/drivers/gpu/drm/i915/gem/i915_gem_region.c
@@ -64,6 +64,9 @@ i915_gem_object_swapout_pages(struct drm_i915_gem_object *obj,
else
i915_gem_object_put(dst);
+ if (!err)
+ atomic_long_add(sizes, &i915->num_bytes_swapped_out);
+
return err;
}
@@ -118,6 +121,9 @@ i915_gem_object_swapin_pages(struct drm_i915_gem_object *obj,
i915_gem_object_put(src);
}
+ if (!err)
+ atomic_long_add(sizes, &i915->num_bytes_swapped_in);
+
return err;
}
diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
index 6d1482c82694..1b7e9b6ab660 100644
--- a/drivers/gpu/drm/i915/i915_debugfs.c
+++ b/drivers/gpu/drm/i915/i915_debugfs.c
@@ -372,6 +372,9 @@ static int i915_gem_object_info(struct seq_file *m, void *data)
for_each_memory_region(mr, i915, id)
seq_printf(m, "%s: total:%pa, available:%pa bytes\n",
mr->name, &mr->total, &mr->avail);
+ seq_printf(m, "num_bytes_swapped_out %ld num_bytes_swapped_in %ld\n",
+ atomic_long_read(&i915->num_bytes_swapped_out),
+ atomic_long_read(&i915->num_bytes_swapped_in));
seq_putc(m, '\n');
print_context_stats(m, i915);
diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
index 1366b53ac8c9..7b1e95d494e6 100644
--- a/drivers/gpu/drm/i915/i915_drv.h
+++ b/drivers/gpu/drm/i915/i915_drv.h
@@ -1214,6 +1214,9 @@ struct drm_i915_private {
* NOTE: This is the dri1/ums dungeon, don't add stuff here. Your patch
* will be rejected. Instead look for a better place.
*/
+
+ atomic_long_t num_bytes_swapped_out;
+ atomic_long_t num_bytes_swapped_in;
};
static inline struct drm_i915_private *to_i915(const struct drm_device *dev)
--
2.26.2
More information about the dri-devel
mailing list