From: Anshuman Gupta <anshuman.gupta@intel.com>
To: igt-dev@lists.freedesktop.org
Cc: badal.nilawar@intel.com, rodrigo.vivi@intel.com
Subject: [igt-dev] [PATCH i-g-t 8/9] i915_pm_rpm: Extend gem_execbuf test with D3Cold
Date: Mon, 18 Apr 2022 18:20:47 +0530 [thread overview]
Message-ID: <20220418125048.7969-9-anshuman.gupta@intel.com> (raw)
In-Reply-To: <20220418125048.7969-1-anshuman.gupta@intel.com>
Added d3cold dynamic subtest to gem_execbuf with device class
memory region. It test both D3Cold-{VRAM_SR, Off} by using
d3cold_sr_lmem_threshold i915_params debugfs.
Cc: Rodrigo Vivi <rodrigo.vivi@intel.com>
Signed-off-by: Anshuman Gupta <anshuman.gupta@intel.com>
---
tests/i915/i915_pm_rpm.c | 26 ++++++++++++++++++++++++--
1 file changed, 24 insertions(+), 2 deletions(-)
diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
index 8e9ff56ec..414797bc8 100644
--- a/tests/i915/i915_pm_rpm.c
+++ b/tests/i915/i915_pm_rpm.c
@@ -1344,10 +1344,11 @@ static void submit_blt_cmd(uint32_t dst_handle, int dst_size,
}
/* Make sure we can submit a batch buffer and verify its result. */
-static void gem_execbuf_subtest(struct drm_i915_gem_memory_class_instance *mem_regions)
+static void gem_execbuf_subtest(struct drm_i915_gem_memory_class_instance *mem_regions, bool d3cold)
{
int x, y;
uint32_t handle;
+ struct pci_device *root;
int bpp = 4;
int pitch = 128 * bpp;
int dst_size = 128 * 128 * bpp; /* 128x128 square */
@@ -1369,6 +1370,9 @@ static void gem_execbuf_subtest(struct drm_i915_gem_memory_class_instance *mem_r
memset(cpu_buf, 0, dst_size);
gem_write(drm_fd, handle, 0, cpu_buf, dst_size);
+ if (d3cold)
+ root = setup_d3cold_and_get_root_port();
+
/* Now suspend and try it. */
disable_all_screens_and_wait(&ms_data);
@@ -1376,9 +1380,14 @@ static void gem_execbuf_subtest(struct drm_i915_gem_memory_class_instance *mem_r
submit_blt_cmd(handle, dst_size, sq_x, sq_y, sq_w, sq_h, pitch, color,
&presumed_offset);
igt_assert(wait_for_suspended());
+ if (d3cold)
+ igt_assert(wait_for_d3cold(root));
gem_read(drm_fd, handle, 0, cpu_buf, dst_size);
igt_assert(wait_for_suspended());
+ if (d3cold)
+ igt_assert(wait_for_d3cold(root));
+
for (y = 0; y < 128; y++) {
for (x = 0; x < 128; x++) {
uint32_t px = cpu_buf[y * 128 + x];
@@ -1416,6 +1425,8 @@ static void gem_execbuf_subtest(struct drm_i915_gem_memory_class_instance *mem_r
&presumed_offset);
disable_all_screens_and_wait(&ms_data);
+ if (d3cold)
+ igt_assert(wait_for_d3cold(root));
memset(cpu_buf, 0, dst_size);
gem_read(drm_fd, handle, 0, cpu_buf, dst_size);
@@ -2172,7 +2183,18 @@ igt_main_args("", long_options, help_str, opt_handler, NULL)
igt_subtest_with_dynamic("gem-execbuf") {
for_each_memory_region(r, drm_fd) {
igt_dynamic_f("%s", r->name)
- gem_execbuf_subtest(&r->ci);
+ gem_execbuf_subtest(&r->ci, false);
+ if (r->ci.memory_class == I915_MEMORY_CLASS_SYSTEM)
+ continue;
+ igt_dynamic_f("%s-%s", "d3cold", r->name) {
+ int lmem_threshold;
+
+ lmem_threshold = get_d3cold_sr_lmem_threshold(debugfs);
+ gem_execbuf_subtest(&r->ci, true);
+ set_d3cold_sr_lmem_threshold(debugfs, 0);
+ gem_execbuf_subtest(&r->ci, true);
+ set_d3cold_sr_lmem_threshold(debugfs, lmem_threshold);
+ }
}
}
igt_subtest("gem-idle")
--
2.26.2
next prev parent reply other threads:[~2022-04-18 12:51 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-04-18 12:50 [igt-dev] [PATCH i-g-t 0/9] D3Cold Tool & IGT Anshuman Gupta
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 1/9] test/i915_pm_rpm: Add placement to gem-{mmap-type, execbuf} Anshuman Gupta
2022-04-22 9:26 ` Rodrigo Vivi
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 2/9] lib/igt_device: Get gfx PCI card root port Anshuman Gupta
2022-04-22 9:29 ` Rodrigo Vivi
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 3/9] lib/igt_pm: D3Cold runtime pm infrastructure Anshuman Gupta
2022-04-22 10:16 ` Rodrigo Vivi
2022-04-26 12:23 ` Gupta, Anshuman
2022-04-26 13:22 ` Rodrigo Vivi
2022-04-26 16:06 ` Kamil Konieczny
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 4/9] lib/intel_device_info: Add IS_DGFX() support Anshuman Gupta
2022-04-22 10:17 ` Rodrigo Vivi
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 5/9] tools: Add intel_pm_rpm tool Anshuman Gupta
2022-04-22 10:22 ` Rodrigo Vivi
2022-04-22 12:07 ` Rodrigo Vivi
2022-04-28 6:59 ` Gupta, Anshuman
2022-04-28 8:38 ` Vivi, Rodrigo
2022-04-29 8:58 ` Gupta, Anshuman
2022-04-22 12:08 ` Gupta, Anshuman
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 6/9] i915_pm_rpm: Add D3Cold basic subtest Anshuman Gupta
2022-04-22 12:01 ` Rodrigo Vivi
2022-04-22 14:22 ` Kamil Konieczny
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 7/9] i915_pm_rpm: Test D3Cold with gem_exec_stress Anshuman Gupta
2022-04-22 12:03 ` Rodrigo Vivi
2022-04-18 12:50 ` Anshuman Gupta [this message]
2022-04-22 12:04 ` [igt-dev] [PATCH i-g-t 8/9] i915_pm_rpm: Extend gem_execbuf test with D3Cold Rodrigo Vivi
2022-04-18 12:50 ` [igt-dev] [PATCH i-g-t 9/9] i915_pm_rpm: Extend gem-mmap-type " Anshuman Gupta
2022-04-22 12:05 ` Rodrigo Vivi
2022-04-18 13:01 ` [igt-dev] ✗ GitLab.Pipeline: warning for D3Cold Tool & IGT Patchwork
2022-04-22 9:35 ` Rodrigo Vivi
2022-04-22 11:19 ` Petri Latvala
2022-04-18 13:34 ` [igt-dev] ✗ Fi.CI.BAT: failure " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20220418125048.7969-9-anshuman.gupta@intel.com \
--to=anshuman.gupta@intel.com \
--cc=badal.nilawar@intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=rodrigo.vivi@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.