diff mbox series

[RFC,133/162] drm/i915/dg1: Track swap in/out stats via debugfs

Message ID 20201127120718.454037-134-matthew.auld@intel.com (mailing list archive)
State New, archived
Headers show
Series DG1 + LMEM enabling | expand

Commit Message

Matthew Auld Nov. 27, 2020, 12:06 p.m. UTC
From: Sudeep Dutt <sudeep.dutt@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@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(+)

Comments

Chris Wilson Nov. 27, 2020, 2:09 p.m. UTC | #1
Quoting Matthew Auld (2020-11-27 12:06:49)
> 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;

Enough said. Don't mindlessly add fields.
-Chris
diff mbox series

Patch

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)