[igt-dev] [PATCH i-g-t v2 1/2] tests/i915_pm_dc: Dump power_domain_info on DC test failures

Souza, Jose jose.souza at intel.com
Thu Feb 20 21:25:47 UTC 2020


On Thu, 2020-02-20 at 18:30 +0530, Anshuman Gupta wrote:
> Dump i915_power_domain_info debugfs attribute on DC state
> test failures, it will help to identify culprit, which
> causes non zero refcount for "DC off" power well.
> 
> v2:
> - Fix the mem leak. [Jose]
> 
> Cc: Animesh Manna <animesh.manna at intel.com>
> Cc: José Roberto de Souza <jose.souza at intel.com>
> Signed-off-by: Anshuman Gupta <anshuman.gupta at intel.com>
> ---
>  tests/i915/i915_pm_dc.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tests/i915/i915_pm_dc.c b/tests/i915/i915_pm_dc.c
> index afcc10bc..fc6faa16 100644
> --- a/tests/i915/i915_pm_dc.c
> +++ b/tests/i915/i915_pm_dc.c
> @@ -39,6 +39,10 @@
>  #define CHECK_DC6	(1 << 1)
>  #define CHECK_DC3CO	(1 << 2)
>  
> +#define PWR_DOMAIN_INFO "i915_power_domain_info"
> +
> +char *pwr_dmn_info;

not sure about this global variable but I also can't think in a better
solution, Animesh any idea?

> +
>  typedef struct {
>  	double r, g, b;
>  } color_t;
> @@ -210,7 +214,8 @@ static void check_dc_counter(int debugfs_fd, int
> dc_flag, uint32_t prev_dc_count
>  	snprintf(tmp, sizeof(tmp), "%s", dc_flag & CHECK_DC3CO ?
> "DC3CO" :
>  		(dc_flag & CHECK_DC5 ? "DC5" : "DC6"));
>  	igt_assert_f(dc_state_wait_entry(debugfs_fd, dc_flag,
> prev_dc_count),
> -		     "%s state is not achieved\n", tmp);
> +		     "%s state is not achieved\n%s:\n%s\n", tmp,
> PWR_DOMAIN_INFO,
> +		     pwr_dmn_info = igt_sysfs_get(debugfs_fd,
> PWR_DOMAIN_INFO));
>  }
>  
>  static void setup_videoplayback(data_t *data)
> @@ -441,6 +446,8 @@ int main(int argc, char *argv[])
>  	}
>  
>  	igt_fixture {
> +		if (pwr_dmn_info)
> +			free(pwr_dmn_info);

nitpick: free() handles NULL, no need of the check here.

>  		close(data.debugfs_fd);
>  		close(data.msr_fd);
>  		display_fini(&data);


More information about the igt-dev mailing list