[igt-dev] [PATCH i-g-t v2 1/1] i915_pm_rpm: gem-execbuf-stress-extra-wait faster

Caz Yokoyama Caz.Yokoyama at intel.com
Tue Mar 12 15:14:53 UTC 2019


The corresponding patch is subjected as "[PATCH v2 2/2] add
DROP_SUSPEND".

The patch in i915_drop_caches_set() is the first part
of pm_runtime_force_suspend(). After GPU becomes suspended state,
pm_runtime_status_suspended(dev) is always true and get out. In other
words, the patch and pm_runtime_force_suspend() are equivalent on
suspended state.

As a result, I prefer to remove gem-execbuf-stress-extra-wait subtest
because it does same as gem-execbuf-stress except for meaningless (10 x
5 sec) delay.
Chris, how do you think?
-caz

On Tue, 2019-03-12 at 03:31 +0000, Caz Yokoyama wrote:
> With the corresponding patch in drm-tip,
> confirm there is no additional work needed when
> GPU is in suspended state.
> 
> Signed-off-by: Caz Yokoyama <caz.yokoyama at intel.com>
> ---
>  lib/igt_debugfs.h        | 7 +++++++
>  tests/i915/i915_pm_rpm.c | 7 +++++--
>  2 files changed, 12 insertions(+), 2 deletions(-)
> 
> diff --git a/lib/igt_debugfs.h b/lib/igt_debugfs.h
> index b9cf0f81..9fa38b42 100644
> --- a/lib/igt_debugfs.h
> +++ b/lib/igt_debugfs.h
> @@ -216,6 +216,13 @@ void igt_require_hpd_storm_ctl(int fd);
>  		  DROP_FREED | \
>  		  DROP_IDLE)
>  
> +/**
> + * DROP_SUSPEND:
> + *
> + * force to suspended state.
> + */
> +#define DROP_SUSPEND 0x200
> +
>  void igt_reset_fifo_underrun_reporting(int drm_fd);
>  
>  bool igt_drop_caches_has(int fd, uint64_t val);
> diff --git a/tests/i915/i915_pm_rpm.c b/tests/i915/i915_pm_rpm.c
> index be296f52..79528d18 100644
> --- a/tests/i915/i915_pm_rpm.c
> +++ b/tests/i915/i915_pm_rpm.c
> @@ -1338,12 +1338,15 @@ static void gem_execbuf_stress_subtest(int
> rounds, int wait_flags)
>  	for (i = 0; i < rounds; i++) {
>  		gem_execbuf(drm_fd, &execbuf);
>  
> +		igt_drop_caches_set(drm_fd, DROP_IDLE); /* clean up
> idle work */
>  		if (wait_flags & WAIT_STATUS)
>  			igt_assert(wait_for_suspended());
>  		if (wait_flags & WAIT_PC8_RES)
>  			igt_assert(pc8_plus_residency_changed(30));
> -		if (wait_flags & WAIT_EXTRA)
> -			sleep(5);
> +		if (wait_flags & WAIT_EXTRA) {
> +			/* force to suspend mode */
> +			igt_drop_caches_set(drm_fd, DROP_SUSPEND);
> +		}
>  	}
>  
>  	gem_close(drm_fd, handle);



More information about the igt-dev mailing list