[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